packages feed

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 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",