purescript 0.15.4 → 0.15.5
raw patch · 209 files changed
+1892/−601 lines, 209 filesdep +witherabledep −base-compatnew-uploader
Dependencies added: witherable
Dependencies removed: base-compat
Files
- CONTRIBUTING.md +11/−1
- CONTRIBUTORS.md +3/−0
- INSTALL.md +2/−2
- LICENSE +58/−82
- app/Command/Compile.hs +7/−7
- app/Command/Graph.hs +2/−2
- app/Command/REPL.hs +1/−2
- purescript.cabal +26/−24
- src/Control/Monad/Logger.hs +1/−1
- src/Control/Monad/Supply.hs +1/−1
- src/Control/Monad/Supply/Class.hs +1/−1
- src/Language/PureScript/AST/Binders.hs +1/−1
- src/Language/PureScript/AST/Declarations.hs +8/−4
- src/Language/PureScript/AST/Exported.hs +2/−2
- src/Language/PureScript/AST/Literals.hs +1/−1
- src/Language/PureScript/AST/Operators.hs +1/−1
- src/Language/PureScript/AST/SourcePos.hs +1/−1
- src/Language/PureScript/AST/Traversals.hs +9/−9
- src/Language/PureScript/Bundle.hs +1/−1
- src/Language/PureScript/CST/Convert.hs +10/−2
- src/Language/PureScript/CST/Positions.hs +1/−1
- src/Language/PureScript/CodeGen/JS.hs +1/−1
- src/Language/PureScript/CodeGen/JS/Common.hs +1/−1
- src/Language/PureScript/CodeGen/JS/Printer.hs +1/−1
- src/Language/PureScript/Comments.hs +1/−1
- src/Language/PureScript/Constants/Data/Foldable.hs +28/−0
- src/Language/PureScript/Constants/Data/Traversable.hs +19/−0
- src/Language/PureScript/Constants/Prelude.hs +48/−0
- src/Language/PureScript/CoreFn/Ann.hs +1/−1
- src/Language/PureScript/CoreFn/Binders.hs +1/−1
- src/Language/PureScript/CoreFn/CSE.hs +29/−15
- src/Language/PureScript/CoreFn/Desugar.hs +2/−2
- src/Language/PureScript/CoreFn/Expr.hs +1/−1
- src/Language/PureScript/CoreFn/FromJSON.hs +1/−1
- src/Language/PureScript/CoreFn/Meta.hs +1/−1
- src/Language/PureScript/CoreFn/Module.hs +1/−1
- src/Language/PureScript/CoreFn/ToJSON.hs +1/−1
- src/Language/PureScript/CoreFn/Traversals.hs +1/−1
- src/Language/PureScript/CoreImp/AST.hs +1/−1
- src/Language/PureScript/CoreImp/Optimizer.hs +1/−1
- src/Language/PureScript/CoreImp/Optimizer/Blocks.hs +1/−1
- src/Language/PureScript/CoreImp/Optimizer/Common.hs +1/−1
- src/Language/PureScript/CoreImp/Optimizer/Inliner.hs +3/−2
- src/Language/PureScript/CoreImp/Optimizer/MagicDo.hs +1/−1
- src/Language/PureScript/CoreImp/Optimizer/TCO.hs +1/−1
- src/Language/PureScript/CoreImp/Optimizer/Unused.hs +1/−1
- src/Language/PureScript/Crash.hs +3/−16
- src/Language/PureScript/Docs/AsMarkdown.hs +1/−1
- src/Language/PureScript/Docs/Convert/ReExports.hs +4/−4
- src/Language/PureScript/Docs/Convert/Single.hs +2/−2
- src/Language/PureScript/Docs/Prim.hs +1/−1
- src/Language/PureScript/Docs/Render.hs +1/−1
- src/Language/PureScript/Docs/RenderedCode/RenderType.hs +1/−1
- src/Language/PureScript/Docs/RenderedCode/Types.hs +1/−1
- src/Language/PureScript/Environment.hs +79/−40
- src/Language/PureScript/Errors.hs +122/−10
- src/Language/PureScript/Errors/JSON.hs +6/−6
- src/Language/PureScript/Externs.hs +1/−1
- src/Language/PureScript/Graph.hs +1/−1
- src/Language/PureScript/Hierarchy.hs +1/−1
- src/Language/PureScript/Ide/Completion.hs +1/−1
- src/Language/PureScript/Ide/Error.hs +8/−8
- src/Language/PureScript/Ide/Externs.hs +2/−2
- src/Language/PureScript/Ide/Rebuild.hs +3/−3
- src/Language/PureScript/Ide/Reexports.hs +1/−1
- src/Language/PureScript/Ide/State.hs +6/−7
- src/Language/PureScript/Ide/Types.hs +1/−1
- src/Language/PureScript/Interactive.hs +1/−2
- src/Language/PureScript/Interactive/Completion.hs +1/−1
- src/Language/PureScript/Interactive/Directive.hs +1/−1
- src/Language/PureScript/Interactive/IO.hs +1/−1
- src/Language/PureScript/Interactive/Message.hs +1/−1
- src/Language/PureScript/Interactive/Module.hs +1/−1
- src/Language/PureScript/Interactive/Parser.hs +1/−1
- src/Language/PureScript/Interactive/Printer.hs +1/−1
- src/Language/PureScript/Interactive/Types.hs +1/−1
- src/Language/PureScript/Label.hs +1/−1
- src/Language/PureScript/Linter.hs +2/−2
- src/Language/PureScript/Linter/Exhaustive.hs +3/−3
- src/Language/PureScript/Linter/Imports.hs +2/−2
- src/Language/PureScript/Make.hs +1/−1
- src/Language/PureScript/Names.hs +1/−1
- src/Language/PureScript/Options.hs +1/−1
- src/Language/PureScript/PSString.hs +3/−2
- src/Language/PureScript/Pretty/Common.hs +1/−1
- src/Language/PureScript/Pretty/Types.hs +1/−1
- src/Language/PureScript/Pretty/Values.hs +1/−1
- src/Language/PureScript/Publish/BoxesHelpers.hs +1/−1
- src/Language/PureScript/Publish/ErrorsWarnings.hs +1/−1
- src/Language/PureScript/Publish/Utils.hs +1/−1
- src/Language/PureScript/Renamer.hs +1/−1
- src/Language/PureScript/Roles.hs +1/−1
- src/Language/PureScript/Sugar/AdoNotation.hs +1/−1
- src/Language/PureScript/Sugar/BindingGroups.hs +1/−1
- src/Language/PureScript/Sugar/CaseDeclarations.hs +13/−13
- src/Language/PureScript/Sugar/DoNotation.hs +1/−1
- src/Language/PureScript/Sugar/LetPattern.hs +1/−1
- src/Language/PureScript/Sugar/Names.hs +8/−8
- src/Language/PureScript/Sugar/Names/Common.hs +1/−1
- src/Language/PureScript/Sugar/Names/Env.hs +1/−1
- src/Language/PureScript/Sugar/Names/Exports.hs +1/−1
- src/Language/PureScript/Sugar/Names/Imports.hs +1/−1
- src/Language/PureScript/Sugar/ObjectWildcards.hs +1/−1
- src/Language/PureScript/Sugar/Operators.hs +3/−3
- src/Language/PureScript/Sugar/Operators/Binders.hs +1/−1
- src/Language/PureScript/Sugar/Operators/Common.hs +1/−1
- src/Language/PureScript/Sugar/Operators/Expr.hs +1/−1
- src/Language/PureScript/Sugar/Operators/Types.hs +1/−1
- src/Language/PureScript/Sugar/TypeClasses.hs +3/−3
- src/Language/PureScript/Sugar/TypeClasses/Deriving.hs +3/−3
- src/Language/PureScript/Sugar/TypeDeclarations.hs +3/−3
- src/Language/PureScript/Traversals.hs +1/−1
- src/Language/PureScript/TypeChecker.hs +4/−4
- src/Language/PureScript/TypeChecker/Deriving.hs +233/−54
- src/Language/PureScript/TypeChecker/Entailment.hs +2/−2
- src/Language/PureScript/TypeChecker/Entailment/Coercible.hs +1/−1
- src/Language/PureScript/TypeChecker/Kinds.hs +1/−1
- src/Language/PureScript/TypeChecker/Monad.hs +1/−1
- src/Language/PureScript/TypeChecker/Roles.hs +1/−1
- src/Language/PureScript/TypeChecker/Skolems.hs +1/−1
- src/Language/PureScript/TypeChecker/Subsumption.hs +1/−1
- src/Language/PureScript/TypeChecker/Synonyms.hs +1/−1
- src/Language/PureScript/TypeChecker/Types.hs +1/−1
- src/Language/PureScript/TypeChecker/Unify.hs +1/−1
- src/Language/PureScript/TypeClassDictionaries.hs +1/−1
- src/Language/PureScript/Types.hs +3/−3
- src/System/IO/UTF8.hs +1/−1
- tests/Main.hs +1/−2
- tests/TestCompiler.hs +22/−17
- tests/TestCoreFn.hs +1/−2
- tests/TestDocs.hs +1/−2
- tests/TestGraph.hs +1/−2
- tests/TestMake.hs +1/−2
- tests/TestPsci.hs +0/−1
- tests/TestPsci/CommandTest.hs +1/−2
- tests/TestPsci/CompletionTest.hs +1/−2
- tests/TestPsci/EvalTest.hs +1/−2
- tests/TestPsci/TestEnv.hs +1/−2
- tests/TestSourceMaps.hs +3/−2
- tests/TestUtils.hs +36/−36
- tests/purs/docs/output/Ado/docs.json +1/−1
- tests/purs/docs/output/ChildDeclOrder/docs.json +1/−1
- tests/purs/docs/output/Clash1a/docs.json +1/−1
- tests/purs/docs/output/Clash2a/docs.json +1/−1
- tests/purs/docs/output/ConstrainedArgument/docs.json +1/−1
- tests/purs/docs/output/DeclOrder/docs.json +1/−1
- tests/purs/docs/output/DeclOrderNoExportList/docs.json +1/−1
- tests/purs/docs/output/Desugar/docs.json +1/−1
- tests/purs/docs/output/DocComments/docs.json +1/−1
- tests/purs/docs/output/DocCommentsClassMethod/docs.json +1/−1
- tests/purs/docs/output/DocCommentsDataConstructor/docs.json +1/−1
- tests/purs/docs/output/DocCommentsMerge/docs.json +1/−1
- tests/purs/docs/output/DuplicateNames/docs.json +1/−1
- tests/purs/docs/output/Example2/docs.json +1/−1
- tests/purs/docs/output/ExplicitExport/docs.json +1/−1
- tests/purs/docs/output/ExplicitTypeSignatures/docs.json +1/−1
- tests/purs/docs/output/ImportedTwiceB/docs.json +1/−1
- tests/purs/docs/output/KindSignatureDocs/docs.json +1/−1
- tests/purs/docs/output/MultiVirtual1/docs.json +1/−1
- tests/purs/docs/output/MultiVirtual2/docs.json +1/−1
- tests/purs/docs/output/MultiVirtual3/docs.json +1/−1
- tests/purs/docs/output/NewOperators2/docs.json +1/−1
- tests/purs/docs/output/OperatorSection/docs.json +1/−1
- tests/purs/docs/output/PrimSubmodules/docs.json +1/−1
- tests/purs/docs/output/RoleAnnotationDocs/docs.json +1/−1
- tests/purs/docs/output/SomeTypeClass/docs.json +1/−1
- tests/purs/docs/output/Transitive3/docs.json +1/−1
- tests/purs/docs/output/TypeClassWithFunDeps/docs.json +1/−1
- tests/purs/docs/output/TypeLevelString/docs.json +1/−1
- tests/purs/docs/output/TypeOpAliases/docs.json +1/−1
- tests/purs/docs/output/TypeSynonym/docs.json +1/−1
- tests/purs/docs/output/TypeSynonymInstance/docs.json +1/−1
- tests/purs/docs/output/UTF8/docs.json +1/−1
- tests/purs/docs/output/cache-db.json +1/−1
- tests/purs/failing/4382.out +55/−0
- tests/purs/failing/4382.purs +20/−0
- tests/purs/failing/FoldableInstance1.out +24/−0
- tests/purs/failing/FoldableInstance1.purs +9/−0
- tests/purs/failing/FoldableInstance10.out +16/−0
- tests/purs/failing/FoldableInstance10.purs +11/−0
- tests/purs/failing/FoldableInstance2.out +24/−0
- tests/purs/failing/FoldableInstance2.purs +10/−0
- tests/purs/failing/FoldableInstance3.out +24/−0
- tests/purs/failing/FoldableInstance3.purs +9/−0
- tests/purs/failing/FoldableInstance4.out +23/−0
- tests/purs/failing/FoldableInstance4.purs +8/−0
- tests/purs/failing/FoldableInstance5.out +16/−0
- tests/purs/failing/FoldableInstance5.purs +9/−0
- tests/purs/failing/FoldableInstance6.out +16/−0
- tests/purs/failing/FoldableInstance6.purs +8/−0
- tests/purs/failing/FoldableInstance7.out +16/−0
- tests/purs/failing/FoldableInstance7.purs +9/−0
- tests/purs/failing/FoldableInstance8.out +16/−0
- tests/purs/failing/FoldableInstance8.purs +8/−0
- tests/purs/failing/FoldableInstance9.out +49/−0
- tests/purs/failing/FoldableInstance9.purs +53/−0
- tests/purs/failing/TypedHole4.out +52/−0
- tests/purs/failing/TypedHole4.purs +9/−0
- tests/purs/optimize/4386.out.js +26/−0
- tests/purs/optimize/4386.purs +25/−0
- tests/purs/passing/4194.purs +14/−0
- tests/purs/passing/DerivingFoldable.purs +89/−0
- tests/purs/passing/DerivingFunctor.purs +101/−13
- tests/purs/passing/DerivingTraversable.purs +110/−0
- tests/purs/passing/SingleInstanceFundep.purs +21/−0
- tests/purs/publish/basic-example/output/Main/docs.json +1/−1
- tests/purs/publish/basic-example/output/cache-db.json +1/−1
- tests/support/bower.json +1/−1
- tests/support/package-lock.json +32/−32
CONTRIBUTING.md view
@@ -23,11 +23,21 @@ 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/`.+- 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.++### Writing Tests++When writing tests, try to have at least one passing test and one failing test, if applicable.++- Passing tests go in `tests/purs/passing/`+- Failing tests go in `tests/purs/failing/`+- Tests that check warnings go in `tests/purs/warning/`++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. ### Running Tests
CONTRIBUTORS.md view
@@ -44,6 +44,7 @@ | [@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 |+| [@EMattfolk](https://github.com/EMattfolk) | Erik Mattfolk | [MIT license](http://opensource.org/licenses/MIT) | | [@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) |@@ -75,6 +76,7 @@ | [@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) |+| [@mikesol](https://github.com/mikesol) | Mike Solomon | [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) |@@ -157,6 +159,7 @@ | [@i-am-the-slime](https://github.com/i-am-the-slime) | Mark Eibes | [MIT license](http://opensource.org/licenses/MIT) | | [@sd-yip](https://github.com/sd-yip) | Nicholas Yip | [MIT license](http://opensource.org/licenses/MIT) | | [@j-nava](https://github.com/j-nava) | Jesse Nava | [MIT license](http://opensource.org/licenses/MIT) |+| [@imcotton](https://github.com/imcotton) | Cotton Hou | [MIT license](http://opensource.org/licenses/MIT) | ### Contributors using Modified Terms
INSTALL.md view
@@ -4,12 +4,12 @@ ## Requirements -The PureScript compiler is built using GHC 8.10.7, and should be able to run on any operating system supported by GHC 8.10.7. In particular:+The PureScript compiler is built using GHC 9.2.3, and should be able to run on any operating system supported by GHC 9.2.3. 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_10_7.html> for more details about the operating systems which GHC 8.10.7 supports.+See also <https://www.haskell.org/ghc/download_ghc_9_2_3.html> for more details about the operating systems which GHC 9.2.3 supports. ## Official prebuilt binaries
LICENSE view
@@ -47,6 +47,7 @@ call-stack case-insensitive cborg+ cereal cheapskate clock colour@@ -71,7 +72,6 @@ dlist easy-file edit-distance- enclosed-exceptions exceptions fast-logger file-embed@@ -84,7 +84,7 @@ happy hashable haskeline- hinotify+ hfsevents http-types indexed-traversable indexed-traversable-instances@@ -129,7 +129,6 @@ semigroupoids semigroups serialise- shelly sourcemap split splitmix@@ -1275,6 +1274,39 @@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +cereal LICENSE file:++ Copyright (c) Lennart Kolmodin, 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:++ 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.+ cheapskate LICENSE file: Copyright (c) 2013, John MacFarlane@@ -2008,29 +2040,6 @@ 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.- exceptions LICENSE file: Copyright 2013-2015 Edward Kmett@@ -2447,38 +2456,38 @@ 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:+hfsevents LICENSE file: - Copyright (c) Lennart Kolmodin+ Copyright (c) 2012, Luite Stegeman All rights reserved. Redistribution and use in source and binary forms, with or without- modification, are permitted provided that the following conditions- are met:+ 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.+ * 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.+ * 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.+ * Neither the name of Luite Stegeman 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 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.+ 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: @@ -3905,39 +3914,6 @@ 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.--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.
app/Command/Compile.hs view
@@ -33,11 +33,11 @@ } -- | Arguments: verbose, use JSON, warnings, errors-printWarningsAndErrors :: Bool -> Bool -> P.MultipleErrors -> Either P.MultipleErrors a -> IO ()-printWarningsAndErrors verbose False warnings errors = do+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 stdout- let ppeOpts = P.defaultPPEOptions { P.ppeCodeColor = cc, P.ppeFull = verbose, P.ppeRelativeDirectory = pwd }+ let ppeOpts = P.defaultPPEOptions { P.ppeCodeColor = cc, P.ppeFull = verbose, P.ppeRelativeDirectory = pwd, P.ppeFileContents = files } when (P.nonEmpty warnings) $ putStrLn (P.prettyPrintMultipleWarnings ppeOpts warnings) case errors of@@ -45,10 +45,10 @@ putStrLn (P.prettyPrintMultipleErrors ppeOpts errs) exitFailure Right _ -> return ()-printWarningsAndErrors verbose True warnings errors = do+printWarningsAndErrors verbose True files warnings errors = do putStrLn . LBU8.toString . A.encode $- JSONResult (toJSONErrors verbose P.Warning warnings)- (either (toJSONErrors verbose P.Error) (const []) errors)+ JSONResult (toJSONErrors verbose P.Warning files warnings)+ (either (toJSONErrors verbose P.Error files) (const []) errors) either (const exitFailure) (const (return ())) errors compile :: PSCMakeOptions -> IO ()@@ -66,7 +66,7 @@ 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 ()
app/Command/Graph.hs view
@@ -79,8 +79,8 @@ 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)+ JSONResult (toJSONErrors verbose P.Warning [] warnings)+ (either (toJSONErrors verbose P.Error []) (const []) errors) case errors of Left _errs -> exitFailure Right res -> pure res
app/Command/REPL.hs view
@@ -3,8 +3,7 @@ module Command.REPL (command) where -import Prelude ()-import Prelude.Compat+import Prelude import Control.Applicative (many, (<|>)) import Control.Monad import Control.Monad.Catch (MonadMask)
purescript.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: purescript-version: 0.15.4+version: 0.15.5 license: BSD-3-Clause license-file: LICENSE copyright:@@ -77,8 +77,10 @@ Language.PureScript.CodeGen.JS.Common Language.PureScript.CodeGen.JS.Printer Language.PureScript.Constants.Prelude+ Language.PureScript.Constants.Data.Foldable Language.PureScript.Constants.Data.Generic.Rep Language.PureScript.Constants.Data.Newtype+ Language.PureScript.Constants.Data.Traversable Language.PureScript.CoreFn Language.PureScript.CoreFn.Ann Language.PureScript.CoreFn.Binders@@ -248,8 +250,8 @@ FlexibleInstances GeneralizedNewtypeDeriving KindSignatures LambdaCase MultiParamTypeClasses NamedFieldPuns NoImplicitPrelude PatternGuards PatternSynonyms RankNTypes RecordWildCards- OverloadedStrings ScopedTypeVariables TupleSections TypeFamilies- ViewPatterns+ OverloadedRecordDot OverloadedStrings ScopedTypeVariables+ TupleSections TypeFamilies ViewPatterns ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates@@ -261,7 +263,6 @@ ansi-terminal >=0.11.3 && <0.12, array >=0.5.4.0 && <0.6, base >=4.16.2.0 && <4.17,- base-compat >=0.12.1 && <0.13, blaze-html >=0.9.1.2 && <0.10, bower-json >=1.1.0.0 && <1.2, boxes >=0.1.5 && <0.2,@@ -272,11 +273,11 @@ cheapskate >=0.1.1.2 && <0.2, clock >=0.8.3 && <0.9, containers >=0.6.5.1 && <0.7,- cryptonite ==0.30.*,+ 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.*,+ 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,@@ -300,7 +301,7 @@ regex-tdfa >=1.3.1.2 && <1.4, safe >=0.3.19 && <0.4, scientific >=0.3.7.0 && <0.4,- semigroups ==0.20.*,+ semigroups >=0.20 && <0.21, semialign >=1.2.0.1 && <1.3, sourcemap >=0.1.7 && <0.2, split >=0.2.3.4 && <0.3,@@ -316,7 +317,8 @@ typed-process >=0.2.10.1 && <0.3, unordered-containers >=0.2.19.1 && <0.3, utf8-string >=1.0.2 && <1.1,- vector >=0.12.3.1 && <0.13+ vector >=0.12.3.1 && <0.13,+ witherable >=0.4.2 && <0.5 executable purs main-is: Main.hs@@ -345,8 +347,8 @@ FlexibleInstances GeneralizedNewtypeDeriving KindSignatures LambdaCase MultiParamTypeClasses NamedFieldPuns NoImplicitPrelude PatternGuards PatternSynonyms RankNTypes RecordWildCards- OverloadedStrings ScopedTypeVariables TupleSections TypeFamilies- ViewPatterns+ OverloadedRecordDot OverloadedStrings ScopedTypeVariables+ TupleSections TypeFamilies ViewPatterns ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates@@ -359,7 +361,6 @@ ansi-terminal >=0.11.3 && <0.12, array >=0.5.4.0 && <0.6, base >=4.16.2.0 && <4.17,- base-compat >=0.12.1 && <0.13, blaze-html >=0.9.1.2 && <0.10, bower-json >=1.1.0.0 && <1.2, boxes >=0.1.5 && <0.2,@@ -370,11 +371,11 @@ cheapskate >=0.1.1.2 && <0.2, clock >=0.8.3 && <0.9, containers >=0.6.5.1 && <0.7,- cryptonite ==0.30.*,+ 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.*,+ 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,@@ -398,7 +399,7 @@ regex-tdfa >=1.3.1.2 && <1.4, safe >=0.3.19 && <0.4, scientific >=0.3.7.0 && <0.4,- semigroups ==0.20.*,+ semigroups >=0.20 && <0.21, semialign >=1.2.0.1 && <1.3, sourcemap >=0.1.7 && <0.2, split >=0.2.3.4 && <0.3,@@ -415,13 +416,14 @@ unordered-containers >=0.2.19.1 && <0.3, 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, file-embed >=0.0.13.0 && <0.1, http-types >=0.12.3 && <0.13, network >=3.1.2.7 && <3.2, optparse-applicative >=0.17.0.0 && <0.18,- purescript -any+ purescript if flag(release) cpp-options: -DRELEASE@@ -433,8 +435,8 @@ type: exitcode-stdio-1.0 main-is: Main.hs build-tool-depends:- happy:happy ==1.20.0, hspec-discover:hspec-discover -any,- purescript:purs -any+ happy:happy ==1.20.0, hspec-discover:hspec-discover,+ purescript:purs hs-source-dirs: tests other-modules:@@ -477,8 +479,8 @@ FlexibleInstances GeneralizedNewtypeDeriving KindSignatures LambdaCase MultiParamTypeClasses NamedFieldPuns NoImplicitPrelude PatternGuards PatternSynonyms RankNTypes RecordWildCards- OverloadedStrings ScopedTypeVariables TupleSections TypeFamilies- ViewPatterns+ OverloadedRecordDot OverloadedStrings ScopedTypeVariables+ TupleSections TypeFamilies ViewPatterns ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates@@ -491,7 +493,6 @@ ansi-terminal >=0.11.3 && <0.12, array >=0.5.4.0 && <0.6, base >=4.16.2.0 && <4.17,- base-compat >=0.12.1 && <0.13, blaze-html >=0.9.1.2 && <0.10, bower-json >=1.1.0.0 && <1.2, boxes >=0.1.5 && <0.2,@@ -502,11 +503,11 @@ cheapskate >=0.1.1.2 && <0.2, clock >=0.8.3 && <0.9, containers >=0.6.5.1 && <0.7,- cryptonite ==0.30.*,+ 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.*,+ 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,@@ -530,7 +531,7 @@ regex-tdfa >=1.3.1.2 && <1.4, safe >=0.3.19 && <0.4, scientific >=0.3.7.0 && <0.4,- semigroups ==0.20.*,+ semigroups >=0.20 && <0.21, semialign >=1.2.0.1 && <1.3, sourcemap >=0.1.7 && <0.2, split >=0.2.3.4 && <0.3,@@ -547,7 +548,8 @@ unordered-containers >=0.2.19.1 && <0.3, utf8-string >=1.0.2 && <1.1, vector >=0.12.3.1 && <0.13,- purescript -any,+ witherable >=0.4.2 && <0.5,+ purescript, generic-random >=1.5.0.1 && <1.6, hspec ==2.9.2, HUnit >=1.6.2.0 && <1.7,
src/Control/Monad/Logger.hs view
@@ -3,7 +3,7 @@ -- module Control.Monad.Logger where -import Prelude.Compat+import Prelude import Control.Monad (ap) import Control.Monad.Base (MonadBase(..))
src/Control/Monad/Supply.hs view
@@ -3,7 +3,7 @@ -- module Control.Monad.Supply where -import Prelude.Compat+import Prelude import Control.Applicative import Control.Monad.Error.Class (MonadError(..))
src/Control/Monad/Supply/Class.hs view
@@ -4,7 +4,7 @@ module Control.Monad.Supply.Class where -import Prelude.Compat+import Prelude import Control.Monad.RWS import Control.Monad.State
src/Language/PureScript/AST/Binders.hs view
@@ -3,7 +3,7 @@ -- module Language.PureScript.AST.Binders where -import Prelude.Compat+import Prelude import Language.PureScript.AST.SourcePos import Language.PureScript.AST.Literals
src/Language/PureScript/AST/Declarations.hs view
@@ -6,7 +6,7 @@ -- module Language.PureScript.AST.Declarations where -import Prelude.Compat+import Prelude import Protolude.Exceptions (hush) import Codec.Serialise (Serialise)@@ -88,6 +88,7 @@ | ErrorSolvingConstraint SourceConstraint | MissingConstructorImportForCoercible (Qualified (ProperName 'ConstructorName)) | PositionedError (NEL.NonEmpty SourceSpan)+ | RelatedPositions (NEL.NonEmpty SourceSpan) deriving (Show) -- | Categories of hints@@ -428,7 +429,10 @@ -- A type instance declaration (instance chain, chain index, name, -- dependencies, class name, instance types, member declarations) --- | TypeInstanceDeclaration SourceAnn ChainId Integer (Either Text Ident) [SourceConstraint] (Qualified (ProperName 'ClassName)) [SourceType] TypeInstanceBody+ -- 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) data ValueFixity = ValueFixity Fixity (Qualified (Either Ident (ProperName 'ConstructorName))) (OpName 'ValueOpName)@@ -491,7 +495,7 @@ 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@@ -508,7 +512,7 @@ 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 _ _ _ _) = IdentName <$> hush n+declName (TypeInstanceDeclaration _ _ _ _ n _ _ _ _) = IdentName <$> hush n declName (RoleDeclaration RoleDeclarationData{..}) = Just (TyName rdeclIdent) declName ImportDeclaration{} = Nothing declName BindingGroupDeclaration{} = Nothing
src/Language/PureScript/AST/Exported.hs view
@@ -3,7 +3,7 @@ , isExported ) where -import Prelude.Compat+import Prelude import Protolude (sortOn) import Control.Category ((>>>))@@ -104,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
src/Language/PureScript/AST/Literals.hs view
@@ -3,7 +3,7 @@ -- module Language.PureScript.AST.Literals where -import Prelude.Compat+import Prelude import Language.PureScript.PSString (PSString) -- |
src/Language/PureScript/AST/Operators.hs view
@@ -3,7 +3,7 @@ -- module Language.PureScript.AST.Operators where -import Prelude.Compat+import Prelude import Codec.Serialise (Serialise) import GHC.Generics (Generic)
src/Language/PureScript/AST/SourcePos.hs view
@@ -4,7 +4,7 @@ -- module Language.PureScript.AST.SourcePos where -import Prelude.Compat+import Prelude import Codec.Serialise (Serialise) import Control.DeepSeq (NFData)
src/Language/PureScript/AST/Traversals.hs view
@@ -3,7 +3,7 @@ -- module Language.PureScript.AST.Traversals where -import Prelude.Compat+import Prelude import Protolude (swap) import Control.Monad@@ -62,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@@ -135,7 +135,7 @@ 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' (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 @@ -205,7 +205,7 @@ 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@@ -276,7 +276,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 @@ -355,7 +355,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@@ -465,7 +465,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@@ -569,7 +569,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@@ -677,7 +677,7 @@ forDecls (TypeClassDeclaration _ _ args implies _ _) = foldMap (foldMap (foldMap f)) args <> foldMap (foldMap f . constraintArgs) implies- forDecls (TypeInstanceDeclaration _ _ _ _ cs _ tys _) =+ forDecls (TypeInstanceDeclaration _ _ _ _ _ cs _ tys _) = foldMap (foldMap f . constraintArgs) cs <> foldMap f tys forDecls (TypeSynonymDeclaration _ _ args ty) = foldMap (foldMap f . snd) args <>
src/Language/PureScript/Bundle.hs view
@@ -16,7 +16,7 @@ , Module ) where -import Prelude.Compat+import Prelude import Control.Monad.Error.Class
src/Language/PureScript/CST/Convert.hs view
@@ -477,7 +477,8 @@ 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+ clsAnn = findInstanceAnn cls args+ AST.TypeInstanceDeclaration ann' clsAnn chainId ix (mkPartialInstanceName nameSep cls args) (convertConstraint fileName <$> maybe [] (toList . fst) ctrs) (qualified cls)@@ -491,7 +492,8 @@ instTy | isJust new = AST.NewtypeInstance | otherwise = AST.DerivedInstance- pure $ AST.TypeInstanceDeclaration ann chainId 0 name'+ clsAnn = findInstanceAnn cls args+ pure $ AST.TypeInstanceDeclaration ann clsAnn chainId 0 name' (convertConstraint fileName <$> maybe [] (toList . fst) ctrs) (qualified cls) (convertType fileName <$> args)@@ -600,6 +602,12 @@ binding@(InstanceBindingName _ fields) -> do 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
src/Language/PureScript/CST/Positions.hs view
@@ -191,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)
src/Language/PureScript/CodeGen/JS.hs view
@@ -6,7 +6,7 @@ , moduleToJs ) where -import Prelude.Compat+import Prelude import Protolude (ordNub) import Control.Applicative (liftA2)
src/Language/PureScript/CodeGen/JS/Common.hs view
@@ -1,7 +1,7 @@ -- | Common code generation utility functions module Language.PureScript.CodeGen.JS.Common where -import Prelude.Compat+import Prelude import Data.Char import Data.Text (Text)
src/Language/PureScript/CodeGen/JS/Printer.hs view
@@ -4,7 +4,7 @@ , prettyPrintJSWithSourceMaps ) where -import Prelude.Compat+import Prelude import Control.Arrow ((<+>)) import Control.Monad (forM, mzero)
src/Language/PureScript/Comments.hs view
@@ -5,7 +5,7 @@ -- module Language.PureScript.Comments where -import Prelude.Compat+import Prelude import Codec.Serialise (Serialise) import Control.DeepSeq (NFData) import Data.Text (Text)
+ src/Language/PureScript/Constants/Data/Foldable.hs view
@@ -0,0 +1,28 @@+module Language.PureScript.Constants.Data.Foldable where++import Data.String (IsString)+import Language.PureScript.Names++foldl :: forall a. (IsString a) => a+foldl = "foldl"++foldr :: forall a. (IsString a) => a+foldr = "foldr"++foldMap :: forall a. (IsString a) => a+foldMap = "foldMap"++pattern DataFoldable :: ModuleName+pattern DataFoldable = ModuleName "Data.Foldable"++pattern Foldable :: Qualified (ProperName 'ClassName)+pattern Foldable = Qualified (ByModuleName DataFoldable) (ProperName "Foldable")++identFoldl :: Qualified Ident+identFoldl = Qualified (ByModuleName DataFoldable) (Ident foldl)++identFoldr :: Qualified Ident+identFoldr = Qualified (ByModuleName DataFoldable) (Ident foldr)++identFoldMap :: Qualified Ident+identFoldMap = Qualified (ByModuleName DataFoldable) (Ident foldMap)
+ src/Language/PureScript/Constants/Data/Traversable.hs view
@@ -0,0 +1,19 @@+module Language.PureScript.Constants.Data.Traversable where++import Data.String (IsString)+import Language.PureScript.Names++traverse :: forall a. (IsString a) => a+traverse = "traverse"++sequence :: forall a. (IsString a) => a+sequence = "sequence"++pattern DataTraversable :: ModuleName+pattern DataTraversable = ModuleName "Data.Traversable"++pattern Traversable :: Qualified (ProperName 'ClassName)+pattern Traversable = Qualified (ByModuleName DataTraversable) (ProperName "Traversable")++identTraverse :: Qualified Ident+identTraverse = Qualified (ByModuleName DataTraversable) (Ident traverse)
src/Language/PureScript/Constants/Prelude.hs view
@@ -16,6 +16,9 @@ append :: forall a. (IsString a) => a append = "append" +mempty :: forall a. (IsString a) => a+mempty = "mempty"+ bind :: forall a. (IsString a) => a bind = "bind" @@ -169,6 +172,12 @@ runEffectFn :: forall a. (IsString a) => a runEffectFn = "runEffectFn" +mkSTFn :: forall a. (IsString a) => a+mkSTFn = "mkSTFn"++runSTFn :: forall a. (IsString a) => a+runSTFn = "runSTFn"+ -- Type Class Dictionary Names data EffectDictionaries = EffectDictionaries@@ -316,9 +325,24 @@ pattern ST :: ModuleName pattern ST = ModuleName "Control.Monad.ST.Internal" +pattern ControlApply :: ModuleName+pattern ControlApply = ModuleName "Control.Apply"++pattern Apply :: Qualified (ProperName 'ClassName)+pattern Apply = Qualified (ByModuleName ControlApply) (ProperName "Apply")++identApply :: Qualified Ident+identApply = Qualified (ByModuleName ControlApply) (Ident apply)+ pattern ControlApplicative :: ModuleName pattern ControlApplicative = ModuleName "Control.Applicative" +pattern Applicative :: Qualified (ProperName 'ClassName)+pattern Applicative = Qualified (ByModuleName ControlApplicative) (ProperName "Applicative")++identPure :: Qualified Ident+identPure = Qualified (ByModuleName ControlApplicative) (Ident pure')+ pattern ControlSemigroupoid :: ModuleName pattern ControlSemigroupoid = ModuleName "Control.Semigroupoid" @@ -328,18 +352,36 @@ pattern ControlCategory :: ModuleName pattern ControlCategory = ModuleName "Control.Category" +pattern Category :: Qualified (ProperName 'ClassName)+pattern Category = Qualified (ByModuleName ControlCategory) (ProperName "Category")++identIdentity :: Qualified Ident+identIdentity = Qualified (ByModuleName ControlCategory) (Ident identity)+ pattern ControlMonadEffUncurried :: ModuleName pattern ControlMonadEffUncurried = ModuleName "Control.Monad.Eff.Uncurried" pattern EffectUncurried :: ModuleName pattern EffectUncurried = ModuleName "Effect.Uncurried" +pattern ControlMonadSTUncurried :: ModuleName+pattern ControlMonadSTUncurried = ModuleName "Control.Monad.ST.Uncurried"+ pattern DataBounded :: ModuleName pattern DataBounded = ModuleName "Data.Bounded" pattern DataSemigroup :: ModuleName pattern DataSemigroup = ModuleName "Data.Semigroup" +identAppend :: Qualified Ident+identAppend = Qualified (ByModuleName DataSemigroup) (Ident append)++pattern DataMonoid :: ModuleName+pattern DataMonoid = ModuleName "Data.Monoid"++identMempty :: Qualified Ident+identMempty = Qualified (ByModuleName DataMonoid) (Ident mempty)+ pattern DataHeytingAlgebra :: ModuleName pattern DataHeytingAlgebra = ModuleName "Data.HeytingAlgebra" @@ -393,6 +435,12 @@ pattern DataFunction :: ModuleName pattern DataFunction = ModuleName "Data.Function"++identFlip :: Qualified Ident+identFlip = Qualified (ByModuleName DataFunction) (Ident flip)++flip :: forall a. (IsString a) => a+flip = "flip" pattern DataIntBits :: ModuleName pattern DataIntBits = ModuleName "Data.Int.Bits"
src/Language/PureScript/CoreFn/Ann.hs view
@@ -1,6 +1,6 @@ module Language.PureScript.CoreFn.Ann where -import Prelude.Compat+import Prelude import Language.PureScript.AST.SourcePos import Language.PureScript.Comments
src/Language/PureScript/CoreFn/Binders.hs view
@@ -3,7 +3,7 @@ -- module Language.PureScript.CoreFn.Binders where -import Prelude.Compat+import Prelude import Language.PureScript.AST.Literals import Language.PureScript.Names
src/Language/PureScript/CoreFn/CSE.hs view
@@ -157,6 +157,9 @@ { _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@@ -186,7 +189,7 @@ -- 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 M.empty) IM.empty+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@@ -201,14 +204,20 @@ -- | -- Run the provided computation in a new scope. ---newScope :: (HasCSEReader m, HasCSEWriter m) => (Int -> m a) -> m a-newScope body = local (depth %~ succ) $ do+newScope :: (HasCSEReader m, HasCSEWriter m) => Bool -> (Int -> m a) -> m a+newScope isAbs 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 isAbs || _deepestTopLevelScope /= _depth+ then env{ _depth = depth' }+ else env{ _depth = depth', _deepestTopLevelScope = depth' }+ where + depth' = succ _depth -- | -- Record a list of identifiers as being bound in the given scope.@@ -220,8 +229,8 @@ -- Run the provided computation in a new scope in which the provided -- identifiers are bound non-recursively. ---newScopeWithIdents :: (HasCSEReader m, HasCSEWriter m) => [Ident] -> m a -> m a-newScopeWithIdents idents = newScope . flip (withBoundIdents idents . (, NonRecursive))+newScopeWithIdents :: (HasCSEReader m, HasCSEWriter m) => Bool -> [Ident] -> m a -> m a+newScopeWithIdents isAbs idents = newScope isAbs . flip (withBoundIdents idents . (, NonRecursive)) -- | -- Produce, or retrieve from the state, an identifier for referencing the given@@ -261,7 +270,7 @@ 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 (BySourcePos _) ident)) = maybe e g' $ ident `M.lookup` m+ f e@(Var _ (Qualified _ ident)) = maybe e g' $ ident `M.lookup` m f e = e -- |@@ -270,17 +279,20 @@ -- replacement. -- floatExpr- :: (HasCSEState m, MonadSupply m)- => (Expr Ann, CSESummary)+ :: (HasCSEReader m, HasCSEState m, MonadSupply m)+ => QualifiedBy+ -> (Expr Ann, CSESummary) -> m (Expr Ann, CSESummary)-floatExpr = \case+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 ByNullSourcePos ident), w')+ pure (Var nullAnn (Qualified qb ident), w') (e, w) -> pure (e, w) -- |@@ -388,16 +400,18 @@ (handleBind, handleExprDefault, handleBinder, _) = traverseCoreFn handleBind handleExpr handleBinder handleCaseAlternative + topLevelQB = ByModuleName mn+ handleExpr :: Expr Ann -> CSEMonad (Expr Ann)- handleExpr = discuss (ifM (shouldFloatExpr . fst) floatExpr pure) . \case- Abs a ident e -> enterAbs $ Abs a ident <$> newScopeWithIdents [ident] (handleAndWrapExpr e)+ handleExpr = discuss (ifM (shouldFloatExpr . fst) (floatExpr topLevelQB) pure) . \case+ Abs a ident e -> enterAbs $ Abs a ident <$> newScopeWithIdents True [ident] (handleAndWrapExpr e) v@(Var _ qname) -> summarizeName mn qname $> v Let a bs e -> uncurry (Let a) <$> handleBinds (handleExpr e) bs x -> handleExprDefault x handleCaseAlternative :: CaseAlternative Ann -> CSEMonad (CaseAlternative Ann) handleCaseAlternative (CaseAlternative bs x) = CaseAlternative bs <$> do- newScopeWithIdents (identsFromBinders bs) $+ newScopeWithIdents False (identsFromBinders bs) $ bitraverse (traverse $ bitraverse handleAndWrapExpr handleAndWrapExpr) handleAndWrapExpr x handleBinds :: forall a. CSEMonad a -> [Bind Ann] -> CSEMonad ([Bind Ann], a)@@ -409,14 +423,14 @@ -- inner thing all these Binds are applied to. NonRec a ident e -> do e' <- handleExpr e- newScopeWithIdents [ident] $+ newScopeWithIdents False [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 $ \d -> do+ newScope False $ \d -> do let idents = map (snd . fst) es es' <- withBoundIdents idents (d, Recursive) $ traverse (traverse handleExpr) es withBoundIdents idents (d, NonRecursive) $
src/Language/PureScript/CoreFn/Desugar.hs view
@@ -1,6 +1,6 @@ module Language.PureScript.CoreFn.Desugar (moduleToCoreFn) where -import Prelude.Compat+import Prelude import Protolude (ordNub, orEmpty) import Control.Arrow (second)@@ -213,7 +213,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 _ = []
src/Language/PureScript/CoreFn/Expr.hs view
@@ -3,7 +3,7 @@ -- module Language.PureScript.CoreFn.Expr where -import Prelude.Compat+import Prelude import Control.Arrow ((***))
src/Language/PureScript/CoreFn/FromJSON.hs view
@@ -7,7 +7,7 @@ , parseVersion' ) where -import Prelude.Compat+import Prelude import Control.Applicative ((<|>))
src/Language/PureScript/CoreFn/Meta.hs view
@@ -3,7 +3,7 @@ -- module Language.PureScript.CoreFn.Meta where -import Prelude.Compat+import Prelude import Language.PureScript.Names
src/Language/PureScript/CoreFn/Module.hs view
@@ -1,6 +1,6 @@ module Language.PureScript.CoreFn.Module where -import Prelude.Compat+import Prelude import Data.Map.Strict (Map)
src/Language/PureScript/CoreFn/ToJSON.hs view
@@ -7,7 +7,7 @@ ( moduleToJSON ) where -import Prelude.Compat+import Prelude import Control.Arrow ((***)) import Data.Either (isLeft)
src/Language/PureScript/CoreFn/Traversals.hs view
@@ -3,7 +3,7 @@ -- module Language.PureScript.CoreFn.Traversals where -import Prelude.Compat+import Prelude import Control.Arrow (second, (***), (+++)) import Data.Bitraversable (bitraverse)
src/Language/PureScript/CoreImp/AST.hs view
@@ -1,7 +1,7 @@ -- | 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)
src/Language/PureScript/CoreImp/Optimizer.hs view
@@ -19,7 +19,7 @@ -- * Inlining primitive JavaScript operators module Language.PureScript.CoreImp.Optimizer (optimize) where -import Prelude.Compat+import Prelude import Data.Text (Text)
src/Language/PureScript/CoreImp/Optimizer/Blocks.hs view
@@ -4,7 +4,7 @@ , collapseNestedIfs ) where -import Prelude.Compat+import Prelude import Language.PureScript.CoreImp.AST
src/Language/PureScript/CoreImp/Optimizer/Common.hs view
@@ -1,7 +1,7 @@ -- | 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')
src/Language/PureScript/CoreImp/Optimizer/Inliner.hs view
@@ -12,7 +12,7 @@ , evaluateIifes ) where -import Prelude.Compat+import Prelude import Control.Monad.Supply.Class (MonadSupply, freshName) @@ -171,7 +171,8 @@ ] ++ [ 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.EffectUncurried C.mkEffectFn i, runEffFn C.EffectUncurried C.runEffectFn i ] ] +++ [ fn | i <- [0..10], fn <- [ mkEffFn C.ControlMonadSTUncurried C.mkSTFn i, runEffFn C.ControlMonadSTUncurried C.runSTFn i ] ] where binary :: (ModuleName, PSString) -> (ModuleName, PSString) -> BinaryOperator -> AST -> AST binary dict fns op = convert where
src/Language/PureScript/CoreImp/Optimizer/MagicDo.hs view
@@ -2,7 +2,7 @@ -- 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)
src/Language/PureScript/CoreImp/Optimizer/TCO.hs view
@@ -1,7 +1,7 @@ -- | This module implements tail call elimination. module Language.PureScript.CoreImp.Optimizer.TCO (tco) where -import Prelude.Compat+import Prelude import Control.Applicative (empty, liftA2) import Control.Monad (guard)
src/Language/PureScript/CoreImp/Optimizer/Unused.hs view
@@ -5,7 +5,7 @@ , removeUnusedEffectFreeVars ) where -import Prelude.Compat+import Prelude import Control.Monad (filterM) import Data.Monoid (Any(..))
src/Language/PureScript/Crash.hs view
@@ -1,21 +1,8 @@-{-# LANGUAGE CPP #-}--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
src/Language/PureScript/Docs/AsMarkdown.hs view
@@ -5,7 +5,7 @@ , codeToString ) where -import Prelude.Compat+import Prelude import Control.Monad (unless, zipWithM_) import Control.Monad.Writer (Writer, tell, execWriter)
src/Language/PureScript/Docs/Convert/ReExports.hs view
@@ -2,7 +2,7 @@ ( updateReExports ) where -import Prelude.Compat+import Prelude import Control.Arrow ((&&&), first, second) import Control.Monad@@ -12,9 +12,9 @@ import Control.Monad.Trans.State.Strict (execState) import Data.Either-import Data.Foldable (traverse_)+import Data.Foldable (fold, traverse_) import Data.Map (Map)-import Data.Maybe (mapMaybe, fromMaybe)+import Data.Maybe (mapMaybe) import qualified Data.Map as Map import Data.Text (Text) import qualified Data.Text as T@@ -177,7 +177,7 @@ 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.
src/Language/PureScript/Docs/Convert/Single.hs view
@@ -134,7 +134,7 @@ getDeclarationTitle (P.ExternDataDeclaration _ 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 $ either (const "<anonymous>") 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)@@ -187,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
src/Language/PureScript/Docs/Prim.hs view
@@ -6,7 +6,7 @@ , primModules ) where -import Prelude.Compat hiding (fail)+import Prelude hiding (fail) import Data.Functor (($>)) import Data.Text (Text) import qualified Data.Text as T
src/Language/PureScript/Docs/Render.hs view
@@ -9,7 +9,7 @@ module Language.PureScript.Docs.Render where -import Prelude.Compat+import Prelude import Data.Maybe (maybeToList) import Data.Text (Text)
src/Language/PureScript/Docs/RenderedCode/RenderType.hs view
@@ -12,7 +12,7 @@ , renderRow ) where -import Prelude.Compat+import Prelude import Data.Maybe (fromMaybe) import Data.Text (Text, pack)
src/Language/PureScript/Docs/RenderedCode/Types.hs view
@@ -32,7 +32,7 @@ , aliasName ) where -import Prelude.Compat+import Prelude import GHC.Generics (Generic) import Control.DeepSeq (NFData)
src/Language/PureScript/Environment.hs view
@@ -1,21 +1,22 @@ module Language.PureScript.Environment where -import Prelude.Compat-import Protolude (ordNub)+import Prelude import GHC.Generics (Generic) import Control.DeepSeq (NFData)+import Control.Monad (unless) import Codec.Serialise (Serialise) import Data.Aeson ((.=), (.:)) import qualified Data.Aeson as A+import Data.Foldable (find, fold)+import qualified Data.IntMap as IM+import qualified Data.IntSet as IS import qualified Data.Map as M import qualified Data.Set as S-import Data.Maybe (fromMaybe, mapMaybe)+import Data.Maybe (fromMaybe)+import Data.Semigroup (First(..)) 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) import qualified Data.List.NonEmpty as NEL import Language.PureScript.AST.SourcePos@@ -129,49 +130,87 @@ -> TypeClassData makeTypeClassData args m s deps = TypeClassData args m s deps determinedArgs coveringSets where- argumentIndices = [0 .. length args - 1]+ ( determinedArgs, coveringSets ) = computeCoveringSets (length args) deps - -- each argument determines themselves- identities = (\i -> (i, [i])) <$> argumentIndices+-- 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. - -- 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)+computeCoveringSets :: Int -> [FunctionalDependency] -> (S.Set Int, S.Set (S.Set Int))+computeCoveringSets nargs deps = ( determinedArgs, coveringSets )+ where+ argumentIndices = S.fromList [0 .. nargs - 1] - -- build a graph of which arguments determine other arguments- (depGraph, fromVertex, fromKey) = G.graphFromEdges ((\(n, v) -> (n, n, ordNub v)) <$> M.toList contributingDeps)+ -- 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) - -- 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 (`notElem` varContributesTo) contributesToVar+ where - -- find all the arguments that are determined- determinedArgs :: S.Set Int- determinedArgs = S.fromList $ filter isFunDepDetermined argumentIndices+ -- 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 - argFromVertex :: G.Vertex -> Int- argFromVertex index = let (_, arg, _) = fromVertex index in arg+ -- 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) - 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)+ 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 - -- 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)+ -- 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
src/Language/PureScript/Errors.hs view
@@ -3,10 +3,11 @@ , module Language.PureScript.Errors ) where -import Prelude.Compat+import Prelude import Control.Arrow ((&&&)) import Control.Exception (displayException)+import Control.Lens (both, head1, over) import Control.Monad import Control.Monad.Error.Class (MonadError(..)) import Control.Monad.Trans.State.Lazy@@ -14,18 +15,22 @@ 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)+import Data.List (transpose, nubBy, partition, dropWhileEnd, sortOn, uncons) import qualified Data.List.NonEmpty as NEL import Data.List.NonEmpty (NonEmpty((:|)))-import Data.Maybe (maybeToList, fromMaybe, mapMaybe)+import Data.Maybe (maybeToList, fromMaybe, isJust, mapMaybe) import qualified Data.Map as M import Data.Ord (Down(..)) import qualified Data.Set as S import qualified Data.Text as T import Data.Text (Text)+import Data.Traversable (for) import qualified GHC.Stack import Language.PureScript.AST import qualified Language.PureScript.Bundle as Bundle@@ -45,7 +50,9 @@ import Language.PureScript.Types import qualified Language.PureScript.Publish.BoxesHelpers as BoxHelpers import qualified System.Console.ANSI as ANSI+import System.FilePath (makeRelative) import qualified Text.PrettyPrint.Boxes as Box+import Witherable (wither) -- | A type of error messages data SimpleErrorMessage@@ -188,6 +195,7 @@ | UnsupportedRoleDeclaration | RoleDeclarationArityMismatch (ProperName 'TypeName) Int Int | DuplicateRoleDeclaration (ProperName 'TypeName)+ | CannotDeriveInvalidConstructorArg (Qualified (ProperName 'ClassName)) deriving (Show) data ErrorMessage = ErrorMessage@@ -199,10 +207,12 @@ -- | Get the source span for an error errorSpan :: ErrorMessage -> Maybe (NEL.NonEmpty SourceSpan)-errorSpan = findHint matchSpan+errorSpan = findHint matchPE <> findHint matchRP where- matchSpan (PositionedError ss) = Just ss- matchSpan _ = Nothing+ 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@@ -353,6 +363,7 @@ UnsupportedRoleDeclaration {} -> "UnsupportedRoleDeclaration" RoleDeclarationArityMismatch {} -> "RoleDeclarationArityMismatch" DuplicateRoleDeclaration {} -> "DuplicateRoleDeclaration"+ CannotDeriveInvalidConstructorArg{} -> "CannotDeriveInvalidConstructorArg" -- | A stack trace for an error newtype MultipleErrors = MultipleErrors@@ -577,7 +588,6 @@ , Box.vcat Box.top $ replicate (Box.rows b) $ Box.text ansiColorReset ] - -- | Default color intensity and color for code defaultCodeColor :: (ANSI.ColorIntensity, ANSI.Color) defaultCodeColor = (ANSI.Dull, ANSI.Yellow)@@ -589,6 +599,7 @@ , 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@@ -599,11 +610,12 @@ , 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) e = flip evalState defaultUnknownMap $ do+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)@@ -1367,6 +1379,13 @@ renderSimpleErrorMessage (DuplicateRoleDeclaration name) = line $ "Duplicate role declaration for " <> markCode (runProperName name) <> "." + renderSimpleErrorMessage (CannotDeriveInvalidConstructorArg className) =+ 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, "+ <> "and that those type constructors themselves have instances of " <> markCode (runProperName $ disqualify className) <> "."+ ]+ renderHint :: ErrorMessageHint -> Box.Box -> Box.Box renderHint (ErrorUnifyingTypes t1@RCons{} t2@RCons{}) detail = let (row1Box, row2Box) = printRows t1 t2@@ -1531,6 +1550,11 @@ 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 .@@ -1579,7 +1603,7 @@ [ Box.hcat Box.left [ Box.text (T.unpack (showIdent ident) ++ " :: ") , markCodeBox $ typeAsBox prettyDepth ty' ]- | (ident, ty') <- take 5 ctx+ | (ident, ty') <- take 30 ctx ] ] @@ -1635,7 +1659,7 @@ Error -> "error" Warning -> "warning" - paras :: [Box.Box] -> Box.Box+ paras :: forall f. Foldable f => f Box.Box -> Box.Box paras = Box.vcat Box.left -- | Simplify an error message@@ -1725,6 +1749,94 @@ 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
src/Language/PureScript/Errors/JSON.hs view
@@ -2,7 +2,7 @@ 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@@ -43,13 +43,13 @@ $(A.deriveJSON A.defaultOptions ''JSONError) $(A.deriveJSON A.defaultOptions ''JSONResult) -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)
src/Language/PureScript/Externs.hs view
@@ -14,7 +14,7 @@ , externsFileName ) where -import Prelude.Compat+import Prelude import Codec.Serialise (Serialise) import Control.Monad (join)
src/Language/PureScript/Graph.hs view
@@ -1,6 +1,6 @@ module Language.PureScript.Graph (graph) where -import Prelude.Compat+import Prelude import qualified Data.Aeson as Json import qualified Data.Aeson.Key as Json.Key
src/Language/PureScript/Hierarchy.hs view
@@ -15,7 +15,7 @@ module Language.PureScript.Hierarchy where -import Prelude.Compat+import Prelude import Protolude (ordNub) import Data.List (sort)
src/Language/PureScript/Ide/Completion.hs view
@@ -96,7 +96,7 @@ (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)
src/Language/PureScript/Ide/Error.hs view
@@ -31,29 +31,29 @@ | NotFound Text | ModuleNotFound ModuleIdent | ModuleFileNotFound ModuleIdent- | 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))+ 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@@ -91,7 +91,7 @@ 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 (RebuildError err) = show err+textError (RebuildError _ err) = show err prettyPrintTypeSingleLine :: P.Type a -> Text prettyPrintTypeSingleLine = T.unwords . map T.strip . T.lines . T.pack . P.prettyPrintTypeWithUnicode maxBound
src/Language/PureScript/Ide/Externs.hs view
@@ -70,14 +70,14 @@ acc Just tyDecl -> IdeDeclTypeClass (IdeTypeClass tcn (tyDecl^.ideTypeKind) [])- : filter (not . anyOf (_IdeDeclType.ideTypeName) (== P.coerceProperName tcn)) acc+ : 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)) acc+ : filter (not . anyOf (_IdeDeclType . ideTypeName) (== tn)) acc findType :: P.ProperName 'P.TypeName -> [IdeDeclaration] -> Maybe IdeType findType tn decls =
src/Language/PureScript/Ide/Rebuild.hs view
@@ -55,7 +55,7 @@ let fp' = fromMaybe fp actualFile (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@@ -75,7 +75,7 @@ pure newExterns case result of Left errors ->- throwError (RebuildError errors)+ throwError (RebuildError [(fp', input)] errors) Right newExterns -> do insertModule (fromMaybe file actualFile, m) insertExterns newExterns@@ -193,7 +193,7 @@ . 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)
src/Language/PureScript/Ide/Reexports.hs view
@@ -85,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)
src/Language/PureScript/Ide/State.hs view
@@ -37,15 +37,15 @@ , resolveDataConstructorsForModule ) where -import Protolude hiding (moduleName)+import Protolude hiding (moduleName, unzip) -import Control.Arrow import Control.Concurrent.STM import Control.Lens hiding (anyOf, op, (&)) import "monad-logger" Control.Monad.Logger import Data.IORef import qualified Data.Map.Lazy as Map import Data.Time.Clock (UTCTime)+import Data.Zip (unzip) import qualified Language.PureScript as P import Language.PureScript.Docs.Convert.Single (convertComments) import Language.PureScript.Externs@@ -225,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@@ -401,8 +401,7 @@ getDeclarations :: P.ModuleName -> [IdeDeclaration] getDeclarations moduleName = Map.lookup moduleName modules- & fromMaybe []- & map discardAnn+ & foldMap (map discardAnn) resolveOperator (IdeDeclValueOperator op) | (P.Qualified (P.ByModuleName mn) (Left ident)) <- op ^. ideValueOpAlias =@@ -442,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
src/Language/PureScript/Ide/Types.hs view
@@ -287,7 +287,7 @@ ] ] ModuleList modules -> encodeSuccess modules- RebuildSuccess warnings -> encodeSuccess (P.toJSONErrors False P.Warning warnings)+ RebuildSuccess warnings -> encodeSuccess (P.toJSONErrors False P.Warning [] warnings) encodeImport :: (P.ModuleName, P.ImportDeclarationType, Maybe P.ModuleName) -> Aeson.Value encodeImport (P.runModuleName -> mn, importType, map P.runModuleName -> qualifier) = case importType of
src/Language/PureScript/Interactive.hs view
@@ -9,8 +9,7 @@ , runMake ) where -import Prelude ()-import Prelude.Compat+import Prelude import Protolude (ordNub) import Data.List (sort, find, foldl')
src/Language/PureScript/Interactive/Completion.hs view
@@ -6,7 +6,7 @@ , formatCompletions ) where -import Prelude.Compat+import Prelude import Protolude (ordNub) import Control.Monad.IO.Class (MonadIO(..))
src/Language/PureScript/Interactive/Directive.hs view
@@ -3,7 +3,7 @@ -- module Language.PureScript.Interactive.Directive where -import Prelude.Compat+import Prelude import Data.Maybe (fromJust) import Data.List (isPrefixOf)
src/Language/PureScript/Interactive/IO.hs view
@@ -2,7 +2,7 @@ module Language.PureScript.Interactive.IO (findNodeProcess, readNodeProcessWithExitCode, getHistoryFilename) where -import Prelude.Compat+import Prelude import Control.Monad (msum, void) import Control.Monad.Error.Class (throwError)
src/Language/PureScript/Interactive/Message.hs view
@@ -1,6 +1,6 @@ module Language.PureScript.Interactive.Message where -import Prelude.Compat+import Prelude import Data.List (intercalate) import Data.Version (showVersion)
src/Language/PureScript/Interactive/Module.hs view
@@ -1,6 +1,6 @@ module Language.PureScript.Interactive.Module where -import Prelude.Compat+import Prelude import qualified Language.PureScript as P import qualified Language.PureScript.CST as CST
src/Language/PureScript/Interactive/Parser.hs view
@@ -6,7 +6,7 @@ , parseCommand ) where -import Prelude.Compat hiding (lex)+import Prelude import Control.Monad (join) import Data.Bifunctor (bimap)
src/Language/PureScript/Interactive/Printer.hs view
@@ -1,6 +1,6 @@ module Language.PureScript.Interactive.Printer where -import Prelude.Compat+import Prelude import Data.List (intersperse) import qualified Data.Map as M
src/Language/PureScript/Interactive/Types.hs view
@@ -28,7 +28,7 @@ , Directive(..) ) where -import Prelude.Compat+import Prelude import qualified Language.PureScript as P import qualified Data.Map as M
src/Language/PureScript/Label.hs view
@@ -1,6 +1,6 @@ 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)
src/Language/PureScript/Linter.hs view
@@ -3,7 +3,7 @@ -- module Language.PureScript.Linter (lint, module L) where -import Prelude.Compat+import Prelude import Control.Monad.Writer.Class @@ -183,7 +183,7 @@ in (vars, errs') - goDecl (TypeInstanceDeclaration _ _ _ _ _ _ _ (ExplicitInstance decls)) = mconcat $ map goDecl decls+ goDecl (TypeInstanceDeclaration _ _ _ _ _ _ _ _ (ExplicitInstance decls)) = mconcat $ map goDecl decls goDecl _ = mempty go :: Expr -> (S.Set Ident, MultipleErrors)
src/Language/PureScript/Linter/Exhaustive.hs view
@@ -8,7 +8,7 @@ ( checkExhaustiveExpr ) where -import Prelude.Compat+import Prelude import Protolude (ordNub) import Control.Applicative@@ -204,7 +204,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@@ -255,7 +255,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 )
src/Language/PureScript/Linter/Imports.hs view
@@ -4,7 +4,7 @@ , UsedImports() ) where -import Prelude.Compat+import Prelude import Protolude (ordNub) import Control.Monad (join, unless, foldM, (<=<))@@ -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
src/Language/PureScript/Make.hs view
@@ -9,7 +9,7 @@ , module Actions ) where -import Prelude.Compat+import Prelude import Control.Concurrent.Lifted as C import Control.Exception.Base (onException)
src/Language/PureScript/Names.hs view
@@ -5,7 +5,7 @@ -- module Language.PureScript.Names where -import Prelude.Compat+import Prelude import Codec.Serialise (Serialise) import Control.Applicative ((<|>))
src/Language/PureScript/Options.hs view
@@ -1,7 +1,7 @@ -- | The data type of compiler options module Language.PureScript.Options where -import Prelude.Compat+import Prelude import qualified Data.Set as S import Data.Map (Map) import qualified Data.Map as Map
src/Language/PureScript/PSString.hs view
@@ -9,7 +9,7 @@ , mkString ) where -import Prelude.Compat+import Prelude import GHC.Generics (Generic) import Codec.Serialise (Serialise) import Control.DeepSeq (NFData)@@ -17,6 +17,7 @@ import Control.Applicative ((<|>)) import qualified Data.Char as Char import Data.Bits (shiftR)+import Data.Either (fromRight) import Data.List (unfoldr) import Data.Scientific (toBoundedInteger) import Data.String (IsString(..))@@ -72,7 +73,7 @@ -- 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
src/Language/PureScript/Pretty/Common.hs view
@@ -3,7 +3,7 @@ -- module Language.PureScript.Pretty.Common where -import Prelude.Compat+import Prelude import Control.Monad.State (StateT, modify, get)
src/Language/PureScript/Pretty/Types.hs view
@@ -19,7 +19,7 @@ , prettyPrintObjectKey ) where -import Prelude.Compat hiding ((<>))+import Prelude hiding ((<>)) import Control.Arrow ((<+>)) import Control.PatternArrows as PA
src/Language/PureScript/Pretty/Values.hs view
@@ -7,7 +7,7 @@ , prettyPrintBinderAtom ) where -import Prelude.Compat hiding ((<>))+import Prelude hiding ((<>)) import Control.Arrow (second)
src/Language/PureScript/Publish/BoxesHelpers.hs view
@@ -4,7 +4,7 @@ , module Language.PureScript.Publish.BoxesHelpers ) where -import Prelude.Compat+import Prelude import Data.Text (Text) import qualified Data.Text as T
src/Language/PureScript/Publish/ErrorsWarnings.hs view
@@ -12,7 +12,7 @@ , renderWarnings ) where -import Prelude.Compat+import Prelude import Control.Exception (IOException)
src/Language/PureScript/Publish/Utils.hs view
@@ -1,6 +1,6 @@ module Language.PureScript.Publish.Utils where -import Prelude.Compat+import Prelude import System.Directory import System.FilePath.Glob (Pattern, compile, globDir1)
src/Language/PureScript/Renamer.hs view
@@ -3,7 +3,7 @@ -- module Language.PureScript.Renamer (renameInModule) where -import Prelude.Compat+import Prelude import Control.Monad.State
src/Language/PureScript/Roles.hs view
@@ -8,7 +8,7 @@ , displayRole ) where -import Prelude.Compat+import Prelude import Codec.Serialise (Serialise) import Control.DeepSeq (NFData)
src/Language/PureScript/Sugar/AdoNotation.hs view
@@ -3,7 +3,7 @@ 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(..))
src/Language/PureScript/Sugar/BindingGroups.hs view
@@ -8,7 +8,7 @@ , collapseBindingGroups ) where -import Prelude.Compat+import Prelude import Protolude (ordNub) import Control.Monad ((<=<), guard)
src/Language/PureScript/Sugar/CaseDeclarations.hs view
@@ -8,7 +8,7 @@ , desugarCaseGuards ) where -import Prelude.Compat+import Prelude import Protolude (ordNub) import Data.List (groupBy, foldl1')@@ -327,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)@@ -380,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 ByNullSourcePos) 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@@ -391,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 @@ -401,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 corresponding columns.- resolveNames :: [Maybe Ident] -> [Maybe Ident] -> [Maybe Ident]+ 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
src/Language/PureScript/Sugar/DoNotation.hs view
@@ -3,7 +3,7 @@ module Language.PureScript.Sugar.DoNotation (desugarDoModule) where -import Prelude.Compat+import Prelude import Control.Applicative ((<|>)) import Control.Monad.Error.Class (MonadError(..))
src/Language/PureScript/Sugar/LetPattern.hs view
@@ -4,7 +4,7 @@ -- module Language.PureScript.Sugar.LetPattern (desugarLetPatternModule) where -import Prelude.Compat+import Prelude import Data.List (groupBy) import Data.Function (on)
src/Language/PureScript/Sugar/Names.hs view
@@ -9,7 +9,7 @@ , Exports(..) ) where -import Prelude.Compat+import Prelude import Protolude (ordNub, sortOn, swap, foldl') import Control.Arrow (first, second)@@ -196,17 +196,17 @@ 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@@ -352,8 +352,8 @@ 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 ks ts info) ->+ updateConstraints :: [SourceConstraint] -> m [SourceConstraint]+ updateConstraints = traverse $ \(Constraint ann@(pos, _) name ks ts info) -> Constraint ann <$> updateClassName name pos <*> traverse updateTypesEverywhere ks
src/Language/PureScript/Sugar/Names/Common.hs view
@@ -1,6 +1,6 @@ module Language.PureScript.Sugar.Names.Common (warnDuplicateRefs) where -import Prelude.Compat+import Prelude import Protolude (ordNub) import Control.Monad.Writer (MonadWriter(..))
src/Language/PureScript/Sugar/Names/Env.hs view
@@ -18,7 +18,7 @@ , checkImportConflicts ) where -import Prelude.Compat+import Prelude import Control.Monad import Control.Monad.Error.Class (MonadError(..))
src/Language/PureScript/Sugar/Names/Exports.hs view
@@ -3,7 +3,7 @@ , resolveExports ) where -import Prelude.Compat+import Prelude import Control.Monad import Control.Monad.Writer.Class (MonadWriter(..))
src/Language/PureScript/Sugar/Names/Imports.hs view
@@ -5,7 +5,7 @@ , findImports ) where -import Prelude.Compat+import Prelude import Control.Monad import Control.Monad.Error.Class (MonadError(..))
src/Language/PureScript/Sugar/ObjectWildcards.hs view
@@ -3,7 +3,7 @@ , desugarDecl ) where -import Prelude.Compat+import Prelude import Control.Monad (forM) import Control.Monad.Error.Class (MonadError(..))
src/Language/PureScript/Sugar/Operators.hs view
@@ -13,7 +13,7 @@ , checkFixityExports ) where -import Prelude.Compat+import Prelude import Language.PureScript.AST import Language.PureScript.Crash@@ -380,10 +380,10 @@ implies' <- traverse (overConstraintArgs (traverse (goType' ss))) implies args' <- traverse (traverse (traverse (goType' ss))) args return $ TypeClassDeclaration sa name args' implies' deps decls- goDecl (TypeInstanceDeclaration sa@(ss, _) ch idx name cs className tys impls) = do+ 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 <$> traverse (traverse (traverse (goType' ss))) args
src/Language/PureScript/Sugar/Operators/Binders.hs view
@@ -1,6 +1,6 @@ module Language.PureScript.Sugar.Operators.Binders where -import Prelude.Compat+import Prelude import Control.Monad.Except
src/Language/PureScript/Sugar/Operators/Common.hs view
@@ -1,6 +1,6 @@ module Language.PureScript.Sugar.Operators.Common where -import Prelude.Compat+import Prelude import Control.Monad.State import Control.Monad.Except
src/Language/PureScript/Sugar/Operators/Expr.hs view
@@ -1,6 +1,6 @@ module Language.PureScript.Sugar.Operators.Expr where -import Prelude.Compat+import Prelude import Control.Monad.Except import Data.Functor.Identity
src/Language/PureScript/Sugar/Operators/Types.hs view
@@ -1,6 +1,6 @@ module Language.PureScript.Sugar.Operators.Types where -import Prelude.Compat+import Prelude import Control.Monad.Except import Language.PureScript.AST
src/Language/PureScript/Sugar/TypeClasses.hs view
@@ -8,7 +8,7 @@ , superClassDictionaryNames ) where -import Prelude.Compat+import Prelude import Control.Arrow (first, second) import Control.Monad.Error.Class (MonadError(..))@@ -206,9 +206,9 @@ go d@(TypeClassDeclaration sa name args implies deps members) = do 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 sa chainId idx name deps className tys body) = do+ go (TypeInstanceDeclaration sa na chainId idx name deps className tys body) = do name' <- desugarInstName name- let d = TypeInstanceDeclaration sa chainId idx (Right name') deps className tys body+ 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
src/Language/PureScript/Sugar/TypeClasses/Deriving.hs view
@@ -1,7 +1,7 @@ -- | This module implements the generic deriving elaboration that takes place during desugaring. module Language.PureScript.Sugar.TypeClasses.Deriving (deriveInstances) where -import Prelude.Compat+import Prelude import Protolude (note) import Control.Monad.Error.Class (MonadError(..))@@ -46,7 +46,7 @@ -> m Declaration deriveInstance mn ds decl = case decl of- TypeInstanceDeclaration sa@(ss, _) ch idx nm deps className tys DerivedInstance -> let+ 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@@ -54,7 +54,7 @@ checkIsWildcard ss tyCon ty2 tyConDecl <- findTypeDecl ss tyCon ds (members, ty2') <- f tyConDecl args- pure $ TypeInstanceDeclaration sa ch idx nm deps className [ty1, ty2'] (ExplicitInstance members)+ 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
src/Language/PureScript/Sugar/TypeDeclarations.hs view
@@ -6,7 +6,7 @@ ( desugarTypeDeclarationsModule ) where -import Prelude.Compat+import Prelude import Control.Monad (unless) import Control.Monad.Error.Class (MonadError(..))@@ -51,8 +51,8 @@ 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 []
src/Language/PureScript/Traversals.hs view
@@ -1,7 +1,7 @@ -- | Common functions for implementing generic traversals module Language.PureScript.Traversals where -import Prelude.Compat+import Prelude sndM :: (Functor f) => (b -> f c) -> (a, b) -> f (a, c) sndM f (a, b) = (a, ) <$> f b
src/Language/PureScript/TypeChecker.hs view
@@ -7,7 +7,7 @@ , checkNewtype ) where -import Prelude.Compat+import Prelude import Protolude (headMay, maybeToLeft, ordNub) import Control.Lens ((^..), _2)@@ -297,7 +297,7 @@ dataDecls = mapMaybe toDataDecl tysList roleDecls = mapMaybe toRoleDecl tysList clss = mapMaybe toClassDecl tysList- bindingGroupNames = ordNub ((syns^..traverse._2) ++ (dataDecls^..traverse._2._2) ++ fmap coerceProperName (clss^..traverse._2._2))+ 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 env <- getEnv@@ -409,8 +409,8 @@ (args', implies', tys', kind) <- kindOfClass moduleName (sa, pn, args, implies, tys) addTypeClass moduleName qualifiedClassName (fmap Just <$> args') implies' deps tys' kind return d- 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) =+ 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 (ByModuleName moduleName) dictName
src/Language/PureScript/TypeChecker/Deriving.hs view
@@ -1,20 +1,26 @@+{- 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.Monad.Trans.Writer (Writer, WriterT, runWriter, runWriterT) import Control.Monad.Writer.Class (MonadWriter(..))-import Data.Foldable (foldl1)+import Data.Foldable (foldl1, foldr1) import Data.List (init, last, zipWith3, (!!)) import qualified Data.Map as M import Control.Monad.Supply.Class import Language.PureScript.AST import Language.PureScript.AST.Utils+import qualified Language.PureScript.Constants.Data.Foldable as Foldable+import qualified Language.PureScript.Constants.Data.Traversable as Traversable import qualified Language.PureScript.Constants.Prelude as Prelude import qualified Language.PureScript.Constants.Prim as Prim import Language.PureScript.Crash import Language.PureScript.Environment-import Language.PureScript.Errors+import Language.PureScript.Errors hiding (nonEmpty) import Language.PureScript.Label (Label(..)) import Language.PureScript.Names import Language.PureScript.PSString@@ -69,12 +75,16 @@ _ -> throwError . errorMessage $ ExpectedTypeConstructor className tys ty _ -> throwError . errorMessage $ InvalidDerivedInstance className tys 1 + unaryClass' f = unaryClass (f className)+ in case className of+ Foldable.Foldable -> unaryClass' deriveFoldable Prelude.Eq -> unaryClass deriveEq Prelude.Eq1 -> unaryClass $ \_ _ -> deriveEq1- Prelude.Functor -> unaryClass deriveFunctor+ Prelude.Functor -> unaryClass' deriveFunctor Prelude.Ord -> unaryClass deriveOrd Prelude.Ord1 -> unaryClass $ \_ _ -> deriveOrd1+ Traversable.Traversable -> unaryClass' deriveTraversable -- See L.P.Sugar.TypeClasses.Deriving for the classes that can be -- derived prior to type checking. _ -> throwError . errorMessage $ CannotDerive className tys@@ -359,73 +369,242 @@ where go (RCons _ str typ typs) = (str, typ) : go typs go _ = [] -deriveFunctor+data ParamUsage+ = IsParam+ | MentionsParam ParamUsage+ | IsRecord (NonEmpty (PSString, ParamUsage))++validateParamsInTypeConstructors :: forall m . MonadError MultipleErrors m => MonadState CheckState m+ => Qualified (ProperName 'ClassName)+ -> ModuleName+ -> ProperName 'TypeName+ -> m [(ProperName 'ConstructorName, [Maybe ParamUsage])]+validateParamsInTypeConstructors derivingClass mn tyConNm = do+ (_, _, tyArgNames, ctors) <- lookupTypeDecl mn tyConNm+ param <- note (errorMessage $ KindsDoNotUnify (kindType -:> kindType) kindType) . lastMay $ map fst tyArgNames+ ctors' <- traverse (traverse $ traverse replaceAllTypeSynonyms) ctors+ let (ctorUsages, problemSpans) = runWriter $ traverse (traverse . traverse $ typeToUsageOf param) ctors'+ for_ (nonEmpty $ ordNub problemSpans) $ \sss ->+ throwError . addHint (RelatedPositions sss) . errorMessage $ CannotDeriveInvalidConstructorArg derivingClass+ pure ctorUsages+ where+ typeToUsageOf :: Text -> SourceType -> Writer [SourceSpan] (Maybe ParamUsage)+ typeToUsageOf param = go+ where+ assertNoParamUsedIn :: SourceType -> Writer [SourceSpan] ()+ assertNoParamUsedIn = everythingOnTypes (*>) $ \case+ TypeVar (ss, _) name | name == param -> tell [ss]+ _ -> pure ()++ go = \case+ ForAll _ name _ ty _ ->+ if name == param then pure Nothing else go ty++ ConstrainedType _ _ ty ->+ go ty++ TypeApp _ (TypeConstructor _ Prim.Record) row ->+ fmap (fmap IsRecord . nonEmpty . catMaybes) . for (decomposeRec' row) $ \(Label lbl, ty) ->+ fmap (lbl, ) <$> go ty++ TypeApp _ tyFn tyArg -> do+ assertNoParamUsedIn tyFn+ fmap MentionsParam <$> go tyArg++ TypeVar _ name ->+ pure $ (name == param) `orEmpty` IsParam++ ty ->+ assertNoParamUsedIn ty $> Nothing++usingLamIdent :: forall m. MonadSupply m => (Expr -> m Expr) -> m Expr+usingLamIdent cb = do+ ident <- freshIdent "v"+ lam ident <$> cb (mkVar ident)++traverseFields :: forall f. Applicative f => (ParamUsage -> Expr -> f Expr) -> NonEmpty (PSString, ParamUsage) -> Expr -> f Expr+traverseFields f fields r = fmap (ObjectUpdate r) . for (toList fields) $ \(lbl, usage) -> (lbl, ) <$> f usage (Accessor lbl r)++unnestRecords :: forall f. Applicative f => (ParamUsage -> Expr -> f Expr) -> ParamUsage -> Expr -> f Expr+unnestRecords f = fix $ \go -> \case+ IsRecord fields -> traverseFields go fields+ usage -> f usage++mkCasesForTraversal+ :: forall f m+ . Applicative f -- this effect distinguishes the semantics of maps, folds, and traversals => MonadSupply m => ModuleName+ -> (ParamUsage -> Expr -> f Expr) -- how to handle constructor arguments+ -> (f Expr -> m Expr) -- resolve the applicative effect into an expression+ -> [(ProperName 'ConstructorName, [Maybe ParamUsage])]+ -> 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 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 m+ . MonadSupply m+ => ModuleName+ -> Expr -- a var representing map, foldMap, or traverse, for handling structured values+ -> TraversalOps m+ -> [(ProperName 'ConstructorName, [Maybe ParamUsage])]+ -> m Expr+mkTraversal mn recurseVar (TraversalOps @_ @f visitExpr extractExpr) ctors = do+ f <- freshIdent "f"+ let+ handleValue :: ParamUsage -> Expr -> f Expr+ handleValue = unnestRecords $ \usage inputExpr -> visitExpr $ flip App inputExpr <$> mkFnExprForValue usage++ mkFnExprForValue :: ParamUsage -> m Expr+ mkFnExprForValue = \case+ IsParam ->+ pure $ mkVar f+ MentionsParam innerUsage ->+ App recurseVar <$> mkFnExprForValue innerUsage+ IsRecord fields ->+ usingLamIdent $ extractExpr . traverseFields handleValue fields++ lam f <$> mkCasesForTraversal mn handleValue extractExpr ctors++deriveFunctor+ :: forall m+ . MonadError MultipleErrors m+ => MonadState CheckState m+ => MonadSupply m+ => Qualified (ProperName 'ClassName)+ -> ModuleName -> ProperName 'TypeName -> m [(PSString, Expr)]-deriveFunctor mn tyConNm = do- (_, _, tys, ctors) <- lookupTypeDecl mn tyConNm- mapFun <- mkMapFunction tys ctors+deriveFunctor nm mn tyConNm = do+ ctors <- validateParamsInTypeConstructors nm mn tyConNm+ mapFun <- mkTraversal mn mapVar (TraversalOps identity identity) ctors pure [(Prelude.map, mapFun)] where- mkMapFunction :: [(Text, Maybe SourceType)] -> [(ProperName 'ConstructorName, [SourceType])] -> m Expr- mkMapFunction tys ctors = case reverse tys of- [] -> throwError . errorMessage $ KindsDoNotUnify (kindType -:> kindType) kindType- ((iTy, _) : _) -> do- f <- freshIdent "f"- m <- freshIdent "m"- lam f . lamCase m <$> mapM (mkCtorClause iTy f) ctors+ mapVar = mkRef Prelude.identMap - mkCtorClause :: Text -> Ident -> (ProperName 'ConstructorName, [SourceType]) -> m CaseAlternative- mkCtorClause iTyName f (ctorName, ctorTys) = do- idents <- replicateM (length ctorTys) (freshIdent "v")- ctorTys' <- mapM replaceAllTypeSynonyms ctorTys- args <- zipWithM transformArg idents ctorTys'- let ctor = mkCtor mn ctorName- rebuilt = foldl' App ctor args- caseBinder = mkCtorBinder mn ctorName $ map mkBinder idents- return $ CaseAlternative [caseBinder] (unguarded rebuilt)- where- fVar = mkVar f- mapVar = mkRef Prelude.identMap+toConst :: forall f a b. f a -> Const [f a] b+toConst = Const . pure - transformArg :: Ident -> SourceType -> m Expr- transformArg ident = fmap (foldr App (mkVar ident)) . goType where+consumeConst :: forall f a b c. Applicative f => ([a] -> b) -> Const [f a] c -> f b+consumeConst f = fmap f . sequenceA . getConst - goType :: SourceType -> m (Maybe Expr)- -- argument matches the index type- goType (TypeVar _ t) | t == iTyName = return (Just fVar)+applyWhen :: forall a. Bool -> (a -> a) -> a -> a+applyWhen cond f = if cond then f else identity - -- 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)+deriveFoldable+ :: forall m+ . MonadError MultipleErrors m+ => MonadState CheckState m+ => MonadSupply m+ => Qualified (ProperName 'ClassName)+ -> ModuleName+ -> ProperName 'TypeName+ -> m [(PSString, Expr)]+deriveFoldable nm mn tyConNm = do+ ctors <- validateParamsInTypeConstructors nm mn tyConNm+ foldlFun <- mkAsymmetricFoldFunction False foldlVar ctors+ foldrFun <- mkAsymmetricFoldFunction True foldrVar ctors+ foldMapFun <- mkTraversal mn foldMapVar foldMapOps ctors+ pure [(Foldable.foldl, foldlFun), (Foldable.foldr, foldrFun), (Foldable.foldMap, foldMapFun)]+ where+ foldlVar = mkRef Foldable.identFoldl+ foldrVar = mkRef Foldable.identFoldr+ foldMapVar = mkRef Foldable.identFoldMap+ flipVar = mkRef Prelude.identFlip - buildUpdate :: (Label, SourceType) -> m (Maybe (Label, Expr))- buildUpdate (lbl, ty) = do upd <- goType ty- return ((lbl,) <$> upd)+ mkAsymmetricFoldFunction :: Bool -> Expr -> [(ProperName 'ConstructorName, [Maybe ParamUsage])] -> m Expr+ mkAsymmetricFoldFunction isRightFold recurseVar ctors = do+ f <- freshIdent "f"+ z <- freshIdent "z"+ let+ appCombiner :: (Bool, Expr) -> Expr -> Expr -> Expr+ appCombiner (isFlipped, fn) = applyWhen (isFlipped == isRightFold) flip $ App . App fn - buildRecord :: [(Label, Expr)] -> m Expr- buildRecord updates = do- arg <- freshIdent "o"- let argVar = mkVar arg- mkAssignment (Label l, x) = (l, App x (Accessor l argVar))- return (lam arg (ObjectUpdate argVar (mkAssignment <$> updates)))+ mkCombinerExpr :: ParamUsage -> m Expr+ mkCombinerExpr = fmap (uncurry $ \isFlipped -> applyWhen isFlipped $ App flipVar) . getCombiner - -- quantifiers- goType (ForAll _ scopedVar _ t _) | scopedVar /= iTyName = goType t+ handleValue :: ParamUsage -> Expr -> Const [m (Expr -> Expr)] Expr+ handleValue = unnestRecords $ \usage inputExpr -> toConst $ flip appCombiner inputExpr <$> getCombiner usage - -- constraints- goType (ConstrainedType _ _ t) = goType t+ getCombiner :: ParamUsage -> m (Bool, Expr)+ getCombiner = \case+ IsParam ->+ pure (False, mkVar f)+ MentionsParam innerUsage ->+ (isRightFold, ) . App recurseVar <$> mkCombinerExpr innerUsage+ IsRecord fields -> do+ let foldFieldsOf = traverseFields handleValue fields+ fmap (False, ) . usingLamIdent $ \lVar ->+ usingLamIdent $+ if isRightFold+ then flip extractExprStartingWith $ foldFieldsOf lVar+ else extractExprStartingWith lVar . foldFieldsOf - -- under a `* -> *`, just assume functor for now- goType (TypeApp _ _ t) = fmap (App mapVar) <$> goType t+ extractExprStartingWith :: Expr -> Const [m (Expr -> Expr)] Expr -> m Expr+ extractExprStartingWith = consumeConst . if isRightFold then foldr ($) else foldl' (&) - -- otherwise do nothing - will fail type checking if type does actually contain index- goType _ = return Nothing+ lam f . lam z <$> mkCasesForTraversal mn handleValue (extractExprStartingWith $ mkVar z) ctors++foldMapOps :: forall m. Applicative m => TraversalOps m+foldMapOps = TraversalOps { visitExpr = toConst, .. }+ where+ appendVar = mkRef Prelude.identAppend+ memptyVar = mkRef Prelude.identMempty++ 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+ => Qualified (ProperName 'ClassName)+ -> ModuleName+ -> ProperName 'TypeName+ -> m [(PSString, Expr)]+deriveTraversable nm mn tyConNm = do+ ctors <- validateParamsInTypeConstructors nm mn tyConNm+ traverseFun <- mkTraversal mn traverseVar traverseOps ctors+ sequenceFun <- usingLamIdent $ pure . App (App traverseVar identityVar)+ pure [(Traversable.traverse, traverseFun), (Traversable.sequence, sequenceFun)]+ where+ traverseVar = mkRef Traversable.identTraverse+ identityVar = mkRef Prelude.identIdentity++traverseOps :: forall m. MonadSupply m => TraversalOps m+traverseOps = TraversalOps { .. }+ where+ pureVar = mkRef Prelude.identPure+ mapVar = mkRef Prelude.identMap+ applyVar = mkRef Prelude.identApply++ 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
src/Language/PureScript/TypeChecker/Entailment.hs view
@@ -9,7 +9,7 @@ , entails ) where -import Prelude.Compat+import Prelude import Protolude (ordNub) import Control.Arrow (second, (&&&))@@ -225,7 +225,7 @@ ctorModules _ = Nothing 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+ 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 (ByModuleName C.Prim) (Ident C.undefined))
src/Language/PureScript/TypeChecker/Entailment/Coercible.hs view
@@ -13,7 +13,7 @@ , insoluble ) where -import Prelude.Compat hiding (interact)+import Prelude hiding (interact) import Control.Applicative ((<|>), empty) import Control.Arrow ((&&&))
src/Language/PureScript/TypeChecker/Kinds.hs view
@@ -25,7 +25,7 @@ , freshKindWithKind ) where -import Prelude.Compat+import Prelude import Control.Arrow ((***)) import Control.Lens ((^.), _1, _2, _3)
src/Language/PureScript/TypeChecker/Monad.hs view
@@ -5,7 +5,7 @@ -- module Language.PureScript.TypeChecker.Monad where -import Prelude.Compat+import Prelude import Control.Arrow (second) import Control.Monad.Error.Class (MonadError(..))
src/Language/PureScript/TypeChecker/Roles.hs view
@@ -11,7 +11,7 @@ , inferDataBindingGroupRoles ) where -import Prelude.Compat+import Prelude import Control.Arrow ((&&&)) import Control.Monad (unless, when, zipWithM_)
src/Language/PureScript/TypeChecker/Skolems.hs view
@@ -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)
src/Language/PureScript/TypeChecker/Subsumption.hs view
@@ -5,7 +5,7 @@ ( subsumes ) where -import Prelude.Compat+import Prelude import Control.Monad (when) import Control.Monad.Error.Class (MonadError(..))
src/Language/PureScript/TypeChecker/Synonyms.hs view
@@ -10,7 +10,7 @@ , replaceAllTypeSynonymsM ) where -import Prelude.Compat+import Prelude import Control.Monad.Error.Class (MonadError(..)) import Control.Monad.State
src/Language/PureScript/TypeChecker/Types.hs view
@@ -23,7 +23,7 @@ Check a function of a given type returns a value of another type when applied to its arguments -} -import Prelude.Compat+import Prelude import Protolude (ordNub, fold, atMay) import Control.Arrow (first, second, (***))
src/Language/PureScript/TypeChecker/Unify.hs view
@@ -14,7 +14,7 @@ , varIfUnknown ) where -import Prelude.Compat+import Prelude import Control.Monad import Control.Monad.Error.Class (MonadError(..))
src/Language/PureScript/TypeClassDictionaries.hs view
@@ -1,6 +1,6 @@ module Language.PureScript.TypeClassDictionaries where -import Prelude.Compat+import Prelude import GHC.Generics (Generic) import Control.DeepSeq (NFData)
src/Language/PureScript/Types.hs view
@@ -3,7 +3,7 @@ -- module Language.PureScript.Types where -import Prelude.Compat+import Prelude import Protolude (ordNub) import Codec.Serialise (Serialise)@@ -17,7 +17,7 @@ import qualified Data.Aeson.Types as A import Data.Foldable (fold, foldl') import qualified Data.IntSet as IS-import Data.List (sort, sortOn)+import Data.List (sortOn) import Data.Maybe (fromMaybe, isJust) import Data.Text (Text) import qualified Data.Text as T@@ -511,7 +511,7 @@ -- | Collect all free type variables appearing in a type freeTypeVariables :: Type a -> [Text]-freeTypeVariables = ordNub . fmap snd . sort . go 0 [] where+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)]
src/System/IO/UTF8.hs view
@@ -1,6 +1,6 @@ module System.IO.UTF8 where -import Prelude.Compat+import Prelude import qualified Data.ByteString as BS import qualified Data.ByteString.Lazy as BSL
tests/Main.hs view
@@ -2,8 +2,7 @@ module Main (main) where -import Prelude ()-import Prelude.Compat+import Prelude import Test.Hspec
tests/TestCompiler.hs view
@@ -22,8 +22,7 @@ -- 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.Interactive.IO (readNodeProcessWithExitCode)@@ -135,9 +134,10 @@ -> Handle -> Expectation assertCompiles support inputFiles outputFile = do- (result, _) <- compile (Just IsMain) support inputFiles+ (fileContents, (result, _)) <- compile (Just IsMain) support inputFiles+ let errorOptions = P.defaultPPEOptions { P.ppeFileContents = fileContents } case result of- Left errs -> expectationFailure . P.prettyPrintMultipleErrors P.defaultPPEOptions $ errs+ Left errs -> expectationFailure . P.prettyPrintMultipleErrors errorOptions $ errs Right _ -> do let entryPoint = modulesDir </> "index.js" writeFile entryPoint "import('./Main/index.js').then(({ main }) => main());"@@ -157,15 +157,16 @@ -> [String] -> Expectation assertCompilesWithWarnings support inputFiles shouldWarnWith = do- result'@(result, warnings) <- compile Nothing support inputFiles+ (fileContents, result'@(result, warnings)) <- compile Nothing support inputFiles+ let errorOptions = P.defaultPPEOptions { P.ppeFileContents = fileContents } case result of Left errs ->- expectationFailure . P.prettyPrintMultipleErrors P.defaultPPEOptions $ errs+ expectationFailure . P.prettyPrintMultipleErrors errorOptions $ errs Right _ -> do- checkShouldReport shouldWarnWith (P.prettyPrintMultipleWarnings P.defaultPPEOptions) warnings+ checkShouldReport shouldWarnWith (P.prettyPrintMultipleWarnings errorOptions) warnings goldenVsString (replaceExtension (getTestMain inputFiles) ".out")- (return . T.encodeUtf8 . T.pack $ printDiagnosticsForGoldenTest result')+ (return . T.encodeUtf8 . T.pack $ printDiagnosticsForGoldenTest fileContents result') assertDoesNotCompile :: SupportModules@@ -173,7 +174,8 @@ -> [String] -> Expectation assertDoesNotCompile support inputFiles shouldFailWith = do- result <- compile Nothing support inputFiles+ (fileContents, result) <- compile Nothing support inputFiles+ let errorOptions = P.defaultPPEOptions { P.ppeFileContents = fileContents } case fst result of Left errs -> do when (null shouldFailWith)@@ -181,10 +183,10 @@ "shouldFailWith declaration is missing (errors were: " ++ show (map P.errorCode (P.runMultipleErrors errs)) ++ ")")- checkShouldReport shouldFailWith (P.prettyPrintMultipleErrors P.defaultPPEOptions) errs+ checkShouldReport shouldFailWith (P.prettyPrintMultipleErrors errorOptions) errs goldenVsString (replaceExtension (getTestMain inputFiles) ".out")- (return . T.encodeUtf8 . T.pack $ printDiagnosticsForGoldenTest result)+ (return . T.encodeUtf8 . T.pack $ printDiagnosticsForGoldenTest fileContents result) Right _ -> expectationFailure "Should not have compiled" @@ -193,9 +195,10 @@ -> [FilePath] -> Expectation assertCompilesToExpectedOutput support inputFiles = do- (result, _) <- compile Nothing support inputFiles+ (fileContents, (result, _)) <- compile Nothing support inputFiles+ let errorOptions = P.defaultPPEOptions { P.ppeFileContents = fileContents } case result of- Left errs -> expectationFailure . P.prettyPrintMultipleErrors P.defaultPPEOptions $ errs+ Left errs -> expectationFailure . P.prettyPrintMultipleErrors errorOptions $ errs Right _ -> goldenVsString (replaceExtension (getTestMain inputFiles) ".out.js")@@ -203,14 +206,16 @@ -- 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 :: (Either P.MultipleErrors a, P.MultipleErrors) -> String-printDiagnosticsForGoldenTest (result, warnings) =+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 P.defaultPPEOptions errs+ P.prettyPrintMultipleErrors errorOptions errs Right _ ->- P.prettyPrintMultipleWarnings P.defaultPPEOptions warnings+ P.prettyPrintMultipleWarnings errorOptions warnings+ where+ errorOptions = P.defaultPPEOptions { P.ppeFileContents = fileContents } -- Replaces Windows-style paths in an error or warning with POSIX paths normalizePaths :: String -> String
tests/TestCoreFn.hs view
@@ -2,8 +2,7 @@ module TestCoreFn (spec) where -import Prelude ()-import Prelude.Compat+import Prelude import Data.Aeson import Data.Aeson.Types as Aeson
tests/TestDocs.hs view
@@ -1,7 +1,6 @@ module TestDocs where -import Prelude ()-import Prelude.Compat+import Prelude import Data.Bifunctor (first) import Data.List (findIndex)
tests/TestGraph.hs view
@@ -1,7 +1,6 @@ module TestGraph where -import Prelude ()-import Prelude.Compat+import Prelude import Test.Hspec import Data.Either (isLeft)
tests/TestMake.hs view
@@ -3,8 +3,7 @@ module TestMake where -import Prelude ()-import Prelude.Compat+import Prelude import qualified Language.PureScript as P import qualified Language.PureScript.CST as CST
tests/TestPsci.hs view
@@ -1,6 +1,5 @@ module TestPsci where -import Prelude () import TestPsci.CommandTest (commandTests) import TestPsci.CompletionTest (completionTests)
tests/TestPsci/CommandTest.hs view
@@ -1,7 +1,6 @@ module TestPsci.CommandTest where -import Prelude ()-import Prelude.Compat+import Prelude import Control.Monad.IO.Class (liftIO) import Control.Monad.Trans.RWS.Strict (get)
tests/TestPsci/CompletionTest.hs view
@@ -1,7 +1,6 @@ module TestPsci.CompletionTest where -import Prelude ()-import Prelude.Compat+import Prelude import Test.Hspec
tests/TestPsci/EvalTest.hs view
@@ -1,7 +1,6 @@ module TestPsci.EvalTest where -import Prelude ()-import Prelude.Compat+import Prelude import Control.Monad (forM_, foldM_) import Control.Monad.IO.Class (liftIO)
tests/TestPsci/TestEnv.hs view
@@ -1,7 +1,6 @@ module TestPsci.TestEnv where -import Prelude ()-import Prelude.Compat+import Prelude import Control.Exception.Lifted (bracket_) import Control.Monad (void, when)
tests/TestSourceMaps.hs view
@@ -52,9 +52,10 @@ let modulePath = getTestMain inputFiles - (result, _) <- compile' compilationOptions (Just (IsSourceMap modulePath)) support 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 P.defaultPPEOptions $ errs+ Left errs -> expectationFailure . P.prettyPrintMultipleErrors errorOptions $ errs Right actualSourceMapFile -> do let readAndDecode :: FilePath -> IO (Maybe Json.Value)
tests/TestUtils.hs view
@@ -1,7 +1,6 @@ module TestUtils where -import Prelude ()-import Prelude.Compat+import Prelude import qualified Language.PureScript as P import qualified Language.PureScript.CST as CST@@ -189,7 +188,7 @@ :: Maybe ExpectedModuleName -> SupportModules -> [FilePath]- -> IO (Either P.MultipleErrors FilePath, P.MultipleErrors)+ -> IO ([(FilePath, T.Text)], (Either P.MultipleErrors FilePath, P.MultipleErrors)) compile = compile' P.defaultOptions compile'@@ -197,41 +196,42 @@ -> Maybe ExpectedModuleName -> SupportModules -> [FilePath]- -> IO (Either P.MultipleErrors FilePath, P.MultipleErrors)-compile' options expectedModule SupportModules{..} inputFiles = P.runMake options $ do+ -> 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 <- liftIO $ readInput (sort inputFiles)- 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)+ 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) - 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)+ 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
tests/purs/docs/output/Ado/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/purescript/tests/purs/docs/src/Ado.purs","start":[4,1]},"title":"test"}],"name":"Ado","reExports":[]}+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[9,16],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/Ado.purs","start":[4,1]},"title":"test"}],"name":"Ado","reExports":[]}
tests/purs/docs/output/ChildDeclOrder/docs.json view
@@ -1,1 +1,1 @@-{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[8,10],"name":"/home/jordan/Programming/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/purescript/tests/purs/docs/src/ChildDeclOrder.purs","start":[14,1]},"title":"Foo"}],"name":"ChildDeclOrder","reExports":[]}+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[8,10],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/ChildDeclOrder.purs","start":[8,3]},"title":"First"},{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[9,11],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/ChildDeclOrder.purs","start":[14,1]},"title":"Foo"}],"name":"ChildDeclOrder","reExports":[]}
tests/purs/docs/output/Clash1a/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/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/Projects/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/Projects/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/Projects/purescript/tests/purs/docs/src/Clash1a.purs","start":[8,1]},"title":"TypeClass"}],"name":"Clash1a","reExports":[]}+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[3,13],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/Clash1a.purs","start":[8,1]},"title":"TypeClass"}],"name":"Clash1a","reExports":[]}
tests/purs/docs/output/Clash2a/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/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/Projects/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/Projects/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/Projects/purescript/tests/purs/docs/src/Clash2a.purs","start":[8,1]},"title":"TypeClass"}],"name":"Clash2a","reExports":[]}+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[3,16],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/Clash2a.purs","start":[8,1]},"title":"TypeClass"}],"name":"Clash2a","reExports":[]}
tests/purs/docs/output/ConstrainedArgument/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/purescript/tests/purs/docs/src/ConstrainedArgument.purs","start":[3,1]},"title":"Foo"},{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"contents":["a",{"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"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[5,54],"name":"/home/jordan/Programming/Projects/purescript/tests/purs/docs/src/ConstrainedArgument.purs","start":[5,1]},"title":"WithoutArgs"},{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"contents":["a",{"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"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[6,52],"name":"/home/jordan/Programming/Projects/purescript/tests/purs/docs/src/ConstrainedArgument.purs","start":[6,1]},"title":"WithArgs"},{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"contents":["a",{"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"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[7,65],"name":"/home/jordan/Programming/Projects/purescript/tests/purs/docs/src/ConstrainedArgument.purs","start":[7,1]},"title":"MultiWithoutArgs"},{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"contents":["a",{"annotation":[],"contents":["b",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[8,63],"name":"/home/jordan/Programming/Projects/purescript/tests/purs/docs/src/ConstrainedArgument.purs","start":[8,1]},"title":"MultiWithArgs"}],"name":"ConstrainedArgument","reExports":[]}+{"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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/ConstrainedArgument.purs","start":[3,1]},"title":"Foo"},{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"contents":["a",{"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"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[5,54],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/ConstrainedArgument.purs","start":[5,1]},"title":"WithoutArgs"},{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"contents":["a",{"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"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[6,52],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/ConstrainedArgument.purs","start":[6,1]},"title":"WithArgs"},{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"contents":["a",{"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"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[7,65],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/ConstrainedArgument.purs","start":[7,1]},"title":"MultiWithoutArgs"},{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeSynonym","type":{"annotation":[],"contents":["a",{"annotation":[],"contents":["b",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[8,63],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/ConstrainedArgument.purs","start":[8,1]},"title":"MultiWithArgs"}],"name":"ConstrainedArgument","reExports":[]}
tests/purs/docs/output/DeclOrder/docs.json view
@@ -1,1 +1,1 @@-{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[16,8],"name":"/home/jordan/Programming/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/purescript/tests/purs/docs/src/DeclOrder.purs","start":[17,1]},"title":"B"}],"name":"DeclOrder","reExports":[]}+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"arguments":[],"declType":"typeClass","fundeps":[],"superclasses":[]},"kind":null,"sourceSpan":{"end":[16,8],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/DeclOrder.purs","start":[17,1]},"title":"B"}],"name":"DeclOrder","reExports":[]}
tests/purs/docs/output/DeclOrderNoExportList/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/purescript/tests/purs/docs/src/DeclOrderNoExportList.purs","start":[10,1]},"title":"B"}],"name":"DeclOrderNoExportList","reExports":[]}+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[3,7],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/DeclOrderNoExportList.purs","start":[10,1]},"title":"B"}],"name":"DeclOrderNoExportList","reExports":[]}
tests/purs/docs/output/Desugar/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/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/Projects/purescript/tests/purs/docs/src/Desugar.purs","start":[3,1]},"title":"X"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":["a",{"annotation":[],"contents":["b",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[5,38],"name":"/home/jordan/Programming/Projects/purescript/tests/purs/docs/src/Desugar.purs","start":[5,1]},"title":"test"}],"name":"Desugar","reExports":[]}+{"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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/Desugar.purs","start":[3,1]},"title":"X"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":["a",{"annotation":[],"contents":["b",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[5,38],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/Desugar.purs","start":[5,1]},"title":"test"}],"name":"Desugar","reExports":[]}
tests/purs/docs/output/DocComments/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/purescript/tests/purs/docs/src/DocComments.purs","start":[10,1]},"title":"example"}],"name":"DocComments","reExports":[]}+{"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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/DocComments.purs","start":[10,1]},"title":"example"}],"name":"DocComments","reExports":[]}
tests/purs/docs/output/DocCommentsClassMethod/docs.json view
@@ -1,1 +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/Projects/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/Projects/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/Projects/purescript/tests/purs/docs/src/DocCommentsClassMethod.purs","start":[3,1]},"title":"Foo"}],"name":"DocCommentsClassMethod","reExports":[]}+{"comments":null,"declarations":[{"children":[{"comments":"class method comment\n","info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[5,11],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/DocCommentsClassMethod.purs","start":[3,1]},"title":"Foo"}],"name":"DocCommentsClassMethod","reExports":[]}
tests/purs/docs/output/DocCommentsDataConstructor/docs.json view
@@ -1,1 +1,1 @@-{"comments":null,"declarations":[{"children":[{"comments":"data constructor comment\n","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[5,8],"name":"/home/jordan/Programming/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/purescript/tests/purs/docs/src/DocCommentsDataConstructor.purs","start":[13,1]},"title":"NewtypeFoo"}],"name":"DocCommentsDataConstructor","reExports":[]}+{"comments":null,"declarations":[{"children":[{"comments":"data constructor comment\n","info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[5,8],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/DocCommentsDataConstructor.purs","start":[5,3]},"title":"Bar"},{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[6,8],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/DocCommentsDataConstructor.purs","start":[13,1]},"title":"NewtypeFoo"}],"name":"DocCommentsDataConstructor","reExports":[]}
tests/purs/docs/output/DocCommentsMerge/docs.json view
@@ -1,1 +1,1 @@-{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[4,25],"name":"/home/jordan/Programming/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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":["k1",{"annotation":[],"contents":["k2",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"sourceSpan":{"end":[65,50],"name":"/home/jordan/Programming/Projects/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/Projects/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":["k1",{"annotation":[],"contents":["k2",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"sourceSpan":{"end":[70,48],"name":"/home/jordan/Programming/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[115,1]},"title":"KindAndClass"}],"name":"DocCommentsMerge","reExports":[]}+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[4,25],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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":["k1",{"annotation":[],"contents":["k2",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"sourceSpan":{"end":[65,50],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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":["k1",{"annotation":[],"contents":["k2",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"sourceSpan":{"end":[70,48],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/DocCommentsMerge.purs","start":[115,1]},"title":"KindAndClass"}],"name":"DocCommentsMerge","reExports":[]}
tests/purs/docs/output/DuplicateNames/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/purescript/tests/purs/docs/src/DuplicateNames.purs","start":[8,1]},"title":"unit"}],"name":"DuplicateNames","reExports":[]}+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[8,12],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/DuplicateNames.purs","start":[8,1]},"title":"unit"}],"name":"DuplicateNames","reExports":[]}
tests/purs/docs/output/Example2/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/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/Projects/purescript/tests/purs/docs/src/Example2.purs","start":[6,1]},"title":"two"}],"name":"Example2","reExports":[]}+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[3,11],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/Example2.purs","start":[6,1]},"title":"two"}],"name":"Example2","reExports":[]}
tests/purs/docs/output/ExplicitExport/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/purescript/tests/purs/docs/src/ExplicitExport.purs","start":[3,1]},"title":"one"}],"name":"ExplicitExport","reExports":[]}+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[3,11],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/ExplicitExport.purs","start":[3,1]},"title":"one"}],"name":"ExplicitExport","reExports":[]}
tests/purs/docs/output/ExplicitTypeSignatures/docs.json view
@@ -1,1 +1,1 @@-{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":["something",{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"something","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"something","tag":"TypeVar"}],"tag":"TypeApp"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[6,53],"name":"/home/jordan/Programming/Projects/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/Projects/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/Projects/purescript/tests/purs/docs/src/ExplicitTypeSignatures.purs","start":[16,1]},"title":"aNumber"}],"name":"ExplicitTypeSignatures","reExports":[]}+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":["something",{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"something","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"something","tag":"TypeVar"}],"tag":"TypeApp"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[6,53],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/ExplicitTypeSignatures.purs","start":[16,1]},"title":"aNumber"}],"name":"ExplicitTypeSignatures","reExports":[]}
tests/purs/docs/output/ImportedTwiceB/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/purescript/tests/purs/docs/src/ImportedTwiceB.purs","start":[3,1]},"title":"foo"}],"name":"ImportedTwiceB","reExports":[]}+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[3,11],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/ImportedTwiceB.purs","start":[3,1]},"title":"foo"}],"name":"ImportedTwiceB","reExports":[]}
tests/purs/docs/output/KindSignatureDocs/docs.json view
@@ -1,1 +1,1 @@-{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[4,35],"name":"/home/jordan/Programming/Projects/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[4,35],"name":"/home/jordan/Programming/Projects/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[7,26],"name":"/home/jordan/Programming/Projects/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/Projects/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[10,42],"name":"/home/jordan/Programming/Projects/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/Projects/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[14,34],"name":"/home/jordan/Programming/Projects/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/Projects/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[19,29],"name":"/home/jordan/Programming/Projects/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[22,23],"name":"/home/jordan/Programming/Projects/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/Projects/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[25,36],"name":"/home/jordan/Programming/Projects/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/Projects/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[29,31],"name":"/home/jordan/Programming/Projects/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/Projects/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[34,29],"name":"/home/jordan/Programming/Projects/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[37,23],"name":"/home/jordan/Programming/Projects/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/Projects/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[40,36],"name":"/home/jordan/Programming/Projects/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/Projects/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[44,31],"name":"/home/jordan/Programming/Projects/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/Projects/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[48,29],"name":"/home/jordan/Programming/Projects/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[50,23],"name":"/home/jordan/Programming/Projects/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/Projects/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[52,36],"name":"/home/jordan/Programming/Projects/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/Projects/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":["k1",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[55,31],"name":"/home/jordan/Programming/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[122,1]},"title":"CShown"}],"name":"KindSignatureDocs","reExports":[]}+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[4,35],"name":"/home/pure/PureFunctor/Haskell/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[4,35],"name":"/home/pure/PureFunctor/Haskell/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[7,26],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[10,42],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[14,34],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[19,29],"name":"/home/pure/PureFunctor/Haskell/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[22,23],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[25,36],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[29,31],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[34,29],"name":"/home/pure/PureFunctor/Haskell/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[37,23],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[40,36],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[44,31],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[48,29],"name":"/home/pure/PureFunctor/Haskell/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[50,23],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[52,36],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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":["k1",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[55,31],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/KindSignatureDocs.purs","start":[122,1]},"title":"CShown"}],"name":"KindSignatureDocs","reExports":[]}
tests/purs/docs/output/MultiVirtual1/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/purescript/tests/purs/docs/src/MultiVirtual1.purs","start":[3,1]},"title":"foo"}],"name":"MultiVirtual1","reExports":[]}+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[3,11],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/MultiVirtual1.purs","start":[3,1]},"title":"foo"}],"name":"MultiVirtual1","reExports":[]}
tests/purs/docs/output/MultiVirtual2/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/purescript/tests/purs/docs/src/MultiVirtual2.purs","start":[8,1]},"title":"bar"}],"name":"MultiVirtual2","reExports":[]}+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[8,11],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/MultiVirtual2.purs","start":[8,1]},"title":"bar"}],"name":"MultiVirtual2","reExports":[]}
tests/purs/docs/output/MultiVirtual3/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/purescript/tests/purs/docs/src/MultiVirtual3.purs","start":[3,1]},"title":"baz"}],"name":"MultiVirtual3","reExports":[]}+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[3,11],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/MultiVirtual3.purs","start":[3,1]},"title":"baz"}],"name":"MultiVirtual3","reExports":[]}
tests/purs/docs/output/NewOperators2/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/purescript/tests/purs/docs/src/NewOperators2.purs","start":[3,1]},"title":"(>>>)"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":["a",{"annotation":[],"contents":["b",{"annotation":[],"contents":["c",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[5,59],"name":"/home/jordan/Programming/Projects/purescript/tests/purs/docs/src/NewOperators2.purs","start":[5,1]},"title":"_compose"}],"name":"NewOperators2","reExports":[]}+{"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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/NewOperators2.purs","start":[3,1]},"title":"(>>>)"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":["a",{"annotation":[],"contents":["b",{"annotation":[],"contents":["c",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[5,59],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/NewOperators2.purs","start":[5,1]},"title":"_compose"}],"name":"NewOperators2","reExports":[]}
tests/purs/docs/output/OperatorSection/docs.json view
@@ -1,1 +1,1 @@-{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[3,18],"name":"/home/jordan/Programming/Projects/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/Projects/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/Projects/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/Projects/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/Projects/purescript/tests/purs/docs/src/OperatorSection.purs","start":[5,1]},"title":"(:)"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":["a",{"annotation":[],"contents":["b",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"sourceSpan":{"end":[8,54],"name":"/home/jordan/Programming/Projects/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/Projects/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/Projects/purescript/tests/purs/docs/src/OperatorSection.purs","start":[7,1]},"title":"Foldable"}],"name":"OperatorSection","reExports":[]}+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[3,18],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/OperatorSection.purs","start":[5,1]},"title":"(:)"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":["a",{"annotation":[],"contents":["b",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"sourceSpan":{"end":[8,54],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/OperatorSection.purs","start":[7,1]},"title":"Foldable"}],"name":"OperatorSection","reExports":[]}
tests/purs/docs/output/PrimSubmodules/docs.json view
@@ -1,1 +1,1 @@-{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[5,33],"name":"/home/jordan/Programming/Projects/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/Projects/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/Projects/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/Projects/purescript/tests/purs/docs/src/PrimSubmodules.purs","start":[10,1]},"title":"y"}],"name":"PrimSubmodules","reExports":[]}+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[5,33],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/PrimSubmodules.purs","start":[10,1]},"title":"y"}],"name":"PrimSubmodules","reExports":[]}
tests/purs/docs/output/RoleAnnotationDocs/docs.json view
@@ -1,1 +1,1 @@-{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[3,25],"name":"/home/jordan/Programming/Projects/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":["k1",{"annotation":[],"contents":["k2",{"annotation":[],"contents":["k3",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"sourceSpan":{"end":[3,25],"name":"/home/jordan/Programming/Projects/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/Projects/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":["k1",{"annotation":[],"contents":["k2",{"annotation":[],"contents":["k3",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"sourceSpan":{"end":[6,25],"name":"/home/jordan/Programming/Projects/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/Projects/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":["k1",{"annotation":[],"contents":["k2",{"annotation":[],"contents":["k3",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"sourceSpan":{"end":[9,25],"name":"/home/jordan/Programming/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/purescript/tests/purs/docs/src/RoleAnnotationDocs.purs","start":[35,1]},"title":"FFI_WholeParens"}],"name":"RoleAnnotationDocs","reExports":[]}+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[],"declType":"dataConstructor"},"sourceSpan":{"end":[3,25],"name":"/home/pure/PureFunctor/Haskell/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":["k1",{"annotation":[],"contents":["k2",{"annotation":[],"contents":["k3",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"sourceSpan":{"end":[3,25],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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":["k1",{"annotation":[],"contents":["k2",{"annotation":[],"contents":["k3",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"sourceSpan":{"end":[6,25],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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":["k1",{"annotation":[],"contents":["k2",{"annotation":[],"contents":["k3",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"sourceSpan":{"end":[9,25],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/RoleAnnotationDocs.purs","start":[35,1]},"title":"FFI_WholeParens"}],"name":"RoleAnnotationDocs","reExports":[]}
tests/purs/docs/output/SomeTypeClass/docs.json view
@@ -1,1 +1,1 @@-{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[5,14],"name":"/home/jordan/Programming/Projects/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/Projects/purescript/tests/purs/docs/src/SomeTypeClass.purs","start":[4,1]},"title":"SomeClass"}],"name":"SomeTypeClass","reExports":[]}+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"a","tag":"TypeVar"}},"sourceSpan":{"end":[5,14],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/SomeTypeClass.purs","start":[4,1]},"title":"SomeClass"}],"name":"SomeTypeClass","reExports":[]}
tests/purs/docs/output/Transitive3/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/purescript/tests/purs/docs/src/Transitive3.purs","start":[3,1]},"title":"transitive3"}],"name":"Transitive3","reExports":[]}+{"comments":null,"declarations":[{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[3,19],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/Transitive3.purs","start":[3,1]},"title":"transitive3"}],"name":"Transitive3","reExports":[]}
tests/purs/docs/output/TypeClassWithFunDeps/docs.json view
@@ -1,1 +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":"b","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[5,20],"name":"/home/jordan/Programming/Projects/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":["k1",{"annotation":[],"contents":["k2",{"annotation":[],"contents":["k3",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"sourceSpan":{"end":[5,20],"name":"/home/jordan/Programming/Projects/purescript/tests/purs/docs/src/TypeClassWithFunDeps.purs","start":[4,1]},"title":"TypeClassWithFunDeps"}],"name":"TypeClassWithFunDeps","reExports":[]}+{"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/pure/PureFunctor/Haskell/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":["k1",{"annotation":[],"contents":["k2",{"annotation":[],"contents":["k3",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"sourceSpan":{"end":[5,20],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/TypeClassWithFunDeps.purs","start":[4,1]},"title":"TypeClassWithFunDeps"}],"name":"TypeClassWithFunDeps","reExports":[]}
tests/purs/docs/output/TypeLevelString/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/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/Projects/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/Projects/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[7,12],"name":"/home/jordan/Programming/Projects/purescript/tests/purs/docs/src/TypeLevelString.purs","start":[7,1]},"title":"Bar"}],"name":"TypeLevelString","reExports":[]}+{"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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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":["k",{"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"},null],"tag":"ForAll"}},"sourceSpan":{"end":[7,12],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/TypeLevelString.purs","start":[7,1]},"title":"Bar"}],"name":"TypeLevelString","reExports":[]}
tests/purs/docs/output/TypeOpAliases/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/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/Projects/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[5,1]},"title":"type (~>)"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":["a",{"annotation":[],"contents":["b",{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"~>"],"tag":"TypeOp"},{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"BinaryNoParensType"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[7,43],"name":"/home/jordan/Programming/Projects/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[7,1]},"title":"test1"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":["a",{"annotation":[],"contents":["b",{"annotation":[],"contents":["c",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[8,50],"name":"/home/jordan/Programming/Projects/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[8,1]},"title":"test2"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":["a",{"annotation":[],"contents":["b",{"annotation":[],"contents":["c",{"annotation":[],"contents":["d",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[9,59],"name":"/home/jordan/Programming/Projects/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[9,1]},"title":"test3"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":["a",{"annotation":[],"contents":["b",{"annotation":[],"contents":["c",{"annotation":[],"contents":["d",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[10,61],"name":"/home/jordan/Programming/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[19,1]},"title":"type (⊕)"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":["a",{"annotation":[],"contents":["b",{"annotation":[],"contents":["c",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[21,31],"name":"/home/jordan/Programming/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/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/Projects/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[35,1]},"title":"TestR"}],"name":"TypeOpAliases","reExports":[]}+{"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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[5,1]},"title":"type (~>)"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":["a",{"annotation":[],"contents":["b",{"annotation":[],"contents":[{"annotation":[],"contents":[["TypeOpAliases"],"~>"],"tag":"TypeOp"},{"annotation":[],"contents":"a","tag":"TypeVar"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"BinaryNoParensType"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[7,43],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[7,1]},"title":"test1"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":["a",{"annotation":[],"contents":["b",{"annotation":[],"contents":["c",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[8,50],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[8,1]},"title":"test2"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":["a",{"annotation":[],"contents":["b",{"annotation":[],"contents":["c",{"annotation":[],"contents":["d",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[9,59],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[9,1]},"title":"test3"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":["a",{"annotation":[],"contents":["b",{"annotation":[],"contents":["c",{"annotation":[],"contents":["d",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[10,61],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[19,1]},"title":"type (⊕)"},{"children":[],"comments":null,"info":{"declType":"value","type":{"annotation":[],"contents":["a",{"annotation":[],"contents":["b",{"annotation":[],"contents":["c",{"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"},null],"tag":"ForAll"},null],"tag":"ForAll"},null],"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[21,31],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/TypeOpAliases.purs","start":[35,1]},"title":"TestR"}],"name":"TypeOpAliases","reExports":[]}
tests/purs/docs/output/TypeSynonym/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/purescript/tests/purs/docs/src/TypeSynonym.purs","start":[3,1]},"title":"MyInt"}],"name":"TypeSynonym","reExports":[]}+{"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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/TypeSynonym.purs","start":[3,1]},"title":"MyInt"}],"name":"TypeSynonym","reExports":[]}
tests/purs/docs/output/TypeSynonymInstance/docs.json view
@@ -1,1 +1,1 @@-{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["TypeSynonym"],"MyInt"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[7,26],"name":"/home/jordan/Programming/Projects/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/Projects/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/Projects/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/Projects/purescript/tests/purs/docs/src/TypeSynonymInstance.purs","start":[11,1]},"title":"foo"}],"name":"TypeSynonymInstance","reExports":[]}+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["TypeSynonym"],"MyInt"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[7,26],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/TypeSynonymInstance.purs","start":[11,1]},"title":"foo"}],"name":"TypeSynonymInstance","reExports":[]}
tests/purs/docs/output/UTF8/docs.json view
@@ -1,1 +1,1 @@-{"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/Projects/purescript/tests/purs/docs/src/UTF8.purs","start":[6,1]},"title":"thing"}],"name":"UTF8","reExports":[]}+{"comments":null,"declarations":[{"children":[],"comments":"üÜäÄ 😰\n","info":{"declType":"value","type":{"annotation":[],"contents":[["Prelude"],"Unit"],"tag":"TypeConstructor"}},"kind":null,"sourceSpan":{"end":[6,14],"name":"/home/pure/PureFunctor/Haskell/purescript/tests/purs/docs/src/UTF8.purs","start":[6,1]},"title":"thing"}],"name":"UTF8","reExports":[]}
tests/purs/docs/output/cache-db.json view
@@ -1,1 +1,1 @@-{"Ado":{"src/Ado.purs":["2022-04-04T14:32:49.37443093Z","bd980ae20d61e0e34d23507b1d25598f27407a78cf70084327506f21cc02d85df1bd1b6937459665a8dd9df5bb43ec5947b6e94c16c852aba233747e05a9d58f"]},"ChildDeclOrder":{"src/ChildDeclOrder.purs":["2022-04-04T14:32:49.37443093Z","41a7be97fffe1bbbf925ccb56b68246abb8684b23529fc25e07827b57b32b60ccd82d5c9a2279dc23be1f8803cff8267fa296509b873ec337ffa15ee0e32e2c9"]},"Clash":{"src/Clash.purs":["2022-04-04T14:32:49.37443093Z","7b70d019ea46b72149e185d82bc1345113e8a3977a886aa31ac8a268c6c63c7b93553e1586c45e023e49e485d3f6523a4a11efc8dc70dd8bac5d8b9cac4e4c2d"]},"Clash1":{"src/Clash1.purs":["2022-04-04T14:32:49.37443093Z","bd09c1fd0308ce61d83bef03d3b2366601df559ef8cc9c09f17d963a1bfb2b2e373dcbf5729a3e465c635fbf0035ae09ea3ba58b7844b56586dc3baf9d857bb5"]},"Clash1a":{"src/Clash1a.purs":["2022-04-04T14:32:49.37443093Z","b5c374c74a46d3f633c948de256e299dc2713857ce09441b5ae2f03afdd0468610088f39854f69848c1c9aecf3441b1b39e0919e499280a19d69b83de07d5d0b"]},"Clash2":{"src/Clash2.purs":["2022-04-04T14:32:49.37443093Z","10c61c6600084fdcc0ee93608a354fd7efa7edab67ac8cce131e522b597080b2927dc7bb1a6c98765dfc9a30583dc5bea2514d2932554ab1657c664a81a0a81b"]},"Clash2a":{"src/Clash2a.purs":["2022-04-04T14:32:49.37443093Z","b002aac5be65ac1cb55d10518840293780ea6d4a42b045172544ab3478ea83252f0672f0e1d4ad1599db3955f55202738ba1ee254b8ad94e914fc43fc1f6750f"]},"ConstrainedArgument":{"src/ConstrainedArgument.purs":["2022-04-04T14:32:49.37443093Z","6caa6cc505c6574957afe8e703f6e9869211e9c0a0676ba36a79d2a8b7e3c2c1570aae714cd6acc37e5b206745941460c1cf370a3bbd783c79b89351681ec890"]},"Data.Newtype":{"bower_components/purescript-newtype/src/Data/Newtype.purs":["2021-11-04T16:46:24.652281269Z","408eb6f95efb52faff05d73c757d21cebdd3b58dce3f5b8cfb5f0772224ca7e6ff9b5df0ab9ea40ce0f8448664fe56028af844b2c5dc32e5712b7d9d1541f2b7"]},"DeclOrder":{"src/DeclOrder.purs":["2022-04-04T14:32:49.37443093Z","a8c6ab9c335037c255ae6e0124a107f2e2462c2eebc2ff3637273ba436f2f3589ae203919ff5c8c61106b0542114ba3eba66426d8b5e316089bc1f4efb72643a"]},"DeclOrderNoExportList":{"src/DeclOrderNoExportList.purs":["2022-04-04T14:32:49.37443093Z","379def50dfd7a01dd2b057c707ea8ee53147d41c7dc28083c3827ccc213816840fd26d784a78bd1eabd105231e5479c7bfeebfcb03d1e2f3e8174ab173d740c4"]},"Desugar":{"src/Desugar.purs":["2022-04-04T14:32:49.37443093Z","50ceefe5cbac286908cc7070f4e94f57c62b5c91245d5a8c66d7f4565e3d037e4cf11524c4c790664588a0a5c4216390b5138be9ec93e14d0f82a2c59c8f561a"]},"DocComments":{"src/DocComments.purs":["2022-04-04T14:32:49.37443093Z","220498626601722feb58dd23dd80ac970f6ba7df8e8c2ad604ed833933f6b36219fb5f1d0b9963ffc7e9314043760055ab547fac5784a28416a4851f257a635b"]},"DocCommentsClassMethod":{"src/DocCommentsClassMethod.purs":["2022-04-04T14:32:49.37443093Z","f55a03f2b2624a9ca01adc8372bad4b7e46e8ef1a52ec41c5992767146c9a2354320a3a38587cbf2e78fec118430f193fdcb1cdd9600cd9f755dbbc2e36e46b7"]},"DocCommentsDataConstructor":{"src/DocCommentsDataConstructor.purs":["2022-04-04T14:32:49.37443093Z","68d644ce63642bd55d8338e78e0070c409d3c970a2967338cf612d7a3217813fd98a08e1905776572819cadbc08cdd4bec4a7c1473974a9f3f5d5b1149d33257"]},"DocCommentsMerge":{"src/DocCommentsMerge.purs":["2022-04-04T14:32:49.37443093Z","08e74333f59b1991e5c044debca1b8d2be7193898cc501c6c422b2f3e4c6e6aba8562cfa7b38dac2363e567357722e79d0fcc4757ee91ed067e7179a3615bdbd"]},"DuplicateNames":{"src/DuplicateNames.purs":["2022-04-04T14:32:49.37443093Z","5652f5da0ae79185fb27bce13793bd7752779364e0d1c7c56be2d213853c26ad0abff8536a0d34090a079980e498c837026521efe4a8cfc1b1a16ec70c724eed"]},"Example":{"src/Example.purs":["2022-04-04T14:32:49.37443093Z","3b700a99cc5ee257009553d27a2d25f71f68f006e9deec2b3578f01c7fe4e77de1e929dc110dfcd51d68685ad3ab6b09b0147fe63719861e8a9e480a64e286d9"]},"Example2":{"src/Example2.purs":["2022-04-04T14:32:49.37443093Z","6a479db4e40f66b1e29889516a55cfb22b15b2b8c4531b9cf20307a965af3dc0a6dab4eccc31cca4eacaaa158a01c58ff995ac6f01b2e1ed5571c44fa3bf2536"]},"ExplicitExport":{"src/ExplicitExport.purs":["2022-04-04T14:32:49.37443093Z","fe733409eb325c971f84b6414a1fc9e08793d2271eebcd670ceefd5c5aef837ee76ec5cb5bed96d87ea791a7521c76668a71be5cd8fb14209414893dc20d3d47"]},"ExplicitTypeSignatures":{"src/ExplicitTypeSignatures.purs":["2022-04-04T14:32:49.37443093Z","78a70441c9966f04c6c32a74cbba299f0f8ea870c664e738eb0d8f8cc5929edb7bb697170fc306c9ee69fa4e2f0112af15c8bdb29d63645cdf6f2916a122a0bd"]},"ImportedTwice":{"src/ImportedTwice.purs":["2022-04-04T14:32:49.37443093Z","be9a0cb1e75c689c3af6817a5750862915e70a0017476cce4c539a3c7ce5b33554aa14d2668bd131b89bb28d65b5ddaa79abfb2a538d606f1b11b5ef0ec79067"]},"ImportedTwiceA":{"src/ImportedTwiceA.purs":["2022-04-04T14:32:49.37443093Z","883c8abaefe0dbacbcdea4c53eab41da26687680274419720b1e5d6510bf5127b7ba06df23515ad34f7ffc4626f0064d7867e2b4a5f255a6b573d219926364de"]},"ImportedTwiceB":{"src/ImportedTwiceB.purs":["2022-04-04T14:32:49.37443093Z","48cc2ac8ce40b1d0e3782fcb8ec798cf9c4838a595148055f1bb830d9b07d58780170ad3f8a90f43ac561aff2c52a5d8793480526a4768ebf1c8af1ff1b68751"]},"KindSignatureDocs":{"src/KindSignatureDocs.purs":["2022-04-04T14:32:49.37443093Z","c2a224affb04b4c5db4712d15bfa830999c634c135bf1595f4930dd682258f5a278477ffeba297c42af5d74878e73694180a932ee2ebf7ad8a2ff66c4df2135d"]},"MultiVirtual":{"src/MultiVirtual.purs":["2022-04-04T14:32:49.37443093Z","31bc7e2c2ebee39dbc89536db51493a2cb1843a9e1aed8b288ef16660877fd1abd5f4224d3325a415aabcf79bd5fe76ebb9257738b0193a50c79a20d48b5ab29"]},"MultiVirtual1":{"src/MultiVirtual1.purs":["2022-04-04T14:32:49.37443093Z","23f7975f7494bb84f9fc6fde9071ce04e86df774d81e2b027a85ab46c8237f9921ee926f4a4ad3e03c7799e485ce39e542d1dd94953c50c0d58ea0003cfc3842"]},"MultiVirtual2":{"src/MultiVirtual2.purs":["2022-04-04T14:32:49.37443093Z","f424ed7c0db709b6bb1e57f87069f484fd0db9dddd0475cd15d36bd58743e98729c42efd2df6ee8fbd18609c36c2247cf3428a5a7f1f5ed11e233a2b134990ba"]},"MultiVirtual3":{"src/MultiVirtual3.purs":["2022-04-04T14:32:49.37443093Z","a42415e3b8309bfa81ef127c61dba6f4001188dcee160a8e2f73399179a11262f12daf0205d6bec38fc605b637550f16b62e84a0f2a0f6999355d56ff2540405"]},"NewOperators":{"src/NewOperators.purs":["2022-04-04T14:32:49.37443093Z","f74cae05c73db1f629e199692c517866fb1683caab3c4509657a371733f30319f0c505ed57208757b3e43795aab5191000c834a501d9bd2bf0e58875873c5c40"]},"NewOperators2":{"src/NewOperators2.purs":["2022-04-04T14:32:49.37443093Z","c551a91aa792fb9ee4b5758c010761a53d4a14b8fbaa6b76b6bd9a318a28f245c9b090bdc4f77b904c873d9b71d59fbad3ccd9ad7c8773f5c1e57a22a0204844"]},"NotAllCtors":{"src/NotAllCtors.purs":["2022-04-04T14:32:49.37443093Z","6e0af26cf897b5dd6e8dd4d75988e5607118f6fdd5219aa192f477cc4d760d504bdec930d46af82a44950e3de4fe6c37664a4560a523a45097503b85c161bd96"]},"OperatorSection":{"src/OperatorSection.purs":["2022-05-27T04:56:24.251223972Z","64a9d1bdc2b7df3fe4124651fee37440b9c53b61d25fba7e9a1974c713c12679f227fdc700a6d97218c3628dce4ea9c8c3c5b4e30b5b8f8ecf6a5f6781599c7b"]},"Prelude":{"bower_components/purescript-prelude/src/Prelude.purs":["2021-10-25T20:49:21.236373121Z","7eb0b2f9b7aec29693f79be4642ccea792b1f54c7022a4f1395fb8f3a9b1ad6cbfb2e7685940b89ab21890c02949ec90d4823bd5c36a6b566ca9cb8ec561958f"]},"PrimSubmodules":{"src/PrimSubmodules.purs":["2022-05-27T04:56:24.251223972Z","6b03520e209171032fd18661077ef49b0547b488667b8316e8ec6104a49914fe58929d1dea64fde39ed5a88d814304d0db1d5cd56a3a4b2b5a625585666e42c6"]},"ReExportedTypeClass":{"src/ReExportedTypeClass.purs":["2022-04-04T14:32:49.378431019Z","1cc581d68e1ce113162ab851872e73645807f0deb1d2b970ebc04b314184fe30c3431212ffcf9eec09a56a2291e0050750ac6905f1884bc74d406d0323c4f804"]},"RoleAnnotationDocs":{"src/RoleAnnotationDocs.purs":["2022-04-04T14:32:49.378431019Z","87b1012eaa7e6312ca43aa23efa0ec76eefd72d9e306233a35d4ab9dd3d74ad2051ab11555a5d1136ea2c1800bbfadfa0b52bad30a5a4b9ef3a9aa6498474506"]},"Shebang1Undocumented":{"src/Shebang1Undocumented.purs":["2022-06-08T12:25:40.293728057Z","55cff97ade15395974b1d714467dd824c260851b08a4aa365abf1980e5e746b378379d6b62ac4f1174f20c56600df82b05ca17f21643d529d8f21cb54069d5dc"]},"Shebang2Undocumented":{"src/Shebang2Undocumented.purs":["2022-06-08T12:25:40.293728057Z","d64e34906077c41cc542cbd50a604fb5c311526805a8f62be192cd05c1f6c68b03b728cb9cb90ff005d99f6e60a2384b584800fc23cd0064104d077aa3e22108"]},"Shebang3Undocumented":{"src/Shebang3Undocumented.purs":["2022-06-08T12:25:40.293728057Z","b3f811c431e42fef7eb9682fd1312e49d60b0394df825dcc34c083b191ca0361250ad503d9e4bcb5e7da6c715dab6ad51e47f936a595a0e77b771d5b547a1e3d"]},"Shebang4Undocumented":{"src/Shebang4Undocumented.purs":["2022-06-08T12:25:40.293728057Z","96139bf4debfdfa7f7b250aec10644f819a017f87127acd0cac613da51402f88664f7aea99767cfdfc6658efbe7eba5fba57b127ea5a8d15ba70057f7b6ee0a6"]},"SolitaryTypeClassMember":{"src/SolitaryTypeClassMember.purs":["2022-04-04T14:32:49.378431019Z","f627c589b0a8f58d7bfdf28ecf87891a74e64e8399ce0ab645b7c58049fddc1ea3cbb3c34b862bec8576108d5258d9548ecfbbab98598671cc645a3f358ac852"]},"SomeTypeClass":{"src/SomeTypeClass.purs":["2022-04-04T14:32:49.378431019Z","d09fc77e6c6350e7e4941e2911e012271a49db4a75c57cf738d5865ca622d60b69337f969aa02b13fc869484cba00479212e4b8dbcb458c5723e7a5d73888368"]},"Transitive1":{"src/Transitive1.purs":["2022-04-04T14:32:49.378431019Z","42681f3d0fa143d36474d1cb2f464820bdb907bbc432cd91349f6acdd82657ecb4d9ad1d075c96c551bed37dada4615dd3ff64f912f2cc8a6d99b5e02ee51979"]},"Transitive2":{"src/Transitive2.purs":["2022-04-04T14:32:49.378431019Z","110a1bae420e0f0c05e9846fad483a1d035dfc3ba82c2cd81e44f548fd97965055b1a687ab86256f8cb6a3d79b4c4abe6f45d4728bbc04a7a1b0fedbca115b1e"]},"Transitive3":{"src/Transitive3.purs":["2022-04-04T14:32:49.378431019Z","65f7bb366ac8fab63084ff0229c9d55293db8126b539ff2cb53e511505995f426d50f4cca7d1f61fc53aaaaeed9d72791f9d9f12cc569d92e7bbe1d1908b093c"]},"TypeClassWithFunDeps":{"src/TypeClassWithFunDeps.purs":["2022-04-04T14:32:49.378431019Z","c828f194c8c679d97425ed7e04eb3c9bb04bc4c32542d7d6d7e4a36c6c734eb8ba1ef472ad2b0085d9a042a0724648b85a4605d8fe4995e1a32839b1fb1f0f23"]},"TypeClassWithoutMembers":{"src/TypeClassWithoutMembers.purs":["2022-04-04T14:32:49.378431019Z","3eac42652ce295ee47c340c4b86c91d0f6a8ad1f81824475fa4fc4ae8fd8bb77ceee6a46e31bebe9d2e8a980a7923432b41b0eff5cbf75580ee149e7d997e098"]},"TypeClassWithoutMembersIntermediate":{"src/TypeClassWithoutMembersIntermediate.purs":["2022-04-04T14:32:49.378431019Z","76d65083da1f6240b4c3b6c910af1326b9b9a538f4eb278b00ddf0bf67d9547c1cab0fae7661bbe4af6e7ecdea9fd26cc9ff9ea5b289d3c3994b3ccb3d099ba8"]},"TypeLevelString":{"src/TypeLevelString.purs":["2022-04-04T14:32:49.378431019Z","361dc3825ebd3efcd9a53dd900cc623f5eca14df82afc93f4d485d8b38e51eb0a72929b6cfb783b3d5c9bef46e6fd18c139fdbd10de484beb335e09ecee79388"]},"TypeOpAliases":{"src/TypeOpAliases.purs":["2022-04-04T14:32:49.378431019Z","5f1279d355f0e8f8c7d063950007ba060f0afdb83524fa10361f389d25fdacdf149c907cbdd94cf3d1a77751903701f22ba377203cd3b5d0c40e504699f94249"]},"TypeSynonym":{"src/TypeSynonym.purs":["2022-04-04T14:32:49.378431019Z","d1a0af1c2592e7f150bb0bf1dca4fc82ffe95b4f96be611408828d105d28bb6a4243a4c2799b1c35875a352e51a19464e4507b9c81d9cd34f0f55f8c94898ed9"]},"TypeSynonymInstance":{"src/TypeSynonymInstance.purs":["2022-04-04T14:32:49.378431019Z","336ba7262428a526f3824306f4ac472aebf637181b8aa23d823e6e70641539a14d57b52272d844af3e3a7fa85cdf4094042e464b61622a5a1c290ee8a6684733"]},"UTF8":{"src/UTF8.purs":["2022-04-04T14:32:49.378431019Z","60771c6d4974ef36414775e5a2511e99d08d5ba3945b010d7a399b77b88b310e10ad7d0016f7946ca3f524e7bbd1dce3575f7b2d81f8154bde197a3da411a624"]},"Virtual":{"src/Virtual.purs":["2022-04-04T14:32:49.378431019Z","a1e01c8b1a7c86c86942611649702ebf6689cf7559ce9ca0ba66052eafe64826b0770b33089e72cc26a3c90d75bcf62e0b75a6a90e085e70a6ec946b16456de2"]}}+{"Ado":{"src/Ado.purs":["2021-11-28T09:05:27.296398356Z","bd980ae20d61e0e34d23507b1d25598f27407a78cf70084327506f21cc02d85df1bd1b6937459665a8dd9df5bb43ec5947b6e94c16c852aba233747e05a9d58f"]},"ChildDeclOrder":{"src/ChildDeclOrder.purs":["2021-11-28T09:05:27.296398356Z","41a7be97fffe1bbbf925ccb56b68246abb8684b23529fc25e07827b57b32b60ccd82d5c9a2279dc23be1f8803cff8267fa296509b873ec337ffa15ee0e32e2c9"]},"Clash":{"src/Clash.purs":["2021-11-28T09:05:27.296398356Z","7b70d019ea46b72149e185d82bc1345113e8a3977a886aa31ac8a268c6c63c7b93553e1586c45e023e49e485d3f6523a4a11efc8dc70dd8bac5d8b9cac4e4c2d"]},"Clash1":{"src/Clash1.purs":["2021-11-28T09:05:27.296398356Z","bd09c1fd0308ce61d83bef03d3b2366601df559ef8cc9c09f17d963a1bfb2b2e373dcbf5729a3e465c635fbf0035ae09ea3ba58b7844b56586dc3baf9d857bb5"]},"Clash1a":{"src/Clash1a.purs":["2021-11-28T09:05:27.296398356Z","b5c374c74a46d3f633c948de256e299dc2713857ce09441b5ae2f03afdd0468610088f39854f69848c1c9aecf3441b1b39e0919e499280a19d69b83de07d5d0b"]},"Clash2":{"src/Clash2.purs":["2021-11-28T09:05:27.296398356Z","10c61c6600084fdcc0ee93608a354fd7efa7edab67ac8cce131e522b597080b2927dc7bb1a6c98765dfc9a30583dc5bea2514d2932554ab1657c664a81a0a81b"]},"Clash2a":{"src/Clash2a.purs":["2021-11-28T09:05:27.296398356Z","b002aac5be65ac1cb55d10518840293780ea6d4a42b045172544ab3478ea83252f0672f0e1d4ad1599db3955f55202738ba1ee254b8ad94e914fc43fc1f6750f"]},"ConstrainedArgument":{"src/ConstrainedArgument.purs":["2021-11-28T09:05:27.296398356Z","6caa6cc505c6574957afe8e703f6e9869211e9c0a0676ba36a79d2a8b7e3c2c1570aae714cd6acc37e5b206745941460c1cf370a3bbd783c79b89351681ec890"]},"Data.Newtype":{"bower_components/purescript-newtype/src/Data/Newtype.purs":["2021-11-28T09:05:27.293064974Z","408eb6f95efb52faff05d73c757d21cebdd3b58dce3f5b8cfb5f0772224ca7e6ff9b5df0ab9ea40ce0f8448664fe56028af844b2c5dc32e5712b7d9d1541f2b7"]},"DeclOrder":{"src/DeclOrder.purs":["2021-11-28T09:05:27.296398356Z","a8c6ab9c335037c255ae6e0124a107f2e2462c2eebc2ff3637273ba436f2f3589ae203919ff5c8c61106b0542114ba3eba66426d8b5e316089bc1f4efb72643a"]},"DeclOrderNoExportList":{"src/DeclOrderNoExportList.purs":["2021-11-28T09:05:27.296398356Z","379def50dfd7a01dd2b057c707ea8ee53147d41c7dc28083c3827ccc213816840fd26d784a78bd1eabd105231e5479c7bfeebfcb03d1e2f3e8174ab173d740c4"]},"Desugar":{"src/Desugar.purs":["2021-11-28T09:05:27.296398356Z","50ceefe5cbac286908cc7070f4e94f57c62b5c91245d5a8c66d7f4565e3d037e4cf11524c4c790664588a0a5c4216390b5138be9ec93e14d0f82a2c59c8f561a"]},"DocComments":{"src/DocComments.purs":["2021-11-28T09:05:27.296398356Z","220498626601722feb58dd23dd80ac970f6ba7df8e8c2ad604ed833933f6b36219fb5f1d0b9963ffc7e9314043760055ab547fac5784a28416a4851f257a635b"]},"DocCommentsClassMethod":{"src/DocCommentsClassMethod.purs":["2021-11-28T09:05:27.296398356Z","f55a03f2b2624a9ca01adc8372bad4b7e46e8ef1a52ec41c5992767146c9a2354320a3a38587cbf2e78fec118430f193fdcb1cdd9600cd9f755dbbc2e36e46b7"]},"DocCommentsDataConstructor":{"src/DocCommentsDataConstructor.purs":["2021-11-28T09:05:27.296398356Z","68d644ce63642bd55d8338e78e0070c409d3c970a2967338cf612d7a3217813fd98a08e1905776572819cadbc08cdd4bec4a7c1473974a9f3f5d5b1149d33257"]},"DocCommentsMerge":{"src/DocCommentsMerge.purs":["2022-01-25T08:15:07.04967942Z","08e74333f59b1991e5c044debca1b8d2be7193898cc501c6c422b2f3e4c6e6aba8562cfa7b38dac2363e567357722e79d0fcc4757ee91ed067e7179a3615bdbd"]},"DuplicateNames":{"src/DuplicateNames.purs":["2021-11-28T09:05:27.296398356Z","5652f5da0ae79185fb27bce13793bd7752779364e0d1c7c56be2d213853c26ad0abff8536a0d34090a079980e498c837026521efe4a8cfc1b1a16ec70c724eed"]},"Example":{"src/Example.purs":["2021-11-28T09:05:27.296398356Z","3b700a99cc5ee257009553d27a2d25f71f68f006e9deec2b3578f01c7fe4e77de1e929dc110dfcd51d68685ad3ab6b09b0147fe63719861e8a9e480a64e286d9"]},"Example2":{"src/Example2.purs":["2021-11-28T09:05:27.296398356Z","6a479db4e40f66b1e29889516a55cfb22b15b2b8c4531b9cf20307a965af3dc0a6dab4eccc31cca4eacaaa158a01c58ff995ac6f01b2e1ed5571c44fa3bf2536"]},"ExplicitExport":{"src/ExplicitExport.purs":["2021-11-28T09:05:27.296398356Z","fe733409eb325c971f84b6414a1fc9e08793d2271eebcd670ceefd5c5aef837ee76ec5cb5bed96d87ea791a7521c76668a71be5cd8fb14209414893dc20d3d47"]},"ExplicitTypeSignatures":{"src/ExplicitTypeSignatures.purs":["2021-11-28T09:05:27.296398356Z","78a70441c9966f04c6c32a74cbba299f0f8ea870c664e738eb0d8f8cc5929edb7bb697170fc306c9ee69fa4e2f0112af15c8bdb29d63645cdf6f2916a122a0bd"]},"ImportedTwice":{"src/ImportedTwice.purs":["2021-11-28T09:05:27.296398356Z","be9a0cb1e75c689c3af6817a5750862915e70a0017476cce4c539a3c7ce5b33554aa14d2668bd131b89bb28d65b5ddaa79abfb2a538d606f1b11b5ef0ec79067"]},"ImportedTwiceA":{"src/ImportedTwiceA.purs":["2021-11-28T09:05:27.296398356Z","883c8abaefe0dbacbcdea4c53eab41da26687680274419720b1e5d6510bf5127b7ba06df23515ad34f7ffc4626f0064d7867e2b4a5f255a6b573d219926364de"]},"ImportedTwiceB":{"src/ImportedTwiceB.purs":["2021-11-28T09:05:27.296398356Z","48cc2ac8ce40b1d0e3782fcb8ec798cf9c4838a595148055f1bb830d9b07d58780170ad3f8a90f43ac561aff2c52a5d8793480526a4768ebf1c8af1ff1b68751"]},"KindSignatureDocs":{"src/KindSignatureDocs.purs":["2022-01-25T08:15:07.04967942Z","c2a224affb04b4c5db4712d15bfa830999c634c135bf1595f4930dd682258f5a278477ffeba297c42af5d74878e73694180a932ee2ebf7ad8a2ff66c4df2135d"]},"MultiVirtual":{"src/MultiVirtual.purs":["2021-11-28T09:05:27.296398356Z","31bc7e2c2ebee39dbc89536db51493a2cb1843a9e1aed8b288ef16660877fd1abd5f4224d3325a415aabcf79bd5fe76ebb9257738b0193a50c79a20d48b5ab29"]},"MultiVirtual1":{"src/MultiVirtual1.purs":["2021-11-28T09:05:27.296398356Z","23f7975f7494bb84f9fc6fde9071ce04e86df774d81e2b027a85ab46c8237f9921ee926f4a4ad3e03c7799e485ce39e542d1dd94953c50c0d58ea0003cfc3842"]},"MultiVirtual2":{"src/MultiVirtual2.purs":["2021-11-28T09:05:27.296398356Z","f424ed7c0db709b6bb1e57f87069f484fd0db9dddd0475cd15d36bd58743e98729c42efd2df6ee8fbd18609c36c2247cf3428a5a7f1f5ed11e233a2b134990ba"]},"MultiVirtual3":{"src/MultiVirtual3.purs":["2021-11-28T09:05:27.296398356Z","a42415e3b8309bfa81ef127c61dba6f4001188dcee160a8e2f73399179a11262f12daf0205d6bec38fc605b637550f16b62e84a0f2a0f6999355d56ff2540405"]},"NewOperators":{"src/NewOperators.purs":["2021-11-28T09:05:27.296398356Z","f74cae05c73db1f629e199692c517866fb1683caab3c4509657a371733f30319f0c505ed57208757b3e43795aab5191000c834a501d9bd2bf0e58875873c5c40"]},"NewOperators2":{"src/NewOperators2.purs":["2021-11-28T09:05:27.296398356Z","c551a91aa792fb9ee4b5758c010761a53d4a14b8fbaa6b76b6bd9a318a28f245c9b090bdc4f77b904c873d9b71d59fbad3ccd9ad7c8773f5c1e57a22a0204844"]},"NotAllCtors":{"src/NotAllCtors.purs":["2021-11-28T09:05:27.296398356Z","6e0af26cf897b5dd6e8dd4d75988e5607118f6fdd5219aa192f477cc4d760d504bdec930d46af82a44950e3de4fe6c37664a4560a523a45097503b85c161bd96"]},"OperatorSection":{"src/OperatorSection.purs":["2022-04-22T14:06:09.859228226Z","64a9d1bdc2b7df3fe4124651fee37440b9c53b61d25fba7e9a1974c713c12679f227fdc700a6d97218c3628dce4ea9c8c3c5b4e30b5b8f8ecf6a5f6781599c7b"]},"Prelude":{"bower_components/purescript-prelude/src/Prelude.purs":["2021-11-28T09:05:27.293064974Z","7eb0b2f9b7aec29693f79be4642ccea792b1f54c7022a4f1395fb8f3a9b1ad6cbfb2e7685940b89ab21890c02949ec90d4823bd5c36a6b566ca9cb8ec561958f"]},"PrimSubmodules":{"src/PrimSubmodules.purs":["2022-04-22T14:06:09.859228226Z","6b03520e209171032fd18661077ef49b0547b488667b8316e8ec6104a49914fe58929d1dea64fde39ed5a88d814304d0db1d5cd56a3a4b2b5a625585666e42c6"]},"ReExportedTypeClass":{"src/ReExportedTypeClass.purs":["2021-11-28T09:05:27.296398356Z","1cc581d68e1ce113162ab851872e73645807f0deb1d2b970ebc04b314184fe30c3431212ffcf9eec09a56a2291e0050750ac6905f1884bc74d406d0323c4f804"]},"RoleAnnotationDocs":{"src/RoleAnnotationDocs.purs":["2022-01-25T08:15:07.04967942Z","87b1012eaa7e6312ca43aa23efa0ec76eefd72d9e306233a35d4ab9dd3d74ad2051ab11555a5d1136ea2c1800bbfadfa0b52bad30a5a4b9ef3a9aa6498474506"]},"Shebang1Undocumented":{"src/Shebang1Undocumented.purs":["2022-06-09T02:21:13.161043075Z","55cff97ade15395974b1d714467dd824c260851b08a4aa365abf1980e5e746b378379d6b62ac4f1174f20c56600df82b05ca17f21643d529d8f21cb54069d5dc"]},"Shebang2Undocumented":{"src/Shebang2Undocumented.purs":["2022-06-09T02:21:13.161043075Z","d64e34906077c41cc542cbd50a604fb5c311526805a8f62be192cd05c1f6c68b03b728cb9cb90ff005d99f6e60a2384b584800fc23cd0064104d077aa3e22108"]},"Shebang3Undocumented":{"src/Shebang3Undocumented.purs":["2022-06-09T02:21:13.161043075Z","b3f811c431e42fef7eb9682fd1312e49d60b0394df825dcc34c083b191ca0361250ad503d9e4bcb5e7da6c715dab6ad51e47f936a595a0e77b771d5b547a1e3d"]},"Shebang4Undocumented":{"src/Shebang4Undocumented.purs":["2022-06-09T02:21:13.161043075Z","96139bf4debfdfa7f7b250aec10644f819a017f87127acd0cac613da51402f88664f7aea99767cfdfc6658efbe7eba5fba57b127ea5a8d15ba70057f7b6ee0a6"]},"SolitaryTypeClassMember":{"src/SolitaryTypeClassMember.purs":["2021-11-28T09:05:27.296398356Z","f627c589b0a8f58d7bfdf28ecf87891a74e64e8399ce0ab645b7c58049fddc1ea3cbb3c34b862bec8576108d5258d9548ecfbbab98598671cc645a3f358ac852"]},"SomeTypeClass":{"src/SomeTypeClass.purs":["2021-11-28T09:05:27.296398356Z","d09fc77e6c6350e7e4941e2911e012271a49db4a75c57cf738d5865ca622d60b69337f969aa02b13fc869484cba00479212e4b8dbcb458c5723e7a5d73888368"]},"Transitive1":{"src/Transitive1.purs":["2021-11-28T09:05:27.296398356Z","42681f3d0fa143d36474d1cb2f464820bdb907bbc432cd91349f6acdd82657ecb4d9ad1d075c96c551bed37dada4615dd3ff64f912f2cc8a6d99b5e02ee51979"]},"Transitive2":{"src/Transitive2.purs":["2021-11-28T09:05:27.296398356Z","110a1bae420e0f0c05e9846fad483a1d035dfc3ba82c2cd81e44f548fd97965055b1a687ab86256f8cb6a3d79b4c4abe6f45d4728bbc04a7a1b0fedbca115b1e"]},"Transitive3":{"src/Transitive3.purs":["2021-11-28T09:05:27.296398356Z","65f7bb366ac8fab63084ff0229c9d55293db8126b539ff2cb53e511505995f426d50f4cca7d1f61fc53aaaaeed9d72791f9d9f12cc569d92e7bbe1d1908b093c"]},"TypeClassWithFunDeps":{"src/TypeClassWithFunDeps.purs":["2021-11-28T09:05:27.296398356Z","c828f194c8c679d97425ed7e04eb3c9bb04bc4c32542d7d6d7e4a36c6c734eb8ba1ef472ad2b0085d9a042a0724648b85a4605d8fe4995e1a32839b1fb1f0f23"]},"TypeClassWithoutMembers":{"src/TypeClassWithoutMembers.purs":["2021-11-28T09:05:27.296398356Z","3eac42652ce295ee47c340c4b86c91d0f6a8ad1f81824475fa4fc4ae8fd8bb77ceee6a46e31bebe9d2e8a980a7923432b41b0eff5cbf75580ee149e7d997e098"]},"TypeClassWithoutMembersIntermediate":{"src/TypeClassWithoutMembersIntermediate.purs":["2021-11-28T09:05:27.296398356Z","76d65083da1f6240b4c3b6c910af1326b9b9a538f4eb278b00ddf0bf67d9547c1cab0fae7661bbe4af6e7ecdea9fd26cc9ff9ea5b289d3c3994b3ccb3d099ba8"]},"TypeLevelString":{"src/TypeLevelString.purs":["2021-11-28T09:05:27.296398356Z","361dc3825ebd3efcd9a53dd900cc623f5eca14df82afc93f4d485d8b38e51eb0a72929b6cfb783b3d5c9bef46e6fd18c139fdbd10de484beb335e09ecee79388"]},"TypeOpAliases":{"src/TypeOpAliases.purs":["2021-11-28T09:05:27.296398356Z","5f1279d355f0e8f8c7d063950007ba060f0afdb83524fa10361f389d25fdacdf149c907cbdd94cf3d1a77751903701f22ba377203cd3b5d0c40e504699f94249"]},"TypeSynonym":{"src/TypeSynonym.purs":["2021-11-28T09:05:27.296398356Z","d1a0af1c2592e7f150bb0bf1dca4fc82ffe95b4f96be611408828d105d28bb6a4243a4c2799b1c35875a352e51a19464e4507b9c81d9cd34f0f55f8c94898ed9"]},"TypeSynonymInstance":{"src/TypeSynonymInstance.purs":["2021-11-28T09:05:27.296398356Z","336ba7262428a526f3824306f4ac472aebf637181b8aa23d823e6e70641539a14d57b52272d844af3e3a7fa85cdf4094042e464b61622a5a1c290ee8a6684733"]},"UTF8":{"src/UTF8.purs":["2021-11-28T09:05:27.316398646Z","60771c6d4974ef36414775e5a2511e99d08d5ba3945b010d7a399b77b88b310e10ad7d0016f7946ca3f524e7bbd1dce3575f7b2d81f8154bde197a3da411a624"]},"Virtual":{"src/Virtual.purs":["2021-11-28T09:05:27.316398646Z","a1e01c8b1a7c86c86942611649702ebf6689cf7559ce9ca0ba66052eafe64826b0770b33089e72cc26a3c90d75bcf62e0b75a6a90e085e70a6ec946b16456de2"]}}
+ tests/purs/failing/4382.out view
@@ -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.+
+ tests/purs/failing/4382.purs view
@@ -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)
+ tests/purs/failing/FoldableInstance1.out view
@@ -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.+
+ tests/purs/failing/FoldableInstance1.purs view
@@ -0,0 +1,9 @@+-- @shouldFailWith KindsDoNotUnify+module Main where++import Prelude+import Data.Foldable (class Foldable)++data Foo = Bar++derive instance Foldable Foo
+ tests/purs/failing/FoldableInstance10.out view
@@ -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 [33mFoldable[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.+
+ tests/purs/failing/FoldableInstance10.purs view
@@ -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
+ tests/purs/failing/FoldableInstance2.out view
@@ -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.+
+ tests/purs/failing/FoldableInstance2.purs view
@@ -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
+ tests/purs/failing/FoldableInstance3.out view
@@ -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.+
+ tests/purs/failing/FoldableInstance3.purs view
@@ -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
+ tests/purs/failing/FoldableInstance4.out view
@@ -0,0 +1,23 @@+Error found:+in module [33mFoldableInstance4[0m+at tests/purs/failing/FoldableInstance4.purs:8:1 - 8:27 (line 8, column 1 - line 8, column 27)++ No type class instance was found for+ [33m [0m+ [33m Data.Foldable.Foldable (Function t3)[0m+ [33m [0m+ The instance head contains unknown type variables. Consider adding a type annotation.++while applying a function [33mfoldl[0m+ of type [33mFoldable t0 => (t1 -> t2 -> t1) -> t1 -> t0 t2 -> t1[0m+ to argument [33m$f1[0m+while inferring the type of [33mfoldl $f1[0m++where [33mt0[0m is an unknown type+ [33mt2[0m is an unknown type+ [33mt1[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.+
+ tests/purs/failing/FoldableInstance4.purs view
@@ -0,0 +1,8 @@+-- @shouldFailWith NoInstanceFound+module FoldableInstance4 where++import Prelude+import Data.Foldable (class Foldable)++data T a = T (forall t. Show t => t -> a)+derive instance Foldable T
+ tests/purs/failing/FoldableInstance5.out view
@@ -0,0 +1,16 @@+Error found:+in module [33mFoldableInstance5[0m+at tests/purs/failing/FoldableInstance5.purs:9:1 - 9:30 (line 9, column 1 - line 9, 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 [33mFoldable[0m.++ tests/purs/failing/FoldableInstance5.purs:+ [90m 7[0m [33m[0m+ [90m 8[0m [33mdata Test a = Test (Tuple [7ma[27m Int)[0m+ [90m 9[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.+
+ tests/purs/failing/FoldableInstance5.purs view
@@ -0,0 +1,9 @@+-- @shouldFailWith CannotDeriveInvalidConstructorArg+module FoldableInstance5 where++import Prelude+import Data.Foldable (class Foldable)+import Data.Tuple (Tuple(..))++data Test a = Test (Tuple a Int)+derive instance Foldable Test
+ tests/purs/failing/FoldableInstance6.out view
@@ -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 [33mFoldable[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.+
+ tests/purs/failing/FoldableInstance6.purs view
@@ -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
+ tests/purs/failing/FoldableInstance7.out view
@@ -0,0 +1,16 @@+Error found:+in module [33mFoldableInstance6[0m+at tests/purs/failing/FoldableInstance7.purs:9:1 - 9:30 (line 9, column 1 - line 9, 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 [33mFoldable[0m.++ tests/purs/failing/FoldableInstance7.purs:+ [90m 7[0m [33m[0m+ [90m 8[0m [33mdata Test a = Test (Tuple [7ma[27m a)[0m+ [90m 9[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.+
+ tests/purs/failing/FoldableInstance7.purs view
@@ -0,0 +1,9 @@+-- @shouldFailWith CannotDeriveInvalidConstructorArg+module FoldableInstance6 where++import Prelude+import Data.Tuple (Tuple(..))+import Data.Foldable (class Foldable)++data Test a = Test (Tuple a a)+derive instance Foldable Test
+ tests/purs/failing/FoldableInstance8.out view
@@ -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 [33mFoldable[0m.++ tests/purs/failing/FoldableInstance8.purs:+ [90m 6[0m [33m[0m+ [90m 7[0m [33mdata Test f a = Test (f [7ma[27m a)[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.+
+ tests/purs/failing/FoldableInstance8.purs view
@@ -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)
+ tests/purs/failing/FoldableInstance9.out view
@@ -0,0 +1,49 @@+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 [33mFoldable[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 a) (f Int [7ma[27m a) (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 a[0m+ [90m 18[0m [33m , rights :: f Int [7ma[27m a[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 ...[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 a)[0m+ [90m 50[0m [33m | Test5 (Rec f [7ma[27m)[0m+ [90m 51[0m [33m | Test6 (g (Rec f [7ma[27m) a)[0m+ [90m 52[0m [33m | Test7 (h { nested1 :: Rec f [7ma[27m, nested2 :: g (Rec f [7ma[27m) [7ma[27m } a)[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.+
+ tests/purs/failing/FoldableInstance9.purs view
@@ -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)
+ tests/purs/failing/TypedHole4.out view
@@ -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.+
+ tests/purs/failing/TypedHole4.purs view
@@ -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
+ tests/purs/optimize/4386.out.js view
@@ -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+};
+ tests/purs/optimize/4386.purs view
@@ -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
+ tests/purs/passing/4194.purs view
@@ -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"
+ tests/purs/passing/DerivingFoldable.purs view
@@ -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"
tests/purs/passing/DerivingFunctor.purs view
@@ -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"
+ tests/purs/passing/DerivingTraversable.purs view
@@ -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"
+ tests/purs/passing/SingleInstanceFundep.purs view
@@ -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"
tests/purs/publish/basic-example/output/Main/docs.json view
@@ -1,1 +1,1 @@-{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[8,31],"name":"/home/jordan/Programming/Projects/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/Projects/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/Projects/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/Projects/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/Projects/purescript/tests/purs/publish/basic-example/src/Main.purs","start":[15,1]},"title":"main"}],"name":"Main","reExports":[]}+{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"arguments":[{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"declType":"dataConstructor"},"sourceSpan":{"end":[8,31],"name":"/home/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/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/pure/PureFunctor/Haskell/purescript/tests/purs/publish/basic-example/src/Main.purs","start":[15,1]},"title":"main"}],"name":"Main","reExports":[]}
tests/purs/publish/basic-example/output/cache-db.json view
@@ -1,1 +1,1 @@-{"Control.Applicative":{"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs":["2022-04-27T13:37:39Z","5889c8a23c34d2d9c7d1fe41df1512314055fafda79900099b37a76451fb6394dac06633caf5c206c432817a9c07b892b18c3b99d1013a298acc85a579aee2f1"]},"Control.Apply":{"../../../support/bower_components/purescript-prelude/src/Control/Apply.js":["2022-04-27T13:37:39Z","73ee829e5dfad80f1d5f957d0e52b1d069ea798919d608b4733cedda4736681ec26d7e33501428966bf213b8a344c1272f7658867780c7237baf90da4c9d5ad3"],"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs":["2022-04-27T13:37:39Z","524e797c42f16dbc375aa2403a4867a5744116d9302bda790333251ccf88d773e079fb8c3af1f87eccdc0c0bbf682b932a48506ca5f51ef441832177fafd4eb0"]},"Control.Bind":{"../../../support/bower_components/purescript-prelude/src/Control/Bind.js":["2022-04-27T13:37:39Z","abbbecd9697ae2109a9b74f70bfce37c0589e0d99b10e090660e1c76a491744c84fd459c53172256c70cdaffde3f0dc1abe0464fa32b977cf71e789425ca8bfe"],"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs":["2022-04-27T13:37:39Z","27f217ea2d5e4ab2745ad05b6d0aa36ee8809dc9d5c22162f722b2f003cf140bb18747f158daeca469a1083b7b054f9a6a9681d092598b3ea25cada7fe510d75"]},"Control.Category":{"../../../support/bower_components/purescript-prelude/src/Control/Category.purs":["2022-04-27T13:37:39Z","6431719d022f6d4230f338935381a7e116a18cdf80c67bdf76d87a7624518bc9fd1e4adfe45c8a59d77f07caf7c8e9faae741e99fada42455143c4fb924e7988"]},"Control.Monad":{"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs":["2022-04-27T13:37:39Z","5d13918b1f360fb201125c334399566fdef398f1b44af0754cb261b6e514481b26a0d4ad892944d4a52d513c41a20702d9973be000d9e2436c4fb48940cc07ca"]},"Control.Semigroupoid":{"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs":["2022-04-27T13:37:39Z","f5b1e9fdd81471d37f763b7fff8bd94f2111fd9ad6092bc925e409d5c69261860045230cde5c95ebbb3141acce54372bcf4d01c9b044fd59959822c9576135e8"]},"Data.Boolean":{"../../../support/bower_components/purescript-prelude/src/Data/Boolean.purs":["2022-04-27T13:37:39Z","aa81cf83948d1c45051dcfb835b0caef7a8ed8a39c58d8126f4efde1973880dbcd169d36bbe8c82a62586c386810bf0824f018674a93c606e43bc451fb6c3819"]},"Data.BooleanAlgebra":{"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs":["2022-04-27T13:37:39Z","464f2df7f5bc3fc5e64cb0462c841f93fa2a609545e10f0adce637185e345aa45eed2a7e164ba648bb947168279c999ef8cd9f5dab9fce9af3b9329a8829b971"]},"Data.Bounded":{"../../../support/bower_components/purescript-prelude/src/Data/Bounded.js":["2022-04-27T13:37:39Z","8bfa62b2e886ce6d58793d840513c68cefc1fa0c4a15a5e6a0c0ee5d607fea425f8080365c0f3f421116c4362eba447617cd65a221ee1e4cc0a75610752d3b75"],"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs":["2022-04-27T13:37:39Z","36762aa05b71843e1d2f23cc64b1a17ea3acf91745de39e8723a04f3cc12f50c83e6a9b8a58c0463eaed0e93dfe3112e1f896130bab0660a5a009391f00ed468"]},"Data.Bounded.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs":["2022-04-27T13:37:39Z","15f4f3499dd9c2a1f37345357db2f131cc57e37a4ddfaa8497dabd3d123abd8b9670bdd3910b84b6c44c8b63bf1873af783adb1edc8455985f244b6ecbef733b"]},"Data.CommutativeRing":{"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs":["2022-04-27T13:37:39Z","c8bf53bf06454a74ba3a605d100b59bb5ba9111dd20e073713422c080075555b653bcaddde078d55130e737de30ba336920a099a6016fd4158af88b1f430b631"]},"Data.DivisionRing":{"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs":["2022-04-27T13:37:39Z","1f3c74ecd87798ace30371f036ef1590f7e4dbc5be05f51162f9b3700d61c0befd6a5b53ace34626103e500043de3b67225de2c442841106f6d8960658355aae"]},"Data.Eq":{"../../../support/bower_components/purescript-prelude/src/Data/Eq.js":["2022-04-27T13:37:39Z","6718a356e77f3fe29c3f353f02fd94583b4edf5a0a0d7bdfdbcb046e7ef3440781aaa466ee88f12be6a72f274eb9c51d4d051673f4893fc408e9053bb8d84368"],"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs":["2022-04-27T13:37:39Z","65598d7093548c9848e1c661bb778ebd402f09b4584570c09082d765997056b335bf0f05397cd788c44bb2f00b3bd2115cba2ed45033ade9ac40d91efd64301d"]},"Data.Eq.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Eq/Generic.purs":["2022-04-27T13:37:39Z","88d9841c3e55b1063721bc8ff168aa8b53cd3581a8c3ffee6ed71a96ba4d2d20b7b454cb0e7f13b2fa7a6bcaf4ca0dfc609ce624f5ad74eece1e13a93b0a121d"]},"Data.EuclideanRing":{"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.js":["2022-04-27T13:37:39Z","9bf37abbb8d5c826e2152f62c99251e9cfeac8226ead81262527a2c544765336b6a0a8df731664d1b7d7804ad821ddfb0bd2c58d91d61fea6232d6adaeb6fc69"],"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs":["2022-04-27T13:37:39Z","252c8162d273ea69e96619d760b48f7302ad048ed2bdd542695fbf0489948d24369b2bd40addd7fa505e810cf411727fe9fd57546a3011ebe1fa3c534beac414"]},"Data.Field":{"../../../support/bower_components/purescript-prelude/src/Data/Field.purs":["2022-04-27T13:37:39Z","21c8a682ad74b9389e1c538ca1dbc5cc4da34b13945a1bd11812631f8f56e723e65f9452eba5b43ea8209f88c57e8566529667673b6b78ade1a08350a28b04cc"]},"Data.Function":{"../../../support/bower_components/purescript-prelude/src/Data/Function.purs":["2022-04-27T13:37:39Z","42320940aa4cdbab54308acc9ad8eac48cb3facf1f695eeb32c8473bdf31e6d51e9d689bd256c833cedd3cf40882c484153f56e8582bfc1353cc0f3b7867aa0f"]},"Data.Functor":{"../../../support/bower_components/purescript-prelude/src/Data/Functor.js":["2022-04-27T13:37:39Z","889e7781cb01bcb3007c8400d844b250905a7cc893d0391a09c2f907c8993271b0daf081548206d4c5a3948fdc7a51df5a99c6fe38c61a90ccdcb38f22886ae7"],"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs":["2022-04-27T13:37:39Z","077d9d6d3e754807e5200b970988daf12894942995bb7f8698c0e0a2d08b64842dc5257efe088c045d7d0a6de2a10cb6c58b976b26243f66f69d0fa9791f60e7"]},"Data.Generic.Rep":{"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs":["2022-04-27T13:37:39Z","69c6cac0ae8035b7a0bad28c1fb8c0c0d99bc93087392f5dbebac6a30bca3b5fa352741f93f432b7aa4c617e1f23d59939a69c716775e84375e112b4bb9175d1"]},"Data.HeytingAlgebra":{"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.js":["2022-04-27T13:37:39Z","3603479b96cd22a9b312ef922b95d5b342ecd8d4b1b8984a15fcfa64b92ec66128f14fdc795c2c525c9b6e6912934f2ea542df9f30b3caac3bbb085ba3326265"],"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs":["2022-04-27T13:37:39Z","d8942636d4f1804c94eb7527b48f48f500843d34e2ec0b45515f4d5c836ce4437806feb4a603735f1a799243f244a72c6fda218ffe5d58f7f0cbbcbfadb01bbd"]},"Data.HeytingAlgebra.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs":["2022-04-27T13:37:39Z","ea49a37bf16af73cb930d0eb573bca8cc8e63de0a796c504f531f05d503976a59f464fa5a039a2ae9b486c9ba70857008bfb06acaaeaad6ee0f9f429355043e2"]},"Data.Monoid":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs":["2022-04-27T13:37:39Z","172ecdf1da579ac35b44cb9d87424b7bb45f27b2f49a0e51be34cc1d2863a15929436321b8ed46059601b3ba171053b4129067066be0596da42607d697d8d484"]},"Data.Monoid.Additive":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs":["2022-04-27T13:37:39Z","514e26851127fb9b52c618a36f17758513d9a7ea6724866b208e2c2447c3c3b3a9a18218b715b765e5e1e00908e2ebc0d9f2e67171ab3e46543a01508b54de67"]},"Data.Monoid.Conj":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs":["2022-04-27T13:37:39Z","441eb08d322aa39654f68fe39676ba5fe470252adc4da087c590245ff7b0b624885c57ade6e66f24485862873767198678a219afbd7c2fc68f2ca59978d7d9c2"]},"Data.Monoid.Disj":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs":["2022-04-27T13:37:39Z","f38cea70c5a7216b6b17c796dfbc8b08d9f05bed22d81d3784322f9f06f127435b4c9009a2027c24efc998c781796b9007bc70bc3bd1eee935b1a9695077bc7a"]},"Data.Monoid.Dual":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs":["2022-04-27T13:37:39Z","54058218c4c5323d42e95d54a1c64b9e2ded8afdaeef2f846ef123bd4fd6772551e2158a6a9802ca327bbc4fb995f4fd5d416fd59c7a6efc8f8fe9bc5e7dc709"]},"Data.Monoid.Endo":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs":["2022-04-27T13:37:39Z","543f16c8df42353334deddd7e25a58340aaa3f4a902a997d6b08e3128ca0afb82b3ac720e8ca8d4475cfc063906df1439afd3f2e22f7684aeb9ee0bc2992e774"]},"Data.Monoid.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Generic.purs":["2022-04-27T13:37:39Z","9e2ef0cf0469c1e798f8767cb472ee1b0103dfd6b08ed0a777c89d5043358b70cf14c2784ea59f05795f648daf80e11b2150fa89a05bc8c0afa6dafeb2fc09ac"]},"Data.Monoid.Multiplicative":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs":["2022-04-27T13:37:39Z","f0c40f939ed3a3f00712fc7485926733668101c201e5d57e19d72ce6be84455b7b2d7360d747154a9d071df9b72e4e5ad2ac2a36db093a1b702fed4e6f4de9e3"]},"Data.NaturalTransformation":{"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs":["2022-04-27T13:37:39Z","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-04-27T13:37:39Z","d3f620d4e07a9ce41745d2df0c43701dc41726e4be601b790bb054089ca52d97380299b90fe88f166e2195d76c4cbe195d941e8619fd2d14242a6a347881b1a9"],"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs":["2022-04-27T13:37:39Z","f622298f91432fabf4a9b79f8ffc449a50a074d991ac8bafe19458bb8befc9377865359de1d612f156f3a3bc4b024f0eca3c758f6ce8dc1328e5a519de673f31"]},"Data.Ord.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Ord/Generic.purs":["2022-04-27T13:37:39Z","d566cfa79ec03e335f632d3edc3b913081583188d8496897c1b0904c1895525caeb5b0464b76d40ae5ef79e5c7b516ad061c1d98aa6e1c649f555be4c839087e"]},"Data.Ordering":{"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs":["2022-04-27T13:37:39Z","321b8de9b25c2616a3dbc6bff2e2def1cf7592ad54e575bd2b62d440d5dd88d7b5332f6c68fc010424e36ac13d61b5bcaadcf619ff940c667360b2c102f6e2af"]},"Data.Reflectable":{"../../../support/bower_components/purescript-prelude/src/Data/Reflectable.js":["2022-04-27T13:37:39Z","1bbaef3b7bb472cbc13eb30d9a75f2d580d5950fe692a3e137322558a651d0352f8a7499538028404a611afecde17f551b7cbc4030bdaf0b50e6828362cf29bd"],"../../../support/bower_components/purescript-prelude/src/Data/Reflectable.purs":["2022-04-27T13:37:39Z","02beca227031091fd31673ff64153c2f84ba22c61f362acc88411643233fe91d8cabf6206319785f7b910d8dff7c81528ca7e05048e284bfc720e71f804f7a6c"]},"Data.Ring":{"../../../support/bower_components/purescript-prelude/src/Data/Ring.js":["2022-04-27T13:37:39Z","bce8767b39bf1d9af8182f80f91e376db07ae8912b991fcea6eaf37900f91c6b6ede6fb874c40ff5b3d40fc6a893468d0f0cb31106f6188ca52514ae0a081da6"],"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs":["2022-04-27T13:37:39Z","4e727f1f786ced8ce8202805713a9a2810c6ef9522694535c219ce22f66e032ca374163c82db137dd7d2ded6ae4dc2786ee8b6efd1df810d5cbda9c7e2c0832e"]},"Data.Ring.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Ring/Generic.purs":["2022-04-27T13:37:39Z","8c94b1a5765b99950600e690e01e3da65cd7e43fe78f651f8531c45d41775572af47e62f21705857c82ae52251626c34f0f41180ee0563115f749c7bc0459324"]},"Data.Semigroup":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.js":["2022-04-27T13:37:39Z","fb416511575b93baf1081317aba42e97da52fdb724c07110a05c360e5254528f54715a47fa22ed4298bbdfb62c8641c8ea5ef92af9a259d51164cf541026fabc"],"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs":["2022-04-27T13:37:39Z","43c3fbd4ab0a7a5346bdc69ce26ad3e6143f1f0e92bf8e7601af43d2ad68cfe4080411029ba3a9f29592f75e139a8fb923e67237b8e1cee3024c54b32ccf0b5d"]},"Data.Semigroup.First":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs":["2022-04-27T13:37:39Z","8ff357056284af9050954e7695babcc76f5f632019b66f635a49502170508a37b2cb20a2e863f022bf077726480d2cc32951fb910c80559806e50830f25e884e"]},"Data.Semigroup.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Generic.purs":["2022-04-27T13:37:39Z","8c07803971e03a3c3d4a617198eae5a3e825c411fd17af68eee57571717a2301eaf5ec5bd34bfddf14da1f1c40d780ab9538d02f22d1d19117135388c848ca89"]},"Data.Semigroup.Last":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs":["2022-04-27T13:37:39Z","75b3660341f9c0570031d2304c83eb8592098e2d96577c030ae969b3b958d00b21234c2c836377e7b338e4323fa4aa0c97a4a8abb7ed49e2741907a411eb0b08"]},"Data.Semiring":{"../../../support/bower_components/purescript-prelude/src/Data/Semiring.js":["2022-04-27T13:37:39Z","71c1f69848adaf5667acc7668bb53b42a14dd64f559e72d88ae879f123aa9d5892debb1758067b8c48bfcdbbd7392e2e9ea0e5d18603ab62dbdde5032662cf33"],"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs":["2022-04-27T13:37:39Z","70fe8b0c9eb461a6058b6c89ad182fb99d4e930f158b015a386ee67ece2445b5e7aba5e539dd7377822de1b045b80d1e439f191a2274c6e95c7fb3dba535d8c0"]},"Data.Semiring.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Semiring/Generic.purs":["2022-04-27T13:37:39Z","e1aeb61208e3b96999f07cc41307d50fa8025c2f688e9dc24d7286933a11cc1ec253375e10e25fb578801bcda7b18b7342bb13275f4ca72478a2aff9ea872799"]},"Data.Show":{"../../../support/bower_components/purescript-prelude/src/Data/Show.js":["2022-04-27T13:37:39Z","2a936ee3c9835b353e0e23d37709f80dbf675fd6a3761f48a61c15db808b36f50cb4c758f7710ce7bf7e72389a9e51b1cd605ea793a30565de0f02a5866a91c4"],"../../../support/bower_components/purescript-prelude/src/Data/Show.purs":["2022-04-27T13:37:39Z","e846644987565d11a205b5f5c1ba8349a057c9710c88a461ebf2ab0bfe2f83a4f1de8c1a5653d33eca13d00fd65a086caf28ea0498c974a1fc3e7619a719a1b8"]},"Data.Show.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.js":["2022-04-27T13:37:39Z","f8b9a3c651ceb9e8f2ee15ae532ecd371794b4e9f3b14eb0508656c1ae853654d7e3d3c719a9a98f0dcbc81df3b03266c05d3bc01c9b62d6d8ce29d4794e4b1b"],"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.purs":["2022-04-27T13:37:39Z","37b5a1168cd88f5f6f2d2a584cfe2c69e326b9f3e62291ec607c6e4a12da144450088fe65e95cbd04204d9c616a04696b5b3d0d7e444e8628b4a1eb3597c534d"]},"Data.Symbol":{"../../../support/bower_components/purescript-prelude/src/Data/Symbol.js":["2022-04-27T13:37:39Z","c980adfe8e297bfe8e257903de3ac13f5675c6f52ed95e8c2786fcacc52adde10b5de56c9432859c3c7c8f51d1866f2e8d4a961d60e1bff656def39e3b3cdcf7"],"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs":["2022-04-27T13:37:39Z","579409ca0036164a1a0534b266cc1c90de7b020ecea470cdedf0a97cc34ae1f25ab441df9789798dc30f6a4c8f6c6368c79dc5523d9de336e57dcc6325127cb2"]},"Data.Unit":{"../../../support/bower_components/purescript-prelude/src/Data/Unit.js":["2022-04-27T13:37:39Z","d7185d75aa1f2fe353e4e200ab4181472e354d6295cb2e6587a56636b1bc733be77b2f5616b20275fe7be0138a6442b2979864b1b234a813f8d9237baa4cd5f3"],"../../../support/bower_components/purescript-prelude/src/Data/Unit.purs":["2022-04-27T13:37:39Z","a4bfca3ddacfc9d1e09019819fd94325c0fe756cb6d7e35c07a8bb6bb6c8bc6cca55a22b72f641b9fac6e5c09cae29cec932c847bdb34298310a161ee3fcfc92"]},"Data.Void":{"../../../support/bower_components/purescript-prelude/src/Data/Void.purs":["2022-04-27T13:37:39Z","a9d41b27b3dc34c74df497c4563d9c8fbe6b04ee1ee4cc32e18c3649972c84a5d330087cd3732b2cbbda204558fa79a8eea2bbba7e64916e45c49745af27d739"]},"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":["2022-04-27T14:11:24Z","5a3a1a7efb4ca9d61673d954d5bed9be6eec0b512fcdffdbcca411b0fe10353da1ec9ac9e32d19f6ffe3ccb358a177cc6238064ae7dee8dfce2363ec26600edc"]},"Effect.Console":{"../../../support/bower_components/purescript-console/src/Effect/Console.js":["2022-04-27T14:11:24Z","37d5914c1c03387fb61991fa0c7273560b38a9cca1ab22a5a1071f58fb5e3cc41952c87e404f22a928e674c04fce0fa18d469b2481d6078645d20650280c9a84"],"../../../support/bower_components/purescript-console/src/Effect/Console.purs":["2022-04-27T14:11:24Z","71c92750574fc7e669d3e0a7d0f40101b91836e69275074eaf3b534fe5f68a6f3b4ebc1dc1f950f89a381996f8bdca297eac522893733bc0fd5ef2ce790af8c7"]},"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:21.464382127Z","55bdd6dd11fb1679cb11793dd2996de21972f7aa53826557273bd649004f5907ff8cf6dff840718a12084c421529c9da7d70f698689d3923ab4ae3d608591c66"]},"Prelude":{"../../../support/bower_components/purescript-prelude/src/Prelude.purs":["2022-04-27T13:37:39Z","c67b6a882790c17476eb477da2cfc71dc4c26f297e7b4581b5ae9b0d08040ea7c7b55ed3afb3e824806e573ea4dd307eaa7cb49cfb2a756973b226ee1023e6fc"]},"Record.Unsafe":{"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.js":["2022-04-27T13:37:39Z","667d613a0e1265a710e98c9f6e64ff791b9e9b7227cdf699c3a25724077c02e42726c807c0387ca4484454fd853d5b41522bf2e048887f22a894413ef80cbb92"],"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs":["2022-04-27T13:37:39Z","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-04-27T13:37:39Z","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"]}}+{"Control.Applicative":{"../../../support/bower_components/purescript-prelude/src/Control/Applicative.purs":["2022-04-27T13:37:39Z","5889c8a23c34d2d9c7d1fe41df1512314055fafda79900099b37a76451fb6394dac06633caf5c206c432817a9c07b892b18c3b99d1013a298acc85a579aee2f1"]},"Control.Apply":{"../../../support/bower_components/purescript-prelude/src/Control/Apply.js":["2022-04-27T13:37:39Z","73ee829e5dfad80f1d5f957d0e52b1d069ea798919d608b4733cedda4736681ec26d7e33501428966bf213b8a344c1272f7658867780c7237baf90da4c9d5ad3"],"../../../support/bower_components/purescript-prelude/src/Control/Apply.purs":["2022-04-27T13:37:39Z","524e797c42f16dbc375aa2403a4867a5744116d9302bda790333251ccf88d773e079fb8c3af1f87eccdc0c0bbf682b932a48506ca5f51ef441832177fafd4eb0"]},"Control.Bind":{"../../../support/bower_components/purescript-prelude/src/Control/Bind.js":["2022-04-27T13:37:39Z","abbbecd9697ae2109a9b74f70bfce37c0589e0d99b10e090660e1c76a491744c84fd459c53172256c70cdaffde3f0dc1abe0464fa32b977cf71e789425ca8bfe"],"../../../support/bower_components/purescript-prelude/src/Control/Bind.purs":["2022-04-27T13:37:39Z","27f217ea2d5e4ab2745ad05b6d0aa36ee8809dc9d5c22162f722b2f003cf140bb18747f158daeca469a1083b7b054f9a6a9681d092598b3ea25cada7fe510d75"]},"Control.Category":{"../../../support/bower_components/purescript-prelude/src/Control/Category.purs":["2022-04-27T13:37:39Z","6431719d022f6d4230f338935381a7e116a18cdf80c67bdf76d87a7624518bc9fd1e4adfe45c8a59d77f07caf7c8e9faae741e99fada42455143c4fb924e7988"]},"Control.Monad":{"../../../support/bower_components/purescript-prelude/src/Control/Monad.purs":["2022-04-27T13:37:39Z","5d13918b1f360fb201125c334399566fdef398f1b44af0754cb261b6e514481b26a0d4ad892944d4a52d513c41a20702d9973be000d9e2436c4fb48940cc07ca"]},"Control.Semigroupoid":{"../../../support/bower_components/purescript-prelude/src/Control/Semigroupoid.purs":["2022-04-27T13:37:39Z","f5b1e9fdd81471d37f763b7fff8bd94f2111fd9ad6092bc925e409d5c69261860045230cde5c95ebbb3141acce54372bcf4d01c9b044fd59959822c9576135e8"]},"Data.Boolean":{"../../../support/bower_components/purescript-prelude/src/Data/Boolean.purs":["2022-04-27T13:37:39Z","aa81cf83948d1c45051dcfb835b0caef7a8ed8a39c58d8126f4efde1973880dbcd169d36bbe8c82a62586c386810bf0824f018674a93c606e43bc451fb6c3819"]},"Data.BooleanAlgebra":{"../../../support/bower_components/purescript-prelude/src/Data/BooleanAlgebra.purs":["2022-04-27T13:37:39Z","464f2df7f5bc3fc5e64cb0462c841f93fa2a609545e10f0adce637185e345aa45eed2a7e164ba648bb947168279c999ef8cd9f5dab9fce9af3b9329a8829b971"]},"Data.Bounded":{"../../../support/bower_components/purescript-prelude/src/Data/Bounded.js":["2022-04-27T13:37:39Z","8bfa62b2e886ce6d58793d840513c68cefc1fa0c4a15a5e6a0c0ee5d607fea425f8080365c0f3f421116c4362eba447617cd65a221ee1e4cc0a75610752d3b75"],"../../../support/bower_components/purescript-prelude/src/Data/Bounded.purs":["2022-04-27T13:37:39Z","36762aa05b71843e1d2f23cc64b1a17ea3acf91745de39e8723a04f3cc12f50c83e6a9b8a58c0463eaed0e93dfe3112e1f896130bab0660a5a009391f00ed468"]},"Data.Bounded.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Bounded/Generic.purs":["2022-04-27T13:37:39Z","15f4f3499dd9c2a1f37345357db2f131cc57e37a4ddfaa8497dabd3d123abd8b9670bdd3910b84b6c44c8b63bf1873af783adb1edc8455985f244b6ecbef733b"]},"Data.CommutativeRing":{"../../../support/bower_components/purescript-prelude/src/Data/CommutativeRing.purs":["2022-04-27T13:37:39Z","c8bf53bf06454a74ba3a605d100b59bb5ba9111dd20e073713422c080075555b653bcaddde078d55130e737de30ba336920a099a6016fd4158af88b1f430b631"]},"Data.DivisionRing":{"../../../support/bower_components/purescript-prelude/src/Data/DivisionRing.purs":["2022-04-27T13:37:39Z","1f3c74ecd87798ace30371f036ef1590f7e4dbc5be05f51162f9b3700d61c0befd6a5b53ace34626103e500043de3b67225de2c442841106f6d8960658355aae"]},"Data.Eq":{"../../../support/bower_components/purescript-prelude/src/Data/Eq.js":["2022-04-27T13:37:39Z","6718a356e77f3fe29c3f353f02fd94583b4edf5a0a0d7bdfdbcb046e7ef3440781aaa466ee88f12be6a72f274eb9c51d4d051673f4893fc408e9053bb8d84368"],"../../../support/bower_components/purescript-prelude/src/Data/Eq.purs":["2022-04-27T13:37:39Z","65598d7093548c9848e1c661bb778ebd402f09b4584570c09082d765997056b335bf0f05397cd788c44bb2f00b3bd2115cba2ed45033ade9ac40d91efd64301d"]},"Data.Eq.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Eq/Generic.purs":["2022-04-27T13:37:39Z","88d9841c3e55b1063721bc8ff168aa8b53cd3581a8c3ffee6ed71a96ba4d2d20b7b454cb0e7f13b2fa7a6bcaf4ca0dfc609ce624f5ad74eece1e13a93b0a121d"]},"Data.EuclideanRing":{"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.js":["2022-04-27T13:37:39Z","9bf37abbb8d5c826e2152f62c99251e9cfeac8226ead81262527a2c544765336b6a0a8df731664d1b7d7804ad821ddfb0bd2c58d91d61fea6232d6adaeb6fc69"],"../../../support/bower_components/purescript-prelude/src/Data/EuclideanRing.purs":["2022-04-27T13:37:39Z","252c8162d273ea69e96619d760b48f7302ad048ed2bdd542695fbf0489948d24369b2bd40addd7fa505e810cf411727fe9fd57546a3011ebe1fa3c534beac414"]},"Data.Field":{"../../../support/bower_components/purescript-prelude/src/Data/Field.purs":["2022-04-27T13:37:39Z","21c8a682ad74b9389e1c538ca1dbc5cc4da34b13945a1bd11812631f8f56e723e65f9452eba5b43ea8209f88c57e8566529667673b6b78ade1a08350a28b04cc"]},"Data.Function":{"../../../support/bower_components/purescript-prelude/src/Data/Function.purs":["2022-04-27T13:37:39Z","42320940aa4cdbab54308acc9ad8eac48cb3facf1f695eeb32c8473bdf31e6d51e9d689bd256c833cedd3cf40882c484153f56e8582bfc1353cc0f3b7867aa0f"]},"Data.Functor":{"../../../support/bower_components/purescript-prelude/src/Data/Functor.js":["2022-04-27T13:37:39Z","889e7781cb01bcb3007c8400d844b250905a7cc893d0391a09c2f907c8993271b0daf081548206d4c5a3948fdc7a51df5a99c6fe38c61a90ccdcb38f22886ae7"],"../../../support/bower_components/purescript-prelude/src/Data/Functor.purs":["2022-04-27T13:37:39Z","077d9d6d3e754807e5200b970988daf12894942995bb7f8698c0e0a2d08b64842dc5257efe088c045d7d0a6de2a10cb6c58b976b26243f66f69d0fa9791f60e7"]},"Data.Generic.Rep":{"../../../support/bower_components/purescript-prelude/src/Data/Generic/Rep.purs":["2022-04-27T13:37:39Z","69c6cac0ae8035b7a0bad28c1fb8c0c0d99bc93087392f5dbebac6a30bca3b5fa352741f93f432b7aa4c617e1f23d59939a69c716775e84375e112b4bb9175d1"]},"Data.HeytingAlgebra":{"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.js":["2022-04-27T13:37:39Z","3603479b96cd22a9b312ef922b95d5b342ecd8d4b1b8984a15fcfa64b92ec66128f14fdc795c2c525c9b6e6912934f2ea542df9f30b3caac3bbb085ba3326265"],"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra.purs":["2022-04-27T13:37:39Z","d8942636d4f1804c94eb7527b48f48f500843d34e2ec0b45515f4d5c836ce4437806feb4a603735f1a799243f244a72c6fda218ffe5d58f7f0cbbcbfadb01bbd"]},"Data.HeytingAlgebra.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/HeytingAlgebra/Generic.purs":["2022-04-27T13:37:39Z","ea49a37bf16af73cb930d0eb573bca8cc8e63de0a796c504f531f05d503976a59f464fa5a039a2ae9b486c9ba70857008bfb06acaaeaad6ee0f9f429355043e2"]},"Data.Monoid":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs":["2022-04-27T13:37:39Z","172ecdf1da579ac35b44cb9d87424b7bb45f27b2f49a0e51be34cc1d2863a15929436321b8ed46059601b3ba171053b4129067066be0596da42607d697d8d484"]},"Data.Monoid.Additive":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Additive.purs":["2022-04-27T13:37:39Z","514e26851127fb9b52c618a36f17758513d9a7ea6724866b208e2c2447c3c3b3a9a18218b715b765e5e1e00908e2ebc0d9f2e67171ab3e46543a01508b54de67"]},"Data.Monoid.Conj":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Conj.purs":["2022-04-27T13:37:39Z","441eb08d322aa39654f68fe39676ba5fe470252adc4da087c590245ff7b0b624885c57ade6e66f24485862873767198678a219afbd7c2fc68f2ca59978d7d9c2"]},"Data.Monoid.Disj":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Disj.purs":["2022-04-27T13:37:39Z","f38cea70c5a7216b6b17c796dfbc8b08d9f05bed22d81d3784322f9f06f127435b4c9009a2027c24efc998c781796b9007bc70bc3bd1eee935b1a9695077bc7a"]},"Data.Monoid.Dual":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Dual.purs":["2022-04-27T13:37:39Z","54058218c4c5323d42e95d54a1c64b9e2ded8afdaeef2f846ef123bd4fd6772551e2158a6a9802ca327bbc4fb995f4fd5d416fd59c7a6efc8f8fe9bc5e7dc709"]},"Data.Monoid.Endo":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Endo.purs":["2022-04-27T13:37:39Z","543f16c8df42353334deddd7e25a58340aaa3f4a902a997d6b08e3128ca0afb82b3ac720e8ca8d4475cfc063906df1439afd3f2e22f7684aeb9ee0bc2992e774"]},"Data.Monoid.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Generic.purs":["2022-04-27T13:37:39Z","9e2ef0cf0469c1e798f8767cb472ee1b0103dfd6b08ed0a777c89d5043358b70cf14c2784ea59f05795f648daf80e11b2150fa89a05bc8c0afa6dafeb2fc09ac"]},"Data.Monoid.Multiplicative":{"../../../support/bower_components/purescript-prelude/src/Data/Monoid/Multiplicative.purs":["2022-04-27T13:37:39Z","f0c40f939ed3a3f00712fc7485926733668101c201e5d57e19d72ce6be84455b7b2d7360d747154a9d071df9b72e4e5ad2ac2a36db093a1b702fed4e6f4de9e3"]},"Data.NaturalTransformation":{"../../../support/bower_components/purescript-prelude/src/Data/NaturalTransformation.purs":["2022-04-27T13:37:39Z","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-04-27T13:37:39Z","d3f620d4e07a9ce41745d2df0c43701dc41726e4be601b790bb054089ca52d97380299b90fe88f166e2195d76c4cbe195d941e8619fd2d14242a6a347881b1a9"],"../../../support/bower_components/purescript-prelude/src/Data/Ord.purs":["2022-04-27T13:37:39Z","f622298f91432fabf4a9b79f8ffc449a50a074d991ac8bafe19458bb8befc9377865359de1d612f156f3a3bc4b024f0eca3c758f6ce8dc1328e5a519de673f31"]},"Data.Ord.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Ord/Generic.purs":["2022-04-27T13:37:39Z","d566cfa79ec03e335f632d3edc3b913081583188d8496897c1b0904c1895525caeb5b0464b76d40ae5ef79e5c7b516ad061c1d98aa6e1c649f555be4c839087e"]},"Data.Ordering":{"../../../support/bower_components/purescript-prelude/src/Data/Ordering.purs":["2022-04-27T13:37:39Z","321b8de9b25c2616a3dbc6bff2e2def1cf7592ad54e575bd2b62d440d5dd88d7b5332f6c68fc010424e36ac13d61b5bcaadcf619ff940c667360b2c102f6e2af"]},"Data.Reflectable":{"../../../support/bower_components/purescript-prelude/src/Data/Reflectable.js":["2022-04-27T13:37:39Z","1bbaef3b7bb472cbc13eb30d9a75f2d580d5950fe692a3e137322558a651d0352f8a7499538028404a611afecde17f551b7cbc4030bdaf0b50e6828362cf29bd"],"../../../support/bower_components/purescript-prelude/src/Data/Reflectable.purs":["2022-04-27T13:37:39Z","02beca227031091fd31673ff64153c2f84ba22c61f362acc88411643233fe91d8cabf6206319785f7b910d8dff7c81528ca7e05048e284bfc720e71f804f7a6c"]},"Data.Ring":{"../../../support/bower_components/purescript-prelude/src/Data/Ring.js":["2022-04-27T13:37:39Z","bce8767b39bf1d9af8182f80f91e376db07ae8912b991fcea6eaf37900f91c6b6ede6fb874c40ff5b3d40fc6a893468d0f0cb31106f6188ca52514ae0a081da6"],"../../../support/bower_components/purescript-prelude/src/Data/Ring.purs":["2022-04-27T13:37:39Z","4e727f1f786ced8ce8202805713a9a2810c6ef9522694535c219ce22f66e032ca374163c82db137dd7d2ded6ae4dc2786ee8b6efd1df810d5cbda9c7e2c0832e"]},"Data.Ring.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Ring/Generic.purs":["2022-04-27T13:37:39Z","8c94b1a5765b99950600e690e01e3da65cd7e43fe78f651f8531c45d41775572af47e62f21705857c82ae52251626c34f0f41180ee0563115f749c7bc0459324"]},"Data.Semigroup":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.js":["2022-04-27T13:37:39Z","fb416511575b93baf1081317aba42e97da52fdb724c07110a05c360e5254528f54715a47fa22ed4298bbdfb62c8641c8ea5ef92af9a259d51164cf541026fabc"],"../../../support/bower_components/purescript-prelude/src/Data/Semigroup.purs":["2022-04-27T13:37:39Z","43c3fbd4ab0a7a5346bdc69ce26ad3e6143f1f0e92bf8e7601af43d2ad68cfe4080411029ba3a9f29592f75e139a8fb923e67237b8e1cee3024c54b32ccf0b5d"]},"Data.Semigroup.First":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/First.purs":["2022-04-27T13:37:39Z","8ff357056284af9050954e7695babcc76f5f632019b66f635a49502170508a37b2cb20a2e863f022bf077726480d2cc32951fb910c80559806e50830f25e884e"]},"Data.Semigroup.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Generic.purs":["2022-04-27T13:37:39Z","8c07803971e03a3c3d4a617198eae5a3e825c411fd17af68eee57571717a2301eaf5ec5bd34bfddf14da1f1c40d780ab9538d02f22d1d19117135388c848ca89"]},"Data.Semigroup.Last":{"../../../support/bower_components/purescript-prelude/src/Data/Semigroup/Last.purs":["2022-04-27T13:37:39Z","75b3660341f9c0570031d2304c83eb8592098e2d96577c030ae969b3b958d00b21234c2c836377e7b338e4323fa4aa0c97a4a8abb7ed49e2741907a411eb0b08"]},"Data.Semiring":{"../../../support/bower_components/purescript-prelude/src/Data/Semiring.js":["2022-04-27T13:37:39Z","71c1f69848adaf5667acc7668bb53b42a14dd64f559e72d88ae879f123aa9d5892debb1758067b8c48bfcdbbd7392e2e9ea0e5d18603ab62dbdde5032662cf33"],"../../../support/bower_components/purescript-prelude/src/Data/Semiring.purs":["2022-04-27T13:37:39Z","70fe8b0c9eb461a6058b6c89ad182fb99d4e930f158b015a386ee67ece2445b5e7aba5e539dd7377822de1b045b80d1e439f191a2274c6e95c7fb3dba535d8c0"]},"Data.Semiring.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Semiring/Generic.purs":["2022-04-27T13:37:39Z","e1aeb61208e3b96999f07cc41307d50fa8025c2f688e9dc24d7286933a11cc1ec253375e10e25fb578801bcda7b18b7342bb13275f4ca72478a2aff9ea872799"]},"Data.Show":{"../../../support/bower_components/purescript-prelude/src/Data/Show.js":["2022-04-27T13:37:39Z","2a936ee3c9835b353e0e23d37709f80dbf675fd6a3761f48a61c15db808b36f50cb4c758f7710ce7bf7e72389a9e51b1cd605ea793a30565de0f02a5866a91c4"],"../../../support/bower_components/purescript-prelude/src/Data/Show.purs":["2022-04-27T13:37:39Z","e846644987565d11a205b5f5c1ba8349a057c9710c88a461ebf2ab0bfe2f83a4f1de8c1a5653d33eca13d00fd65a086caf28ea0498c974a1fc3e7619a719a1b8"]},"Data.Show.Generic":{"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.js":["2022-04-27T13:37:39Z","f8b9a3c651ceb9e8f2ee15ae532ecd371794b4e9f3b14eb0508656c1ae853654d7e3d3c719a9a98f0dcbc81df3b03266c05d3bc01c9b62d6d8ce29d4794e4b1b"],"../../../support/bower_components/purescript-prelude/src/Data/Show/Generic.purs":["2022-04-27T13:37:39Z","37b5a1168cd88f5f6f2d2a584cfe2c69e326b9f3e62291ec607c6e4a12da144450088fe65e95cbd04204d9c616a04696b5b3d0d7e444e8628b4a1eb3597c534d"]},"Data.Symbol":{"../../../support/bower_components/purescript-prelude/src/Data/Symbol.js":["2022-04-27T13:37:39Z","c980adfe8e297bfe8e257903de3ac13f5675c6f52ed95e8c2786fcacc52adde10b5de56c9432859c3c7c8f51d1866f2e8d4a961d60e1bff656def39e3b3cdcf7"],"../../../support/bower_components/purescript-prelude/src/Data/Symbol.purs":["2022-04-27T13:37:39Z","579409ca0036164a1a0534b266cc1c90de7b020ecea470cdedf0a97cc34ae1f25ab441df9789798dc30f6a4c8f6c6368c79dc5523d9de336e57dcc6325127cb2"]},"Data.Unit":{"../../../support/bower_components/purescript-prelude/src/Data/Unit.js":["2022-04-27T13:37:39Z","d7185d75aa1f2fe353e4e200ab4181472e354d6295cb2e6587a56636b1bc733be77b2f5616b20275fe7be0138a6442b2979864b1b234a813f8d9237baa4cd5f3"],"../../../support/bower_components/purescript-prelude/src/Data/Unit.purs":["2022-04-27T13:37:39Z","a4bfca3ddacfc9d1e09019819fd94325c0fe756cb6d7e35c07a8bb6bb6c8bc6cca55a22b72f641b9fac6e5c09cae29cec932c847bdb34298310a161ee3fcfc92"]},"Data.Void":{"../../../support/bower_components/purescript-prelude/src/Data/Void.purs":["2022-04-27T13:37:39Z","a9d41b27b3dc34c74df497c4563d9c8fbe6b04ee1ee4cc32e18c3649972c84a5d330087cd3732b2cbbda204558fa79a8eea2bbba7e64916e45c49745af27d739"]},"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":["2022-04-27T14:11:24Z","5a3a1a7efb4ca9d61673d954d5bed9be6eec0b512fcdffdbcca411b0fe10353da1ec9ac9e32d19f6ffe3ccb358a177cc6238064ae7dee8dfce2363ec26600edc"]},"Effect.Console":{"../../../support/bower_components/purescript-console/src/Effect/Console.js":["2022-04-27T14:11:24Z","37d5914c1c03387fb61991fa0c7273560b38a9cca1ab22a5a1071f58fb5e3cc41952c87e404f22a928e674c04fce0fa18d469b2481d6078645d20650280c9a84"],"../../../support/bower_components/purescript-console/src/Effect/Console.purs":["2022-04-27T14:11:24Z","71c92750574fc7e669d3e0a7d0f40101b91836e69275074eaf3b534fe5f68a6f3b4ebc1dc1f950f89a381996f8bdca297eac522893733bc0fd5ef2ce790af8c7"]},"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-11-28T09:05:27.556402135Z","55bdd6dd11fb1679cb11793dd2996de21972f7aa53826557273bd649004f5907ff8cf6dff840718a12084c421529c9da7d70f698689d3923ab4ae3d608591c66"]},"Prelude":{"../../../support/bower_components/purescript-prelude/src/Prelude.purs":["2022-04-27T13:37:39Z","c67b6a882790c17476eb477da2cfc71dc4c26f297e7b4581b5ae9b0d08040ea7c7b55ed3afb3e824806e573ea4dd307eaa7cb49cfb2a756973b226ee1023e6fc"]},"Record.Unsafe":{"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.js":["2022-04-27T13:37:39Z","667d613a0e1265a710e98c9f6e64ff791b9e9b7227cdf699c3a25724077c02e42726c807c0387ca4484454fd853d5b41522bf2e048887f22a894413ef80cbb92"],"../../../support/bower_components/purescript-prelude/src/Record/Unsafe.purs":["2022-04-27T13:37:39Z","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-04-27T13:37:39Z","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"]}}
tests/support/bower.json view
@@ -27,7 +27,7 @@ "purescript-psci-support": "^6.0.0", "purescript-refs": "^6.0.0", "purescript-safe-coerce": "^2.0.0",- "purescript-st": "^6.0.0",+ "purescript-st": "^6.1.0", "purescript-strings": "^6.0.0", "purescript-tailrec": "^6.1.0", "purescript-tuples": "^7.0.0",
tests/support/package-lock.json view
@@ -17,9 +17,9 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/bower": {- "version": "1.8.13",- "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.13.tgz",- "integrity": "sha512-8eWko16JlCTdaZZG70kddHPed17pHEbH8/IjfP4IFkQsfEqRsyNM09Dc8cDBFkSvtQ/2lTea7A+bMhRggG2a+Q==",+ "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" },@@ -39,17 +39,17 @@ "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="+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/glob": { "version": "5.0.15", "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",- "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",+ "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", "dependencies": { "inflight": "^1.0.4", "inherits": "2",@@ -64,7 +64,7 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dependencies": { "once": "^1.3.0", "wrappy": "1"@@ -89,7 +89,7 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dependencies": { "wrappy": "1" }@@ -97,7 +97,7 @@ "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=",+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "engines": { "node": ">=0.10.0" }@@ -114,14 +114,14 @@ } }, "node_modules/rimraf/node_modules/glob": {- "version": "7.2.0",- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",- "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",+ "version": "7.2.3",+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2",- "minimatch": "^3.0.4",+ "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" },@@ -133,9 +133,9 @@ } }, "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==",+ "version": "0.7.4",+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "engines": { "node": ">= 8" }@@ -153,9 +153,9 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "bower": {- "version": "1.8.13",- "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.13.tgz",- "integrity": "sha512-8eWko16JlCTdaZZG70kddHPed17pHEbH8/IjfP4IFkQsfEqRsyNM09Dc8cDBFkSvtQ/2lTea7A+bMhRggG2a+Q=="+ "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",@@ -169,17 +169,17 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "glob": { "version": "5.0.15", "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",- "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",+ "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", "requires": { "inflight": "^1.0.4", "inherits": "2",@@ -191,7 +191,7 @@ "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "requires": { "once": "^1.3.0", "wrappy": "1"@@ -213,7 +213,7 @@ "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "requires": { "wrappy": "1" }@@ -221,7 +221,7 @@ "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="+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" }, "rimraf": { "version": "2.7.1",@@ -232,14 +232,14 @@ }, "dependencies": { "glob": {- "version": "7.2.0",- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",- "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",+ "version": "7.2.3",+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2",- "minimatch": "^3.0.4",+ "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }@@ -247,9 +247,9 @@ } }, "source-map": {- "version": "0.7.3",- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",- "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="+ "version": "0.7.4",+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" }, "wrappy": { "version": "1.0.2",