[
  {
    "path": ".bazelignore",
    "content": "semantic/dist-newstyle\nsemantic-analysis/dist-newstyle\nsemantic-ast/dist-newstyle\nsemantic-codeql/dist-newstyle\nsemantic-go/dist-newstyle\nsemantic-java/dist-newstyle\nsemantic-json/dist-newstyle\nsemantic-parse/dist-newstyle\nsemantic-proto/dist-newstyle\nsemantic-python/dist-newstyle\nsemantic-ruby/dist-newstyle\nsemantic-scope-graph/dist-newstyle\nsemantic-source/dist-newstyle\nsemantic-tags/dist-newstyle\nsemantic-tsx/dist-newstyle\nsemantic-typescript/dist-newstyle\ndist-newstyle\ntmp\n"
  },
  {
    "path": ".bazelrc",
    "content": "build:ci --loading_phase_threads=1\nbuild:ci --jobs=2\nbuild:ci --verbose_failures\ncommon:ci --color=no\ntest:ci --test_output=errors\n\nbuild --disk_cache=.bazel-cache/bazel-disk\nbuild --repository_cache=.bazel-cache/bazel-repo\nbuild --color=yes\nbuild --jobs=8\nbuild --compilation_mode=fastbuild\n\n# test environment does not propagate locales by default\n# some tests reads files written in UTF8, we need to propagate the correct\n# environment variables, such as LOCALE_ARCHIVE\n# We also need to setup an utf8 locale\ntest --test_env=LANG=en_US.utf8 --test_env=LOCALE_ARCHIVE\n\ntest --test_output=errors\ntest --compilation_mode=fastbuild\n\ntry-import .bazelrc.local\n"
  },
  {
    "path": ".dockerignore",
    "content": "Dockerfile\n/.licenses\n/.git\n.ghci\n.ghci_history\n.ghc.environment.x86_64-darwin-8.6.5\n*.yaml\n*.md\n\n/bin\n/dist\n/dist-newstyle\n/notices\n/docs\n/tmp\n/semantic-source\n/bench\n/script\n/test\n"
  },
  {
    "path": ".ghci.repl",
    "content": "-- GHCI settings for script/repl.\n-- These live here instead of script/repl for ease of commenting.\n-- These live here instead of .ghci so cabal repl remains unaffected.\n-- These live here instead of script/ghci-flags so ghcide remains unaffected.\n\n-- Basic verbosity\n:set -v1\n\n-- Compile to object code\n:set -fwrite-interface -fobject-code\n\n-- Bonus: silence “add these modules to your .cabal file” warnings for files we :load\n:set -Wno-missing-home-modules\n\n-- Warnings for code written in the repl\n:seti -Weverything\n:seti -Wno-all-missed-specialisations\n:seti -Wno-implicit-prelude\n:seti -Wno-missed-specialisations\n:seti -Wno-missing-import-lists\n:seti -Wno-missing-local-signatures\n:seti -Wno-monomorphism-restriction\n:seti -Wno-name-shadowing\n:seti -Wno-safe\n:seti -Wno-unsafe\n:seti -Wno-star-is-type\n-- 8.8+\n:seti -Wno-missing-deriving-strategies\n-- 8.10+\n:seti -Wno-missing-safe-haskell-mode\n:seti -Wno-prepositive-qualified-module\n\n-- Turn on some language extensions you use a lot\n:seti -XFlexibleContexts -XOverloadedStrings -XTypeApplications\n\n-- Break on errors\n:seti -fbreak-on-error\n\n-- Automatically show the code around breakpoints\n:set stop :list\n\n-- Use a cyan lambda as the prompt\n:set prompt \"\\ESC[1;36m\\STXλ \\ESC[m\\STX\"\n\n-- Better errors\n:set -ferror-spans -freverse-errors -fprint-expanded-synonyms\n\n-- Better typed holes\n:set -funclutter-valid-hole-fits -fabstract-refinement-hole-fits -frefinement-level-hole-fits=2\n\n-- We have this one on in the project but not in the REPL to reduce noise\n:seti -Wno-type-defaults\n:set -Wno-unused-packages\n"
  },
  {
    "path": ".ghci.sample",
    "content": "-- Consider copying this to your ~/.ghc/ghci.conf file:\n\n-- Pretty-printing\n:set -package-id prtty-smpl-3.1.1.0-c89f0500\n:set -interactive-print Text.Pretty.Simple.pPrint\n\n-- Turn on some language extensions you use a lot\n:seti -XFlexibleContexts -XOverloadedStrings -XTypeApplications\n\n-- Break on errors\n:seti -fbreak-on-error\n\n-- Automatically show the code around breakpoints\n:set stop :list\n\n-- Use a cyan lambda as the prompt\n:set prompt \"\\ESC[1;36m\\STXλ \\ESC[m\\STX\"\n\n-- Better errors\n:set -ferror-spans -freverse-errors -fprint-expanded-synonyms\n\n-- Path-local ghci history\n:set -flocal-ghci-history\n\n-- Better typed holes\n:set -funclutter-valid-hole-fits -fabstract-refinement-hole-fits -frefinement-level-hole-fits=2\n"
  },
  {
    "path": ".gitattributes",
    "content": ".licenses linguist-vendored\ntest/fixtures linguist-vendored\ntest/repos linguist-vendored\nvendor linguist-vendored\n*.protobuf.bin binary\n"
  },
  {
    "path": ".github/workflows/bazel.yml.disabled",
    "content": "name: Bazel CI\n\non:\n  # Trigger the workflow on push or pull request,\n  # but only for the master branch\n  push:\n    branches:\n      - master\n  pull_request: {}\n\njobs:\n  build:\n    name: Bazel\n    runs-on: ubuntu-latest\n\n    steps:\n    - uses: actions/checkout@v2\n      if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/master'\n\n    - uses: actions/cache@v2\n      id: caching-stage\n      name: Cache Bazel artifacts\n      with:\n        path: |\n          .bazel-cache\n          bin\n        key: ${{ runner.os }}-bazel-${{ github.run_id }}\n        restore-keys: |\n          ${{ runner.os }}-bazel-\n\n    - name: Download/cache bazel version\n      if: steps.caching-stage.outputs.cache-hit != 'true'\n      run: |\n        if [ ! -f bin/bazel ]; then\n          curl -LO \"https://github.com/bazelbuild/bazel/releases/download/3.1.0/bazel-3.1.0-linux-x86_64\"\n          mv bazel-3.1.0-linux-x86_64 \"bin/bazel\"\n          chmod +x \"bin/bazel\"\n        fi\n\n    - name: Build & test\n      run: |\n        bin/bazel clean\n        bin/bazel test --config=ci --test_tag_filters=language-test //...\n        bin/bazel test --config=ci //semantic-source //semantic:spec\n"
  },
  {
    "path": ".github/workflows/haskell.yml",
    "content": "name: Haskell CI\n\non:\n  # Trigger the workflow on push or pull request,\n  # but only for the master branch\n  push:\n    branches:\n      - master\n  pull_request:\n\njobs:\n  build:\n    name: ghc ${{ matrix.ghc }}\n    runs-on: ubuntu-latest\n    strategy:\n      matrix:\n        ghc: [\"8.10\", \"9.2\"]\n\n    steps:\n    - uses: actions/checkout@v2\n      if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/master'\n\n    - uses: haskell/actions/setup@v1\n      name: Setup Haskell\n      with:\n        ghc-version: ${{ matrix.ghc }}\n\n    - uses: actions/cache@v1\n      id: cache-cabal\n      name: Cache Cabal artifacts\n      with:\n        path: dist-cache\n        key: ${{ runner.os }}-${{ matrix.ghc }}-${{ matrix.cabal }}-cabal-cache-${{ hashFiles('**/*.cabal') }}\n        restore-keys: |\n          ${{ runner.os }}-${{ matrix.ghc }}-${{ matrix.cabal }}-cabal-cache-\n          ${{ runner.os }}-${{ matrix.ghc }}-${{ matrix.cabal }}-\n          ${{ runner.os }}-${{ matrix.ghc }}-\n          ${{ runner.os }}-\n\n    - name: Get cabal-cache\n      run: |\n        curl -L https://github.com/haskell-works/cabal-cache/releases/download/v1.0.1.8/cabal-cache_x86_64_linux.tar.gz > ./cc.tar.gz\n        tar -xvf ./cc.tar.gz\n\n    - name: Configure project\n      run: |\n        cabal v2-update\n        cabal v2-configure --project-file=cabal.project.ci --disable-optimization --enable-tests --write-ghc-environment-files=always -j2\n        cd semantic-source && cabal v2-configure --project-file=cabal.project.ci --disable-optimization --enable-tests --write-ghc-environment-files=always -j2\n\n    - name: Restore from cache\n      run: ./cabal-cache sync-from-archive --threads=2 --archive-uri=dist-cache || true\n\n    - name: Build & test\n      run: |\n        cabal v2-build --project-file=cabal.project.ci semantic:exe:semantic\n        cabal v2-run   --project-file=cabal.project.ci semantic:test\n        cabal v2-build --project-file=cabal.project.ci semantic-analysis\n        cabal v2-run   --project-file=cabal.project.ci semantic-codeql:test\n        cabal v2-run   --project-file=cabal.project.ci semantic-go:test\n        cabal v2-run   --project-file=cabal.project.ci semantic-java:test\n        cabal v2-run   --project-file=cabal.project.ci semantic-json:test\n        cabal v2-run   --project-file=cabal.project.ci semantic-python:test\n        # cabal v2-run   --project-file=cabal.project.ci semantic-python:test:compiling\n        # cabal v2-run   --project-file=cabal.project.ci semantic-python:test:graphing\n        cabal v2-run   --project-file=cabal.project.ci semantic-ruby:test\n        cabal v2-run   --project-file=cabal.project.ci semantic-tags:test\n        cabal v2-run   --project-file=cabal.project.ci semantic-tsx:test\n        cabal v2-run   --project-file=cabal.project.ci semantic-typescript:test\n        cd semantic-source && cabal v2-run   --project-file=cabal.project.ci semantic-source:test\n\n    - name: Write out cache\n      run: ./cabal-cache sync-to-archive --threads=2 --archive-uri=dist-cache\n"
  },
  {
    "path": ".gitignore",
    "content": ".DS_Store\n\n.docsets\n.stack-work\n.stack-work-profiling\nstack.yaml\nstack.yaml.lock\nprofiles\n/tags\n\ncabal.project.local*\ndist\ndist-newstyle\ndist-repl\n.ghci\n.ghc.environment.*\n.ghci_history\n\ntmp/\n/bin/\n/bazel-*\n/.bazel-cache\n\n/src/Semantic/Version.hs.bak\n/semanticd/test/current\n/semanticd/test/rover-example-config/semantic.log\n/test/fixtures/*/examples\n\n*.hp\n*.prof\n*.pyc\n\n/test.*\n/*.html\n\n.bundle/\n.licenses/bin\n.licenses/vendor/gems\n.licenses/log/\n\ncodex.tags\n"
  },
  {
    "path": ".gitmodules",
    "content": ""
  },
  {
    "path": ".hlint.yaml",
    "content": "# HLint configuration file\n# https://github.com/ndmitchell/hlint\n\n- arguments: [--color=auto, -XStrictData]\n\n# Blacklist some functions by default.\n- functions:\n  - {name: unsafePerformIO, within: [Data.Scientific.Exts.attemptUnsafeArithmetic]}\n  - {name: unsafeCoerce, within: []}\n  - {name: head, within: []}\n  - {name: tail, within: []}\n  - {name: init, within: []}\n  - {name: last, within: []}\n  - {name: fromJust, within: []}\n  - {name: decodeUtf8, within: [], message: \"Use decodeUtf8' or decodeUtf8With lenientDecode\"}\n\n# Replace a $ b $ c with a . b $ c\n- group: {name: dollar, enabled: true}\n\n# Generalise map to fmap, ++ to <>\n- group: {name: generalise, enabled: true}\n\n# Change the severity of the default group to warning\n- warn: {group: {name: default}}\n\n# Ignore the highly noisy module export list hint\n- ignore: {name: Use explicit module export list}\n\n# Ignore some builtin hints\n- ignore: {name: Use mappend}\n- ignore: {name: Redundant do}\n- ignore: {name: Use lambda-case} # TODO: investigate whether cost-center analysis is better with lambda-case than it was\n- ignore: {name: Use fmap} # Ignored because map has better type inference.\n\n# Change the severity of hints we don’t want to fail CI for\n- suggest: {name: Eta reduce}\n\n# While I think DerivingStrategies is good, it's too noisy to suggest by default\n- ignore:\n    name: Use DerivingStrategies\n\n# Ignore eta reduce in the assignment modules\n- ignore:\n    name: Eta reduce\n    within:\n    - Language.Go.Assignment\n    - Language.Python.Assignment\n    - Language.Ruby.Assignment\n\n- ignore: {name: Use ., within: [Analysis.Abstract.Graph.graphingModules, Semantic.Distribute]}\n\n- ignore:\n    within:\n      - Proto.Semantic\n      - Proto.Semantic_Fields\n      - Proto.Semantic_JSON\n\n- ignore:\n    name: Reduce duplication\n    within:\n      - Semantic.Util\n      - Language.Ruby.Tags\n\n# hlint has issues with QuantifiedConstraints (see https://github.com/ndmitchell/hlint/issues/759)\n# Once the above is fixed, we can drop this error.\n\n- ignore: { name: Parse error }\n\n# hlint is too paranoid about NonEmpty functions (https://github.com/ndmitchell/hlint/issues/787)\n\n- ignore:\n    name: Avoid restricted function\n    within:\n      - Language.Python.Syntax\n      - Data.Syntax.Expression\n\n# Our customized warnings\n\n# AMP fallout\n- warning: {lhs: mapM, rhs: traverse, name: Generalize mapM}\n- warning: {lhs: mapM_, rhs: traverse_, name: Generalize mapM_}\n- warning: {lhs: forM, rhs: for, name: Generalize forM}\n- warning: {lhs: forM_, rhs: for_, name: Generalize forM_}\n- warning: {lhs: sequence, rhs: sequenceA, name: Generalize sequence}\n- warning: {lhs: sequence_, rhs: sequenceA_, name: Generalize sequence_}\n- warning: {lhs: return, rhs: pure, name: Avoid return}\n\n# Terms\n- warning: {lhs: termFAnnotation . unTerm, rhs: termAnnotation, name: Use termAnnotation}\n- warning: {lhs: termFOut . unTerm, rhs: termOut, name: Use termOut}\n- warning: {lhs: project . termOut, rhs: projectTerm, name: Use projectTerm}\n\n# Conveniences\n- warning: {lhs: maybe a pure, rhs: maybeM a, name: Use maybeM}\n- warning: {lhs: either (const a) id, rhs: fromRight a, name: use fromRight}\n- warning: {lhs: either id (const a), rhs: fromLeft a, name: use fromLeft}\n\n# Applicative style\n- warning: {lhs: f <$> pure a <*> b, rhs: f a <$> b, name: Avoid redundant pure}\n- warning: {lhs: f <$> pure a <* b, rhs: f a <$ b, name: Avoid redundant pure}\n"
  },
  {
    "path": ".hspec",
    "content": "--depth=1000\n"
  },
  {
    "path": ".licenses/semantic/cabal/MonadRandom.txt",
    "content": "---\ntype: cabal\nname: MonadRandom\nversion: 0.5.1.1\nsummary: Random-number generation monad.\nhomepage: \nlicense: bsd-3-clause\n---\nCopyright (c) 2016, Brent Yorgey\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Brent Yorgey nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nPrevious versions of this package were distributed under the simple\npermissive license used on the Haskell Wiki; see OLD-LICENSE for\ndetails.\n"
  },
  {
    "path": ".licenses/semantic/cabal/QuickCheck.txt",
    "content": "---\ntype: cabal\nname: QuickCheck\nversion: 2.12.6.1\nsummary: Automatic testing of Haskell programs\nhomepage: https://github.com/nick8325/quickcheck\nlicense: bsd-3-clause\n---\n(The following is the 3-clause BSD license.)\n\nCopyright (c) 2000-2018, Koen Claessen\nCopyright (c) 2006-2008, Björn Bringert\nCopyright (c) 2009-2018, Nick Smallbone\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\n  this list of conditions and the following disclaimer.\n- Redistributions in binary form must reproduce the above copyright\n  notice, this list of conditions and the following disclaimer in the\n  documentation and/or other materials provided with the distribution.\n- Neither the names of the copyright owners nor the names of the\n  contributors may be used to endorse or promote products derived\n  from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/StateVar.txt",
    "content": "---\ntype: cabal\nname: StateVar\nversion: 1.1.1.1\nsummary: State variables\nhomepage: https://github.com/haskell-opengl/StateVar\nlicense: bsd-3-clause\n---\nCopyright (c) 2014-2015, Edward Kmett\nCopyright (c) 2009-2018, Sven Panne\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice,\n   this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the author nor the names of its contributors may be\n   used to endorse or promote products derived from this software without\n   specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\nLIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\nCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\nSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\nINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\nARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/adjunctions.txt",
    "content": "---\ntype: cabal\nname: adjunctions\nversion: '4.4'\nsummary: Adjunctions and representable functors\nhomepage: https://github.com/ekmett/adjunctions/\nlicense: bsd-2-clause\n---\nCopyright 2011-2014 Edward Kmett\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/aeson-pretty.txt",
    "content": "---\ntype: cabal\nname: aeson-pretty\nversion: 0.8.7\nsummary: JSON pretty-printing library and command-line tool.\nhomepage: https://github.com/informatikr/aeson-pretty\nlicense: bsd-3-clause\n---\nCopyright (c)2011, Falko Peters\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Falko Peters nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/aeson.txt",
    "content": "---\ntype: cabal\nname: aeson\nversion: 1.4.2.0\nsummary: Fast JSON parsing and encoding\nhomepage: https://github.com/bos/aeson\nlicense: bsd-3-clause\n---\nCopyright (c) 2011, MailRank, Inc.\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS\nOR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/algebraic-graphs.txt",
    "content": "---\ntype: cabal\nname: algebraic-graphs\nversion: '0.3'\nsummary: A library for algebraic graph construction and transformation\nhomepage: https://github.com/snowleopard/alga\nlicense: mit\n---\nMIT License\n\nCopyright (c) 2016-2018 Andrey Mokhov\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
  },
  {
    "path": ".licenses/semantic/cabal/ansi-terminal.txt",
    "content": "---\ntype: cabal\nname: ansi-terminal\nversion: 0.8.2\nsummary: Simple ANSI terminal support, with Windows compatibility\nhomepage: https://github.com/feuerbach/ansi-terminal\nlicense: bsd-3-clause\n---\nCopyright (c) 2008, Maximilian Bolingbroke\r\nAll rights reserved.\r\n\r\nRedistribution and use in source and binary forms, with or without modification, are permitted\r\nprovided that the following conditions are met:\r\n\r\n    * Redistributions of source code must retain the above copyright notice, this list of\r\n      conditions and the following disclaimer.\r\n    * Redistributions in binary form must reproduce the above copyright notice, this list of\r\n      conditions and the following disclaimer in the documentation and/or other materials\r\n      provided with the distribution.\r\n    * Neither the name of Maximilian Bolingbroke nor the names of other contributors may be used to\r\n      endorse or promote products derived from this software without specific prior written permission.\r\n\r\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR\r\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\r\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\r\nCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER\r\nIN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT\r\nOF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/ansi-wl-pprint.txt",
    "content": "---\ntype: cabal\nname: ansi-wl-pprint\nversion: 0.6.8.2\nsummary: The Wadler/Leijen Pretty Printer for colored ANSI terminal output\nhomepage: https://github.com/ekmett/ansi-wl-pprint\nlicense: bsd-2-clause\n---\nCopyright 2008, Daan Leijen and Max Bolingbroke. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n  * Redistributions of source code must retain the above copyright\n    notice, this list of conditions and the following disclaimer.\n\n  * Redistributions in binary form must reproduce the above copyright\n    notice, this list of conditions and the following disclaimer in\n    the documentation and/or other materials provided with the\n    distribution.\n\nThis software is provided by the copyright holders \"as is\" and any\nexpress or implied warranties, including, but not limited to, the\nimplied warranties of merchantability and fitness for a particular\npurpose are disclaimed. In no event shall the copyright holders be\nliable for any direct, indirect, incidental, special, exemplary, or\nconsequential damages (including, but not limited to, procurement of\nsubstitute goods or services; loss of use, data, or profits; or\nbusiness interruption) however caused and on any theory of liability,\nwhether in contract, strict liability, or tort (including negligence\nor otherwise) arising in any way out of the use of this software, even\nif advised of the possibility of such damage.\n"
  },
  {
    "path": ".licenses/semantic/cabal/array.txt",
    "content": "---\ntype: cabal\nname: array\nversion: 0.5.3.0\nsummary: Mutable and immutable arrays\nhomepage: \nlicense: bsd-3-clause\n---\nThis library (libraries/base) is derived from code from several\nsources: \n\n  * Code from the GHC project which is largely (c) The University of\n    Glasgow, and distributable under a BSD-style license (see below),\n\n  * Code from the Haskell 98 Report which is (c) Simon Peyton Jones\n    and freely redistributable (but see the full license for\n    restrictions).\n\n  * Code from the Haskell Foreign Function Interface specification,\n    which is (c) Manuel M. T. Chakravarty and freely redistributable\n    (but see the full license for restrictions).\n\nThe full text of these licenses is reproduced below.  All of the\nlicenses are BSD-style or compatible.\n\n-----------------------------------------------------------------------------\n\nThe Glasgow Haskell Compiler License\n\nCopyright 2004, The University Court of the University of Glasgow. \nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n\n-----------------------------------------------------------------------------\n\nCode derived from the document \"Report on the Programming Language\nHaskell 98\", is distributed under the following license:\n\n  Copyright (c) 2002 Simon Peyton Jones\n\n  The authors intend this Report to belong to the entire Haskell\n  community, and so we grant permission to copy and distribute it for\n  any purpose, provided that it is reproduced in its entirety,\n  including this Notice.  Modified versions of this Report may also be\n  copied and distributed for any purpose, provided that the modified\n  version is clearly presented as such, and that it does not claim to\n  be a definition of the Haskell 98 Language.\n\n-----------------------------------------------------------------------------\n\nCode derived from the document \"The Haskell 98 Foreign Function\nInterface, An Addendum to the Haskell 98 Report\" is distributed under\nthe following license:\n\n  Copyright (c) 2002 Manuel M. T. Chakravarty\n\n  The authors intend this Report to belong to the entire Haskell\n  community, and so we grant permission to copy and distribute it for\n  any purpose, provided that it is reproduced in its entirety,\n  including this Notice.  Modified versions of this Report may also be\n  copied and distributed for any purpose, provided that the modified\n  version is clearly presented as such, and that it does not claim to\n  be a definition of the Haskell 98 Foreign Function Interface.\n\n-----------------------------------------------------------------------------\n"
  },
  {
    "path": ".licenses/semantic/cabal/asn1-encoding.txt",
    "content": "---\ntype: cabal\nname: asn1-encoding\nversion: 0.9.5\nsummary: ASN1 data reader and writer in RAW, BER and DER forms\nhomepage: https://github.com/vincenthz/hs-asn1\nlicense: bsd-3-clause\n---\nCopyright (c) 2010-2013 Vincent Hanquez <vincent@snarc.org>\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/asn1-parse.txt",
    "content": "---\ntype: cabal\nname: asn1-parse\nversion: 0.9.4\nsummary: Simple monadic parser for ASN1 stream types.\nhomepage: https://github.com/vincenthz/hs-asn1\nlicense: bsd-3-clause\n---\nCopyright (c) 2010-2013 Vincent Hanquez <vincent@snarc.org>\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/asn1-types.txt",
    "content": "---\ntype: cabal\nname: asn1-types\nversion: 0.3.2\nsummary: ASN.1 types\nhomepage: https://github.com/vincenthz/hs-asn1-types\nlicense: bsd-3-clause\n---\nCopyright (c) 2010-2013 Vincent Hanquez <vincent@snarc.org>\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/async.txt",
    "content": "---\ntype: cabal\nname: async\nversion: 2.2.1\nsummary: Run IO operations asynchronously and wait for their results\nhomepage: https://github.com/simonmar/async\nlicense: bsd-3-clause\n---\nCopyright (c) 2012, Simon Marlow\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Simon Marlow nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/attoparsec-iso8601.txt",
    "content": "---\ntype: cabal\nname: attoparsec-iso8601\nversion: 1.0.1.0\nsummary: Parsing of ISO 8601 dates, originally from aeson.\nhomepage: https://github.com/bos/aeson\nlicense: bsd-3-clause\n---\nCopyright (c) 2011, MailRank, Inc.\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS\nOR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/attoparsec.txt",
    "content": "---\ntype: cabal\nname: attoparsec\nversion: 0.13.2.2\nsummary: Fast combinator parsing for bytestrings and text\nhomepage: https://github.com/bos/attoparsec\nlicense: bsd-3-clause\n---\nCopyright (c) Lennart Kolmodin\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS\nOR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/base-compat-batteries.txt",
    "content": "---\ntype: cabal\nname: base-compat-batteries\nversion: 0.10.5\nsummary: base-compat with extra batteries\nhomepage: \nlicense: mit\n---\nCopyright (c) 2012-2018 Simon Hengel <sol@typeful.net> and Ryan Scott <ryan.gl.scott@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE."
  },
  {
    "path": ".licenses/semantic/cabal/base-compat.txt",
    "content": "---\ntype: cabal\nname: base-compat\nversion: 0.10.5\nsummary: A compatibility layer for base\nhomepage: \nlicense: mit\n---\nCopyright (c) 2012-2018 Simon Hengel <sol@typeful.net> and Ryan Scott <ryan.gl.scott@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE."
  },
  {
    "path": ".licenses/semantic/cabal/base-orphans.txt",
    "content": "---\ntype: cabal\nname: base-orphans\nversion: '0.8'\nsummary: Backwards-compatible orphan instances for base\nhomepage: https://github.com/haskell-compat/base-orphans\nlicense: mit\n---\nCopyright (c) 2015-2017 Simon Hengel <sol@typeful.net>, João Cristóvão <jmacristovao@gmail.com>, Ryan Scott <ryan.gl.scott@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be included\nin all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
  },
  {
    "path": ".licenses/semantic/cabal/base-prelude.txt",
    "content": "---\ntype: cabal\nname: base-prelude\nversion: '1.3'\nsummary: The most complete prelude formed solely from the \"base\" package\nhomepage: https://github.com/nikita-volkov/base-prelude\nlicense: mit\n---\nCopyright (c) 2014, Nikita Volkov\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE."
  },
  {
    "path": ".licenses/semantic/cabal/base.txt",
    "content": "---\ntype: cabal\nname: base\nversion: 4.12.0.0\nsummary: Basic libraries\nhomepage: \nlicense: bsd-3-clause\n---\nThis library (libraries/base) is derived from code from several\nsources: \n\n  * Code from the GHC project which is largely (c) The University of\n    Glasgow, and distributable under a BSD-style license (see below),\n\n  * Code from the Haskell 98 Report which is (c) Simon Peyton Jones\n    and freely redistributable (but see the full license for\n    restrictions).\n\n  * Code from the Haskell Foreign Function Interface specification,\n    which is (c) Manuel M. T. Chakravarty and freely redistributable\n    (but see the full license for restrictions).\n\nThe full text of these licenses is reproduced below.  All of the\nlicenses are BSD-style or compatible.\n\n-----------------------------------------------------------------------------\n\nThe Glasgow Haskell Compiler License\n\nCopyright 2004, The University Court of the University of Glasgow. \nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n\n-----------------------------------------------------------------------------\n\nCode derived from the document \"Report on the Programming Language\nHaskell 98\", is distributed under the following license:\n\n  Copyright (c) 2002 Simon Peyton Jones\n\n  The authors intend this Report to belong to the entire Haskell\n  community, and so we grant permission to copy and distribute it for\n  any purpose, provided that it is reproduced in its entirety,\n  including this Notice.  Modified versions of this Report may also be\n  copied and distributed for any purpose, provided that the modified\n  version is clearly presented as such, and that it does not claim to\n  be a definition of the Haskell 98 Language.\n\n-----------------------------------------------------------------------------\n\nCode derived from the document \"The Haskell 98 Foreign Function\nInterface, An Addendum to the Haskell 98 Report\" is distributed under\nthe following license:\n\n  Copyright (c) 2002 Manuel M. T. Chakravarty\n\n  The authors intend this Report to belong to the entire Haskell\n  community, and so we grant permission to copy and distribute it for\n  any purpose, provided that it is reproduced in its entirety,\n  including this Notice.  Modified versions of this Report may also be\n  copied and distributed for any purpose, provided that the modified\n  version is clearly presented as such, and that it does not claim to\n  be a definition of the Haskell 98 Foreign Function Interface.\n\n-----------------------------------------------------------------------------"
  },
  {
    "path": ".licenses/semantic/cabal/base64-bytestring.txt",
    "content": "---\ntype: cabal\nname: base64-bytestring\nversion: 1.0.0.2\nsummary: Fast base64 encoding and decoding for ByteStrings\nhomepage: https://github.com/haskell/base64-bytestring\nlicense: bsd-3-clause\n---\nCopyright (c) 2010 Bryan O'Sullivan <bos@serpentine.com>\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS\nOR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/basement.txt",
    "content": "---\ntype: cabal\nname: basement\nversion: 0.0.10\nsummary: Foundation scrap box of array & string\nhomepage: https://github.com/haskell-foundation/foundation\nlicense: bsd-3-clause\n---\nCopyright (c) 2015-2017 Vincent Hanquez <vincent@snarc.org>\nCopyright (c) 2017      Foundation Maintainers\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/bifunctors.txt",
    "content": "---\ntype: cabal\nname: bifunctors\nversion: 5.5.3\nsummary: Bifunctors\nhomepage: https://github.com/ekmett/bifunctors/\nlicense: bsd-2-clause\n---\nCopyright 2008-2016 Edward Kmett\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/binary.txt",
    "content": "---\ntype: cabal\nname: binary\nversion: 0.8.6.0\nsummary: Binary serialisation for Haskell values using lazy ByteStrings\nhomepage: https://github.com/kolmodin/binary\nlicense: bsd-3-clause\n---\nCopyright (c) Lennart Kolmodin\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS\nOR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE."
  },
  {
    "path": ".licenses/semantic/cabal/blaze-builder.txt",
    "content": "---\ntype: cabal\nname: blaze-builder\nversion: 0.4.1.0\nsummary: Efficient buffered output.\nhomepage: https://github.com/lpsmith/blaze-builder\nlicense: bsd-3-clause\n---\nCopyright Jasper Van der Jeugt 2010, Simon Meier 2010 & 2011\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Jasper Van der Jeugt nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/byteable.txt",
    "content": "---\ntype: cabal\nname: byteable\nversion: 0.1.1\nsummary: Type class for sequence of bytes\nhomepage: https://github.com/vincenthz/hs-byteable\nlicense: bsd-3-clause\n---\nCopyright (c) 2013 Vincent Hanquez <vincent@snarc.org>\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/bytestring.txt",
    "content": "---\ntype: cabal\nname: bytestring\nversion: 0.10.8.2\nsummary: Fast, compact, strict and lazy byte strings with a list interface\nhomepage: https://github.com/haskell/bytestring\nlicense: bsd-3-clause\n---\nCopyright (c) Don Stewart 2005-2009\n          (c) Duncan Coutts 2006-2015\n          (c) David Roundy 2003-2005\n          (c) Simon Meier 2010-2011\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/call-stack.txt",
    "content": "---\ntype: cabal\nname: call-stack\nversion: 0.1.0\nsummary: Use GHC call-stacks in a backward compatible way\nhomepage: https://github.com/sol/call-stack\nlicense: mit\n---\nCopyright (c) 2016 Simon Hengel <sol@typeful.net>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE."
  },
  {
    "path": ".licenses/semantic/cabal/case-insensitive.txt",
    "content": "---\ntype: cabal\nname: case-insensitive\nversion: 1.2.0.11\nsummary: Case insensitive string comparison\nhomepage: https://github.com/basvandijk/case-insensitive\nlicense: bsd-3-clause\n---\nCopyright (c) 2011-2013 Bas van Dijk\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * The name of Bas van Dijk and the names of contributors may NOT\n      be used to endorse or promote products derived from this\n      software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/cereal.txt",
    "content": "---\ntype: cabal\nname: cereal\nversion: 0.5.8.0\nsummary: A binary serialization library\nhomepage: https://github.com/GaloisInc/cereal\nlicense: bsd-3-clause\n---\nCopyright (c) Lennart Kolmodin, Galois, Inc.\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS\nOR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/charset.txt",
    "content": "---\ntype: cabal\nname: charset\nversion: 0.3.7.1\nsummary: Fast unicode character sets based on complemented PATRICIA tries\nhomepage: https://github.com/ekmett/charset\nlicense: bsd-3-clause\n---\nCopyright (c) 2010, Edward Kmett\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Edward Kmett nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/clock.txt",
    "content": "---\ntype: cabal\nname: clock\nversion: 0.7.2\nsummary: 'High-resolution clock functions: monotonic, realtime, cputime.'\nhomepage: https://github.com/corsis/clock\nlicense: bsd-3-clause\n---\nCopyright (c) 2009-2012, Cetin Sert\nCopyright (c) 2010, Eugene Kirpichov\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * The names of contributors may not be used to endorse or promote\n      products derived from this software without specific prior\n      written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/cmark-gfm.txt",
    "content": "---\ntype: cabal\nname: cmark-gfm\nversion: 0.1.8\nsummary: Fast, accurate GitHub Flavored Markdown parser and renderer\nhomepage: https://github.com/kivikakk/cmark-gfm-hs\nlicense: bsd-3-clause\n---\nCopyright (c) 2014, John MacFarlane\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of John MacFarlane nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n----\nlibcmark\nCopyright (c) 2014, John MacFarlane\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n----\n\nhoudini.h, houdini_href_e.c, houdini_html_e.c, houdini_html_u.c,\nhtml_unescape.gperf, html_unescape.h\n\nderive from https://github.com/vmg/houdini (with some modifications)\n\nCopyright (C) 2012 Vicent Martí\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n-----\n\nbuffer.h, buffer.c, chunk.h\n\nare derived from code (C) 2012 Github, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n-----\n\nutf8.c and utf8.c\n\nare derived from utf8proc\n(<http://www.public-software-group.org/utf8proc>),\n(C) 2009 Public Software Group e. V., Berlin, Germany.\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the \"Software\"),\nto deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense,\nand/or sell copies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/colour.txt",
    "content": "---\ntype: cabal\nname: colour\nversion: 2.3.4\nsummary: A model for human colour/color perception\nhomepage: https://www.haskell.org/haskellwiki/Colour\nlicense: mit\n---\nCopyright (c) 2008, 2009\nRussell O'Connor\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE."
  },
  {
    "path": ".licenses/semantic/cabal/comonad.txt",
    "content": "---\ntype: cabal\nname: comonad\nversion: 5.0.4\nsummary: Comonads\nhomepage: https://github.com/ekmett/comonad/\nlicense: bsd-2-clause\n---\nCopyright 2008-2014 Edward Kmett\nCopyright 2004-2008 Dave Menendez\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/connection.txt",
    "content": "---\ntype: cabal\nname: connection\nversion: 0.2.8\nsummary: Simple and easy network connections API\nhomepage: https://github.com/vincenthz/hs-connection\nlicense: bsd-3-clause\n---\nCopyright (c) 2012 Vincent Hanquez <vincent@snarc.org>\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/constraints.txt",
    "content": "---\nhomepage: http://github.com/ekmett/constraints/\nsummary: Constraint manipulation\nname: constraints\nversion: 0.10.1\nlicense: bsd-2-clause\n\n---\nCopyright 2011-2015 Edward Kmett\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/containers.txt",
    "content": "---\ntype: cabal\nname: containers\nversion: 0.6.0.1\nsummary: Assorted concrete container types\nhomepage: \nlicense: bsd-3-clause\n---\nThe Glasgow Haskell Compiler License\n\nCopyright 2004, The University Court of the University of Glasgow.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n\n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n\n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE."
  },
  {
    "path": ".licenses/semantic/cabal/contravariant.txt",
    "content": "---\ntype: cabal\nname: contravariant\nversion: '1.5'\nsummary: Contravariant functors\nhomepage: https://github.com/ekmett/contravariant/\nlicense: bsd-3-clause\n---\nCopyright 2007-2015 Edward Kmett\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/cookie.txt",
    "content": "---\ntype: cabal\nname: cookie\nversion: 0.4.4\nsummary: HTTP cookie parsing and rendering\nhomepage: https://github.com/snoyberg/cookie\nlicense: mit\n---\nCopyright (c) 2010 Michael Snoyman, http://www.yesodweb.com/\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
  },
  {
    "path": ".licenses/semantic/cabal/cryptonite.txt",
    "content": "---\ntype: cabal\nname: cryptonite\nversion: '0.25'\nsummary: Cryptography Primitives sink\nhomepage: https://github.com/haskell-crypto/cryptonite\nlicense: bsd-3-clause\n---\nCopyright (c) 2006-2015 Vincent Hanquez <vincent@snarc.org>\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/data-default-class.txt",
    "content": "---\ntype: cabal\nname: data-default-class\nversion: 0.1.2.0\nsummary: A class for types with a default value\nhomepage: https://github.com/mauke/data-default\nlicense: bsd-3-clause\n---\nCopyright (c) 2013 Lukas Mai\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n* Neither the name of the author nor the names of his contributors\n  may be used to endorse or promote products derived from this software\n  without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/deepseq-generics.txt",
    "content": "---\ntype: cabal\nname: deepseq-generics\nversion: 0.2.0.0\nsummary: GHC.Generics-based Control.DeepSeq.rnf implementation\nhomepage: https://github.com/hvr/deepseq-generics\nlicense: bsd-3-clause\n---\nCopyright (c) 2012, Herbert Valerio Riedel\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Herbert Valerio Riedel nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/deepseq.txt",
    "content": "---\ntype: cabal\nname: deepseq\nversion: 1.4.4.0\nsummary: Deep evaluation of data structures\nhomepage: https://github.com/haskell/deepseq\nlicense: bsd-3-clause\n---\nThis library (deepseq) is derived from code from the GHC project which\nis largely (c) The University of Glasgow, and distributable under a\nBSD-style license (see below).\n\n-----------------------------------------------------------------------------\n\nThe Glasgow Haskell Compiler License\n\nCopyright 2001-2009, The University Court of the University of Glasgow. \nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n\n-----------------------------------------------------------------------------\n"
  },
  {
    "path": ".licenses/semantic/cabal/directory-tree.txt",
    "content": "---\ntype: cabal\nname: directory-tree\nversion: 0.12.1\nsummary: A simple directory-like tree datatype, with useful IO functions\nhomepage: https://brandon.si/code/directory-tree-module-released/\nlicense: bsd-2-clause\n---\nCopyright (c) 2009 Brandon Simmons\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/directory.txt",
    "content": "---\ntype: cabal\nname: directory\nversion: 1.3.3.0\nsummary: Platform-agnostic library for filesystem operations\nhomepage: \nlicense: bsd-3-clause\n---\nThis library (libraries/base) is derived from code from two\nsources: \n\n  * Code from the GHC project which is largely (c) The University of\n    Glasgow, and distributable under a BSD-style license (see below),\n\n  * Code from the Haskell 98 Report which is (c) Simon Peyton Jones\n    and freely redistributable (but see the full license for\n    restrictions).\n\nThe full text of these licenses is reproduced below.  Both of the\nlicenses are BSD-style or compatible.\n\n-----------------------------------------------------------------------------\n\nThe Glasgow Haskell Compiler License\n\nCopyright 2004, The University Court of the University of Glasgow. \nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n\n-----------------------------------------------------------------------------\n\nCode derived from the document \"Report on the Programming Language\nHaskell 98\", is distributed under the following license:\n\n  Copyright (c) 2002 Simon Peyton Jones\n\n  The authors intend this Report to belong to the entire Haskell\n  community, and so we grant permission to copy and distribute it for\n  any purpose, provided that it is reproduced in its entirety,\n  including this Notice.  Modified versions of this Report may also be\n  copied and distributed for any purpose, provided that the modified\n  version is clearly presented as such, and that it does not claim to\n  be a definition of the Haskell 98 Language.\n\n-----------------------------------------------------------------------------"
  },
  {
    "path": ".licenses/semantic/cabal/distributive.txt",
    "content": "---\ntype: cabal\nname: distributive\nversion: '0.6'\nsummary: Distributive functors -- Dual to Traversable\nhomepage: https://github.com/ekmett/distributive/\nlicense: bsd-2-clause\n---\nCopyright 2011-2016 Edward Kmett\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/dlist.txt",
    "content": "---\ntype: cabal\nname: dlist\nversion: 0.8.0.5\nsummary: Difference lists\nhomepage: https://github.com/spl/dlist\nlicense: bsd-3-clause\n---\nCopyright (c) 2006-2009 Don Stewart, 2013-2016 Sean Leather\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Don Stewart nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/enclosed-exceptions.txt",
    "content": "---\nhomepage: https://github.com/jcristovao/enclosed-exceptions\nsummary: Catching all exceptions from within an enclosed computation\nname: enclosed-exceptions\nversion: 1.0.3\nlicense: mit\n\n---\nCopyright (c) 2012 Michael Snoyman, http://www.yesodweb.com/\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/erf.txt",
    "content": "---\ntype: cabal\nname: erf\nversion: 2.0.0.0\nsummary: The error function, erf, and related functions.\nhomepage: \nlicense: bsd-3-clause\n---\nCopyright (c) Lennart Augustsson\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS\nOR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/exceptions.txt",
    "content": "---\ntype: cabal\nname: exceptions\nversion: 0.10.0\nsummary: Extensible optionally-pure exceptions\nhomepage: https://github.com/ekmett/exceptions/\nlicense: bsd-3-clause\n---\nCopyright 2013-2015 Edward Kmett\nCopyright 2012 Google Inc.\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/fastsum.txt",
    "content": "---\ntype: cabal\nname: fastsum\nversion: 0.1.1.0\nsummary: A fast open-union type suitable for 100+ contained alternatives\nhomepage: https://github.com/patrickt/fastsum\nlicense: bsd-3-clause\n---\nOriginal work Copyright (c) 2016, Allele Dev\nModified work Copyright (c) 2016, Patrick Thomson and Josh Vera\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Allele Dev nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/filepath.txt",
    "content": "---\ntype: cabal\nname: filepath\nversion: 1.4.2.1\nsummary: Library for manipulating FilePaths in a cross platform way.\nhomepage: https://github.com/haskell/filepath\nlicense: bsd-3-clause\n---\nCopyright Neil Mitchell 2005-2018.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Neil Mitchell nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
  },
  {
    "path": ".licenses/semantic/cabal/fingertree.txt",
    "content": "---\ntype: cabal\nname: fingertree\nversion: 0.1.4.2\nsummary: Generic finger-tree structure, with example instances\nhomepage:\nlicense: bsd-3-clause\n---\nThe Glasgow Haskell Compiler License\n\nCopyright 2006, The University Court of the University of Glasgow. \nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/foldl.txt",
    "content": "---\ntype: cabal\nname: foldl\nversion: 1.4.5\nsummary: Composable, streaming, and efficient left folds\nhomepage: \nlicense: bsd-3-clause\n---\nCopyright (c) 2013 Gabriel Gonzalez\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n    * Redistributions of source code must retain the above copyright notice,\n      this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above copyright notice,\n      this list of conditions and the following disclaimer in the documentation\n      and/or other materials provided with the distribution.\n    * Neither the name of Gabriel Gonzalez nor the names of other contributors\n      may be used to endorse or promote products derived from this software\n      without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\nANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/freer-cofreer.txt",
    "content": "---\ntype: cabal\nname: freer-cofreer\nversion: 0.0.0.1\nsummary: Freer monads and Cofreer comonads.\nhomepage: https://github.com/robrix/freer-cofreer\nlicense: bsd-3-clause\n---\nCopyright Rob Rix (c) 2017\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Rob Rix nor the names of other contributors\n      may be used to endorse or promote products derived from this\n      software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/fused-effects.txt",
    "content": "---\ntype: cabal\nname: fused-effects\nversion: 0.4.0.0\nsummary: A fast, flexible, fused effect system.\nhomepage: https://github.com/robrix/fused-effects\nlicense: bsd-3-clause\n---\nBSD 3-Clause License\n\nCopyright (c) 2018, Nicolas Wu, Tom Schrijvers, Rob Rix, and Patrick Thomson\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/generic-monoid.txt",
    "content": "---\ntype: cabal\nname: generic-monoid\nversion: '0.1.0.0'\nsummary: Derive monoid instances for product types.\nhomepage: https://github.com/luke-clifton/generic-monoid\nlicense: bsd-3-clause\n---\nCopyright (c) 2018, Luke Clifton\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Luke Clifton nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/generics-sop.txt",
    "content": "---\ntype: cabal\nname: generics-sop\nversion: 0.4.0.1\nsummary: Generic Programming using True Sums of Products\nhomepage: \nlicense: bsd-3-clause\n---\nCopyright (c) 2014-2015, Well-Typed LLP, Edsko de Vries, Andres Löh\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice,\n   this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n   this list of conditions and the following disclaimer in the documentation\n   and/or other materials provided with the distribution.\n\n3. Neither the name of the copyright holder nor the names of its contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
  },
  {
    "path": ".licenses/semantic/cabal/ghc-boot-th.txt",
    "content": "---\ntype: cabal\nname: ghc-boot-th\nversion: 8.6.4\nsummary: Shared functionality between GHC and the @template-haskell@\n\nlicense: bsd-3-clause\n---\nThe Glasgow Haskell Compiler License\n\nCopyright 2002, The University Court of the University of Glasgow. \nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE."
  },
  {
    "path": ".licenses/semantic/cabal/ghc-boot.txt",
    "content": "---\ntype: cabal\nname: ghc-boot\nversion: 8.6.4\nsummary: Shared functionality between GHC and its boot libraries\n\nlicense: bsd-3-clause\n---\nThe Glasgow Haskell Compiler License\n\nCopyright 2002, The University Court of the University of Glasgow. \nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/ghc-heap.txt",
    "content": "---\ntype: cabal\nname: ghc-heap\nversion: 8.6.4\nsummary: Functions for walking GHC's heap\n\nlicense: bsd-3-clause\n---\nCopyright (c) 2012-2013, Joachim Breitner\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Joachim Breitner nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/ghc-prim.txt",
    "content": "---\ntype: cabal\nname: ghc-prim\nversion: 0.5.3\nsummary: GHC primitives\nhomepage: \nlicense: bsd-3-clause\n---\nThis library (libraries/ghc-prim) is derived from code from several\nsources: \n\n  * Code from the GHC project which is largely (c) The University of\n    Glasgow, and distributable under a BSD-style license (see below),\n\n  * Code from the Haskell 98 Report which is (c) Simon Peyton Jones\n    and freely redistributable (but see the full license for\n    restrictions).\n\nThe full text of these licenses is reproduced below.  All of the\nlicenses are BSD-style or compatible.\n\n-----------------------------------------------------------------------------\n\nThe Glasgow Haskell Compiler License\n\nCopyright 2004, The University Court of the University of Glasgow. \nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n\n-----------------------------------------------------------------------------\n\nCode derived from the document \"Report on the Programming Language\nHaskell 98\", is distributed under the following license:\n\n  Copyright (c) 2002 Simon Peyton Jones\n\n  The authors intend this Report to belong to the entire Haskell\n  community, and so we grant permission to copy and distribute it for\n  any purpose, provided that it is reproduced in its entirety,\n  including this Notice.  Modified versions of this Report may also be\n  copied and distributed for any purpose, provided that the modified\n  version is clearly presented as such, and that it does not claim to\n  be a definition of the Haskell 98 Language."
  },
  {
    "path": ".licenses/semantic/cabal/ghc-tcplugins-extra.txt",
    "content": "---\ntype: cabal\nname: ghc-tcplugins-extra\nversion: '0.3'\nsummary: Utilities for writing GHC type-checker plugins\nhomepage: https://github.com/clash-lang/ghc-tcplugins-extra\nlicense: bsd-2-clause\n---\nCopyright (c) 2015-2016, University of Twente,\n              2017-2018, QBayLogic\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the\n   distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/ghc-typelits-extra.txt",
    "content": "---\ntype: cabal\nname: ghc-typelits-extra\nversion: '0.3'\nsummary: Additional type-level operations on GHC.TypeLits.Nat\nhomepage: https://www.clash-lang.org/\nlicense: bsd-2-clause\n---\nCopyright (c) 2015-2016, University of Twente,\n              2017-2018, QBayLogic B.V.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the\n   distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/ghc-typelits-knownnat.txt",
    "content": "---\ntype: cabal\nname: ghc-typelits-knownnat\nversion: '0.6'\nsummary: Derive KnownNat constraints from other KnownNat constraints\nhomepage: https://clash-lang.org/\nlicense: bsd-2-clause\n---\nCopyright (c) 2016     , University of Twente,\n              2017-2018, QBayLogic B.V.,\n              2017     , Google Inc.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the\n   distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/ghc-typelits-natnormalise.txt",
    "content": "---\ntype: cabal\nname: ghc-typelits-natnormalise\nversion: 0.6.2\nsummary: GHC typechecker plugin for types of kind GHC.TypeLits.Nat\nhomepage: https://www.clash-lang.org/\nlicense: bsd-2-clause\n---\nCopyright (c) 2015-2016, University of Twente,\n              2017-2018, QBayLogic B.V.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the\n   distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/ghc.txt",
    "content": "---\ntype: cabal\nname: ghc\nversion: 8.6.4\nsummary: The GHC API\nhomepage: https://www.haskell.org/ghc/\nlicense: bsd-3-clause\n---\nThe Glasgow Haskell Compiler License\n\nCopyright 2002, The University Court of the University of Glasgow. \nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/ghci.txt",
    "content": "---\ntype: cabal\nname: ghci\nversion: 8.6.4\nsummary: The library supporting GHC's interactive interpreter\n\nlicense: bsd-3-clause\n---\nThe Glasgow Haskell Compiler License\n\nCopyright 2002, The University Court of the University of Glasgow.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n\n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n\n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/gitrev.txt",
    "content": "---\ntype: cabal\nname: gitrev\nversion: 1.3.1\nsummary: Compile git revision info into Haskell projects\nhomepage: https://github.com/acfoltzer/gitrev\nlicense: bsd-3-clause\n---\nCopyright (c) 2015, Adam C. Foltzer\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of gitrev nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
  },
  {
    "path": ".licenses/semantic/cabal/hashable.txt",
    "content": "---\ntype: cabal\nname: hashable\nversion: 1.2.7.0\nsummary: A class for types that can be converted to a hash value\nhomepage: https://github.com/tibbe/hashable\nlicense: bsd-3-clause\n---\nCopyright Milan Straka 2010\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Milan Straka nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/haskeline.txt",
    "content": "---\ntype: cabal\nname: haskeline\nversion: 0.7.5.0\nsummary: A command-line interface for user input, written in Haskell.\nhomepage: https://github.com/judah/haskeline\nlicense: bsd-2-clause\n---\nCopyright 2007-2009, Judah Jacobson.\nAll Rights Reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistribution of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n\n- Redistribution in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS \"AS IS\" AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE\nUSE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
  },
  {
    "path": ".licenses/semantic/cabal/haskell-lexer.txt",
    "content": "---\ntype: cabal\nname: haskell-lexer\nversion: 1.0.2\nsummary: A fully compliant Haskell 98 lexer.\nhomepage: https://github.com/yav/haskell-lexer\nlicense: mit\n---\nCopyright (c) 2008 Thomas Hallgren\nCopyright (c) 2008 Iavor S. Diatchki\n\nPermission 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:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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."
  },
  {
    "path": ".licenses/semantic/cabal/haskell-src.txt",
    "content": "---\ntype: cabal\nname: haskell-src\nversion: 1.0.3.0\nsummary: Support for manipulating Haskell source code\nhomepage: \nlicense: bsd-3-clause\n---\nThe Glasgow Haskell Compiler License\n\nCopyright 2004, The University Court of the University of Glasgow. \nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/haskell-tree-sitter.txt",
    "content": "---\ntype: cabal\nname: haskell-tree-sitter\nversion: 0.1.0\nsummary: haskell tree-sitter bindings\nhomepage: https://github.com/tree-sitter/haskell-tree-sitter\nlicense: bsd-3-clause\n---\nCopyright GitHub (c) 2015\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Author name here nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/heap.txt",
    "content": "---\ntype: cabal\nname: heap\nversion: 1.0.4\nsummary: Heaps in Haskell\nhomepage: \nlicense: bsd-2-clause\n---\nCopyright (c) 2008-2009, Stephan Friedrichs\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above copyright\n      notice, this list of conditions and the following disclaimer in the\n      documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\nCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\nEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\nPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
  },
  {
    "path": ".licenses/semantic/cabal/hostname.txt",
    "content": "---\ntype: cabal\nname: hostname\nversion: '1.0'\nsummary: A very simple package providing a cross-platform means of determining the\n  hostname\nhomepage: \nlicense: bsd-3-clause\n---\nCopyright (c) 2008, Maximilian Bolingbroke\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification, are permitted\nprovided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright notice, this list of\n      conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above copyright notice, this list of\n      conditions and the following disclaimer in the documentation and/or other materials\n      provided with the distribution.\n    * Neither the name of Maximilian Bolingbroke nor the names of other contributors may be used to\n      endorse or promote products derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\nCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER\nIN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT\nOF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/hourglass.txt",
    "content": "---\ntype: cabal\nname: hourglass\nversion: 0.2.12\nsummary: simple performant time related library\nhomepage: https://github.com/vincenthz/hs-hourglass\nlicense: bsd-3-clause\n---\nCopyright (c) 2014 Vincent Hanquez <vincent@snarc.org>\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/hpc.txt",
    "content": "---\ntype: cabal\nname: hpc\nversion: 0.6.0.3\nsummary: Code Coverage Library for Haskell\nhomepage: \nlicense: bsd-3-clause\n---\nCopyright (c) 2006 Andy Gill, Colin Runciman\nCopyright (c) 2007 Andy Gill\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The names of the authors may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\nIN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,\nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\nNOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\nTHIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/http-api-data.txt",
    "content": "---\ntype: cabal\nname: http-api-data\nversion: '0.4'\nsummary: Converting to/from HTTP API data like URL pieces, headers and query parameters.\nhomepage: https://github.com/fizruk/http-api-data\nlicense: bsd-2-clause\n---\nThe following license covers this documentation, and the source code, except\nwhere otherwise indicated.\n\nCopyright 2015, Nickolay Kudasov. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS \"AS IS\" AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\nEVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,\nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\nNOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\nOR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\nOR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\nADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/insert-ordered-containers.txt",
    "content": "---\ntype: cabal\nname: insert-ordered-containers\nversion: 0.2.1.0\nsummary: Associative containers retaining insertion order for traversals.\nhomepage: https://github.com/phadej/insert-ordered-containers\nlicense: bsd-3-clause\n---\nCopyright (c) 2015, Oleg Grenrus\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Oleg Grenrus nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/integer-gmp.txt",
    "content": "---\ntype: cabal\nname: integer-gmp\nversion: 1.0.2.0\nsummary: Integer library based on GMP\nhomepage: \nlicense: bsd-3-clause\n---\nCopyright (c) 2014, Herbert Valerio Riedel\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Herbert Valerio Riedel nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
  },
  {
    "path": ".licenses/semantic/cabal/integer-logarithms.txt",
    "content": "---\ntype: cabal\nname: integer-logarithms\nversion: 1.0.2.2\nsummary: Integer logarithms.\nhomepage: https://github.com/Bodigrim/integer-logarithms\nlicense: mit\n---\nCopyright (c) 2011 Daniel Fischer, 2017 Oleg Grenrus\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and\n associated documentation files (the \"Software\"), to deal in the Software without restriction,\n including without limitation the rights to use, copy, modify, merge, publish, distribute,\n sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or\nsubstantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT\nLIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
  },
  {
    "path": ".licenses/semantic/cabal/invariant.txt",
    "content": "---\ntype: cabal\nname: invariant\nversion: 0.5.1\nsummary: Haskell98 invariant functors\nhomepage: https://github.com/nfrisby/invariant-functors\nlicense: bsd-2-clause\n---\nCopyright (c) 2012-2017, University of Kansas\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n  * Redistributions of source code must retain the above copyright notice, this\n    list of conditions and the following disclaimer.\n\n  * Redistributions in binary form must reproduce the above copyright notice,\n    this list of conditions and the following disclaimer in the documentation\n    and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
  },
  {
    "path": ".licenses/semantic/cabal/kan-extensions.txt",
    "content": "---\ntype: cabal\nname: kan-extensions\nversion: '5.2'\nsummary: Kan extensions, Kan lifts, the Yoneda lemma, and (co)density (co)monads\nhomepage: https://github.com/ekmett/kan-extensions/\nlicense: bsd-3-clause\n---\nCopyright 2008-2016 Edward Kmett\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/kdt.txt",
    "content": "---\ntype: cabal\nname: kdt\nversion: 0.2.4\nsummary: Fast and flexible k-d trees for various types of point queries.\nhomepage: https://github.com/giogadi/kdt\nlicense: mit\n---\nCopyright (c) 2014 Luis G. Torres\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be included\nin all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
  },
  {
    "path": ".licenses/semantic/cabal/keys.txt",
    "content": "---\ntype: cabal\nname: keys\nversion: 3.12.1\nsummary: Keyed functors and containers\nhomepage: https://github.com/ekmett/keys/\nlicense: bsd-3-clause\n---\nCopyright 2011-2016 Edward Kmett\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/lens.txt",
    "content": "---\ntype: cabal\nname: lens\nversion: '4.17'\nsummary: Lenses, Folds and Traversals\nhomepage: https://github.com/ekmett/lens/\nlicense: bsd-2-clause\n---\nCopyright 2012-2016 Edward Kmett\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/lifted-async.txt",
    "content": "---\nhomepage: https://github.com/maoe/lifted-async\nsummary: Run lifted IO operations asynchronously and wait for their results\nname: lifted-async\nversion: 0.10.0.3\nlicense: bsd-3-clause\n\n---\nCopyright (c) 2012-2017, Mitsutoshi Aoe\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Mitsutoshi Aoe nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/lifted-base.txt",
    "content": "---\nhomepage: https://github.com/basvandijk/lifted-base\nsummary: lifted IO operations from the base library\nname: lifted-base\nversion: 0.2.3.12\nlicense: bsd-3-clause\n\n---\nCopyright © 2010-2012, Bas van Dijk, Anders Kaseorg\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n• Redistributions of source code must retain the above copyright\n  notice, this list of conditions and the following disclaimer.\n\n• Redistributions in binary form must reproduce the above copyright\n  notice, this list of conditions and the following disclaimer in the\n  documentation and/or other materials provided with the distribution.\n\n• Neither the name of the author nor the names of other contributors\n  may be used to endorse or promote products derived from this\n  software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n“AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/machines.txt",
    "content": "---\ntype: cabal\nname: machines\nversion: 0.6.4\nsummary: Networked stream transducers\nhomepage: https://github.com/ekmett/machines/\nlicense: bsd-3-clause\n---\nCopyright 2012-2015 Edward Kmett, Runar Bjarnason, Paul Chiusano\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/managed.txt",
    "content": "---\ntype: cabal\nname: managed\nversion: 1.0.6\nsummary: A monad for managed values\nhomepage: \nlicense: bsd-3-clause\n---\nCopyright (c) 2014 Gabriel Gonzalez\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n    * Redistributions of source code must retain the above copyright notice,\n      this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above copyright notice,\n      this list of conditions and the following disclaimer in the documentation\n      and/or other materials provided with the distribution.\n    * Neither the name of Gabriel Gonzalez nor the names of other contributors\n      may be used to endorse or promote products derived from this software\n      without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\nANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/math-functions.txt",
    "content": "---\ntype: cabal\nname: math-functions\nversion: '0.3.1.0'\nsummary: Collection of tools for numeric computations\nhomepage: https://github.com/bos/math-functions/\nlicense: bsd-2-clause\n---\nCopyright (c) 2009, 2010 Bryan O'Sullivan\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/megaparsec.txt",
    "content": "---\ntype: cabal\nname: megaparsec\nversion: 7.0.4\nsummary: Monadic parser combinators\nhomepage: https://github.com/mrkkrp/megaparsec\nlicense: bsd-2-clause\n---\nCopyright © 2015–2018 Megaparsec contributors<br>\nCopyright © 2007 Paolo Martini<br>\nCopyright © 1999–2000 Daan Leijen\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice,\n  this list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS “AS IS” AND ANY EXPRESS\nOR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN\nNO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,\nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\nOR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\nEVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/memory.txt",
    "content": "---\ntype: cabal\nname: memory\nversion: 0.14.18\nsummary: memory and related abstraction stuff\nhomepage: https://github.com/vincenthz/hs-memory\nlicense: bsd-3-clause\n---\nCopyright (c) 2015-2018 Vincent Hanquez <vincent@snarc.org>\nCopyright (c) 2017-2018 Nicolas Di Prima <nicolas@primetype.co.uk>\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/mersenne-random-pure64.txt",
    "content": "---\ntype: cabal\nname: mersenne-random-pure64\nversion: 0.2.2.0\nsummary: Generate high quality pseudorandom numbers purely using a Mersenne Twister\nhomepage: https://code.haskell.org/~dons/code/mersenne-random-pure64/\nlicense: bsd-3-clause\n---\nCopyright (c) Don Stewart <dons@galois.com> 2008\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/mime-types.txt",
    "content": "---\ntype: cabal\nname: mime-types\nversion: 0.1.0.9\nsummary: Basic mime-type handling types and functions\nhomepage: https://github.com/yesodweb/wai\nlicense: mit\n---\nCopyright (c) 2012 Michael Snoyman, http://www.yesodweb.com/\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/mmorph.txt",
    "content": "---\ntype: cabal\nname: mmorph\nversion: 1.1.2\nsummary: Monad morphisms\nhomepage: \nlicense: bsd-3-clause\n---\nCopyright (c) 2013, Gabriel Gonzalez\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n* Redistributions in binary form must reproduce the above copyright notice, this\n  list of conditions and the following disclaimer in the documentation and/or\n  other materials provided with the distribution.\n* Neither the name of Gabriel Gonzalez nor the names of other contributors may\n  be used to endorse or promote products derived from this software without\n  specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\nANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
  },
  {
    "path": ".licenses/semantic/cabal/monad-control.txt",
    "content": "---\nhomepage: https://github.com/basvandijk/monad-control\nsummary: Lift control operations, like exception catching, through monad transformers\nname: monad-control\nversion: 1.0.2.3\nlicense: bsd-3-clause\n\n---\nCopyright © 2010, Bas van Dijk, Anders Kaseorg\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n• Redistributions of source code must retain the above copyright\n  notice, this list of conditions and the following disclaimer.\n\n• Redistributions in binary form must reproduce the above copyright\n  notice, this list of conditions and the following disclaimer in the\n  documentation and/or other materials provided with the distribution.\n\n• Neither the name of the author nor the names of other contributors\n  may be used to endorse or promote products derived from this\n  software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n“AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/mtl.txt",
    "content": "---\ntype: cabal\nname: mtl\nversion: 2.2.2\nsummary: Monad classes, using functional dependencies\nhomepage: https://github.com/haskell/mtl\nlicense: bsd-3-clause\n---\nThe Glasgow Haskell Compiler License\n\nCopyright 2004, The University Court of the University of Glasgow.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n\n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n\n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/mwc-random.txt",
    "content": "---\ntype: cabal\nname: mwc-random\nversion: 0.14.0.0\nsummary: Fast, high quality pseudo random number generation\nhomepage: https://github.com/bos/mwc-random\nlicense: bsd-2-clause\n---\nCopyright (c) 2009, Bryan O'Sullivan\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/neat-interpolation.txt",
    "content": "---\ntype: cabal\nname: neat-interpolation\nversion: 0.3.2.4\nsummary: A quasiquoter for neat and simple multiline text interpolation\nhomepage: https://github.com/nikita-volkov/neat-interpolation\nlicense: mit\n---\nCopyright (c) 2013, Nikita Volkov\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE."
  },
  {
    "path": ".licenses/semantic/cabal/network-uri.txt",
    "content": "---\ntype: cabal\nname: network-uri\nversion: 2.6.1.0\nsummary: URI manipulation\nhomepage: https://github.com/haskell/network-uri\nlicense: bsd-3-clause\n---\nCopyright (c) 2002-2010, The University Court of the University of Glasgow.\nCopyright (c) 2007-2010, Johan Tibell\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n\n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n\n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/network.txt",
    "content": "---\ntype: cabal\nname: network\nversion: 2.8.0.0\nsummary: Low-level networking interface\nhomepage: https://github.com/haskell/network\nlicense: bsd-3-clause\n---\nCopyright (c) 2002-2010, The University Court of the University of Glasgow.\nCopyright (c) 2007-2010, Johan Tibell\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n\n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n\n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/old-locale.txt",
    "content": "---\ntype: cabal\nname: old-locale\nversion: 1.0.0.7\nsummary: locale library\nhomepage: \nlicense: bsd-3-clause\n---\nThis library (libraries/base) is derived from code from two\nsources: \n\n  * Code from the GHC project which is largely (c) The University of\n    Glasgow, and distributable under a BSD-style license (see below),\n\n  * Code from the Haskell 98 Report which is (c) Simon Peyton Jones\n    and freely redistributable (but see the full license for\n    restrictions).\n\nThe full text of these licenses is reproduced below.  Both of the\nlicenses are BSD-style or compatible.\n\n-----------------------------------------------------------------------------\n\nThe Glasgow Haskell Compiler License\n\nCopyright 2004, The University Court of the University of Glasgow. \nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n\n-----------------------------------------------------------------------------\n\nCode derived from the document \"Report on the Programming Language\nHaskell 98\", is distributed under the following license:\n\n  Copyright (c) 2002 Simon Peyton Jones\n\n  The authors intend this Report to belong to the entire Haskell\n  community, and so we grant permission to copy and distribute it for\n  any purpose, provided that it is reproduced in its entirety,\n  including this Notice.  Modified versions of this Report may also be\n  copied and distributed for any purpose, provided that the modified\n  version is clearly presented as such, and that it does not claim to\n  be a definition of the Haskell 98 Language.\n\n-----------------------------------------------------------------------------\n"
  },
  {
    "path": ".licenses/semantic/cabal/old-time.txt",
    "content": "---\ntype: cabal\nname: old-time\nversion: 1.1.0.3\nsummary: Time library\nhomepage: \nlicense: bsd-3-clause\n---\nThis library (libraries/base) is derived from code from two\nsources: \n\n  * Code from the GHC project which is largely (c) The University of\n    Glasgow, and distributable under a BSD-style license (see below),\n\n  * Code from the Haskell 98 Report which is (c) Simon Peyton Jones\n    and freely redistributable (but see the full license for\n    restrictions).\n\nThe full text of these licenses is reproduced below.  Both of the\nlicenses are BSD-style or compatible.\n\n-----------------------------------------------------------------------------\n\nThe Glasgow Haskell Compiler License\n\nCopyright 2004, The University Court of the University of Glasgow. \nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n\n-----------------------------------------------------------------------------\n\nCode derived from the document \"Report on the Programming Language\nHaskell 98\", is distributed under the following license:\n\n  Copyright (c) 2002 Simon Peyton Jones\n\n  The authors intend this Report to belong to the entire Haskell\n  community, and so we grant permission to copy and distribute it for\n  any purpose, provided that it is reproduced in its entirety,\n  including this Notice.  Modified versions of this Report may also be\n  copied and distributed for any purpose, provided that the modified\n  version is clearly presented as such, and that it does not claim to\n  be a definition of the Haskell 98 Language.\n\n-----------------------------------------------------------------------------\n"
  },
  {
    "path": ".licenses/semantic/cabal/optional-args.txt",
    "content": "---\ntype: cabal\nname: optional-args\nversion: 1.0.2\nsummary: Optional function arguments\nhomepage: \nlicense: bsd-3-clause\n---\nCopyright (c) 2015 Gabriel Gonzalez\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n    * Redistributions of source code must retain the above copyright notice,\n      this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above copyright notice,\n      this list of conditions and the following disclaimer in the documentation\n      and/or other materials provided with the distribution.\n    * Neither the name of Gabriel Gonzalez nor the names of other contributors\n      may be used to endorse or promote products derived from this software\n      without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\nANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/optparse-applicative.txt",
    "content": "---\ntype: cabal\nname: optparse-applicative\nversion: 0.14.3.0\nsummary: Utilities and combinators for parsing command line options\nhomepage: https://github.com/pcapriotti/optparse-applicative\nlicense: bsd-3-clause\n---\nCopyright (c) 2012, Paolo Capriotti\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Paolo Capriotti nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/parallel.txt",
    "content": "---\ntype: cabal\nname: parallel\nversion: 3.2.2.0\nsummary: Parallel programming library\nhomepage: \nlicense: bsd-3-clause\n---\nThis library (libraries/parallel) is derived from code from\nthe GHC project which is largely (c) The University of\nGlasgow, and distributable under a BSD-style license (see below).\n\n-----------------------------------------------------------------------------\n\nThe Glasgow Haskell Compiler License\n\nCopyright 2004, The University Court of the University of Glasgow. \nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n\n-----------------------------------------------------------------------------\n"
  },
  {
    "path": ".licenses/semantic/cabal/parsec.txt",
    "content": "---\ntype: cabal\nname: parsec\nversion: 3.1.13.0\nsummary: Monadic parser combinators\nhomepage: https://github.com/haskell/parsec\nlicense: bsd-2-clause\n---\nCopyright 1999-2000, Daan Leijen; 2007, Paolo Martini. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice,\n  this list of conditions and the following disclaimer.\n* Redistributions in binary form must reproduce the above copyright\n  notice, this list of conditions and the following disclaimer in the\n  documentation and/or other materials provided with the distribution.\n\nThis software is provided by the copyright holders \"as is\" and any express or\nimplied warranties, including, but not limited to, the implied warranties of\nmerchantability and fitness for a particular purpose are disclaimed. In no\nevent shall the copyright holders be liable for any direct, indirect,\nincidental, special, exemplary, or consequential damages (including, but not\nlimited to, procurement of substitute goods or services; loss of use, data,\nor profits; or business interruption) however caused and on any theory of\nliability, whether in contract, strict liability, or tort (including\nnegligence or otherwise) arising in any way out of the use of this software,\neven if advised of the possibility of such damage.\n"
  },
  {
    "path": ".licenses/semantic/cabal/parser-combinators.txt",
    "content": "---\ntype: cabal\nname: parser-combinators\nversion: 1.0.1\nsummary: Lightweight package providing commonly useful parser combinators\nhomepage: https://github.com/mrkkrp/parser-combinators\nlicense: bsd-3-clause\n---\nCopyright © 2017–2018 Mark Karpov\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice,\n  this list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright\n  notice, this list of conditions and the following disclaimer in the\n  documentation and/or other materials provided with the distribution.\n\n* Neither the name Mark Karpov nor the names of contributors may be used to\n  endorse or promote products derived from this software without specific\n  prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS “AS IS” AND ANY EXPRESS\nOR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN\nNO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,\nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\nOR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\nEVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/parsers.txt",
    "content": "---\ntype: cabal\nname: parsers\nversion: 0.12.9\nsummary: Parsing combinators\nhomepage: https://github.com/ekmett/parsers/\nlicense: bsd-3-clause\n---\nCopyright 2011-2013 Edward Kmett\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/pem.txt",
    "content": "---\ntype: cabal\nname: pem\nversion: 0.2.4\nsummary: Privacy Enhanced Mail (PEM) format reader and writer.\nhomepage: https://github.com/vincenthz/hs-pem\nlicense: bsd-3-clause\n---\nCopyright (c) 2010-2018 Vincent Hanquez <vincent@snarc.org>\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/pointed.txt",
    "content": "---\ntype: cabal\nname: pointed\nversion: 5.0.1\nsummary: Pointed and copointed data\nhomepage: https://github.com/ekmett/pointed/\nlicense: bsd-2-clause\n---\nCopyright 2008-2011 Edward Kmett\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/pretty.txt",
    "content": "---\ntype: cabal\nname: pretty\nversion: 1.1.3.6\nsummary: Pretty-printing library\nhomepage: https://github.com/haskell/pretty\nlicense: bsd-3-clause\n---\nThis library (libraries/pretty) is derived from code from\nthe GHC project which is largely (c) The University of\nGlasgow, and distributable under a BSD-style license (see below).\n\n-----------------------------------------------------------------------------\n\nThe Glasgow Haskell Compiler License\n\nCopyright 2004, The University Court of the University of Glasgow. \nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n\n-----------------------------------------------------------------------------"
  },
  {
    "path": ".licenses/semantic/cabal/prettyprinter.txt",
    "content": "---\ntype: cabal\nname: prettyprinter\nversion: 1.2.1\nsummary: A modern, easy to use, well-documented, extensible pretty-printer.\nhomepage: https://github.com/quchen/prettyprinter\nlicense: bsd-2-clause\n---\nCopyright 2008, Daan Leijen and Max Bolingbroke, 2016 David Luposchainsky. All\nrights reserved.\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\n  - Redistributions of source code must retain the above copyright notice, this\n    list of conditions and the following disclaimer.\n\n  - Redistributions in binary form must reproduce the above copyright notice,\n    this list of conditions and the following disclaimer in the documentation\n    and/or other materials provided with the distribution.\n\nThis software is provided by the copyright holders \"as is\" and any express or\nimplied warranties, including, but not limited to, the implied warranties of\nmerchantability and fitness for a particular purpose are disclaimed. In no event\nshall the copyright holders be liable for any direct, indirect, incidental,\nspecial, exemplary, or consequential damages (including, but not limited to,\nprocurement of substitute goods or services; loss of use, data, or profits; or\nbusiness interruption) however caused and on any theory of liability, whether in\ncontract, strict liability, or tort (including negligence or otherwise) arising\nin any way out of the use of this software, even if advised of the possibility\nof such damage."
  },
  {
    "path": ".licenses/semantic/cabal/primitive.txt",
    "content": "---\ntype: cabal\nname: primitive\nversion: 0.6.4.0\nsummary: Primitive memory-related operations\nhomepage: https://github.com/haskell/primitive\nlicense: bsd-3-clause\n---\nCopyright (c) 2008-2009, Roman Leshchinskiy\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/process.txt",
    "content": "---\ntype: cabal\nname: process\nversion: 1.6.5.0\nsummary: Process libraries\n\nlicense: bsd-3-clause\n---\nThis library (libraries/process) is derived from code from two\nsources: \n\n  * Code from the GHC project which is largely (c) The University of\n    Glasgow, and distributable under a BSD-style license (see below),\n\n  * Code from the Haskell 98 Report which is (c) Simon Peyton Jones\n    and freely redistributable (but see the full license for\n    restrictions).\n\nThe full text of these licenses is reproduced below.  Both of the\nlicenses are BSD-style or compatible.\n\n-----------------------------------------------------------------------------\n\nThe Glasgow Haskell Compiler License\n\nCopyright 2004, The University Court of the University of Glasgow. \nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n\n-----------------------------------------------------------------------------\n\nCode derived from the document \"Report on the Programming Language\nHaskell 98\", is distributed under the following license:\n\n  Copyright (c) 2002 Simon Peyton Jones\n\n  The authors intend this Report to belong to the entire Haskell\n  community, and so we grant permission to copy and distribute it for\n  any purpose, provided that it is reproduced in its entirety,\n  including this Notice.  Modified versions of this Report may also be\n  copied and distributed for any purpose, provided that the modified\n  version is clearly presented as such, and that it does not claim to\n  be a definition of the Haskell 98 Language.\n\n-----------------------------------------------------------------------------"
  },
  {
    "path": ".licenses/semantic/cabal/profunctors.txt",
    "content": "---\ntype: cabal\nname: profunctors\nversion: '5.3'\nsummary: Profunctors\nhomepage: https://github.com/ekmett/profunctors/\nlicense: bsd-3-clause\n---\nCopyright 2011-2015 Edward Kmett\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/proto3-suite.txt",
    "content": "---\ntype: cabal\nname: proto3-suite\nversion: 0.2.0\nsummary: A low level library for writing out data in the Protocol Buffers wire format\nhomepage:\nlicense: apache-2.0\n---\n\nCopyright 2017 Awake Networks\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
  },
  {
    "path": ".licenses/semantic/cabal/proto3-wire.txt",
    "content": "---\ntype: cabal\nname: proto3-wire\nversion: 1.0.0\nsummary: A low-level implementation of the Protocol Buffers (version 3) wire format\nhomepage: \nlicense: bsd-3-clause\n---\nCopyright 2016 Awake Networks\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
  },
  {
    "path": ".licenses/semantic/cabal/quickcheck-instances.txt",
    "content": "---\ntype: cabal\nname: quickcheck-instances\nversion: 0.3.19\nsummary: Common quickcheck instances\nhomepage: https://github.com/phadej/qc-instances\nlicense: bsd-3-clause\n---\nCopyright (c)2012, Antoine Latter\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Antoine Latter nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/random.txt",
    "content": "---\ntype: cabal\nname: random\nversion: '1.1'\nsummary: random number library\nhomepage: https://github.com/haskell/random\nlicense: bsd-3-clause\n---\nThis library (libraries/base) is derived from code from two\nsources: \n\n  * Code from the GHC project which is largely (c) The University of\n    Glasgow, and distributable under a BSD-style license (see below),\n\n  * Code from the Haskell 98 Report which is (c) Simon Peyton Jones\n    and freely redistributable (but see the full license for\n    restrictions).\n\nThe full text of these licenses is reproduced below.  Both of the\nlicenses are BSD-style or compatible.\n\n-----------------------------------------------------------------------------\n\nThe Glasgow Haskell Compiler License\n\nCopyright 2004, The University Court of the University of Glasgow. \nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n\n-----------------------------------------------------------------------------\n\nCode derived from the document \"Report on the Programming Language\nHaskell 98\", is distributed under the following license:\n\n  Copyright (c) 2002 Simon Peyton Jones\n\n  The authors intend this Report to belong to the entire Haskell\n  community, and so we grant permission to copy and distribute it for\n  any purpose, provided that it is reproduced in its entirety,\n  including this Notice.  Modified versions of this Report may also be\n  copied and distributed for any purpose, provided that the modified\n  version is clearly presented as such, and that it does not claim to\n  be a definition of the Haskell 98 Language.\n\n-----------------------------------------------------------------------------\n"
  },
  {
    "path": ".licenses/semantic/cabal/recursion-schemes.txt",
    "content": "---\ntype: cabal\nname: recursion-schemes\nversion: 5.1.2\nsummary: Generalized bananas, lenses and barbed wire\nhomepage: https://github.com/ekmett/recursion-schemes/\nlicense: bsd-2-clause\n---\nCopyright 2011-2015 Edward Kmett\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/reducers.txt",
    "content": "---\ntype: cabal\nname: reducers\nversion: 3.12.3\nsummary: Semigroups, specialized containers and a general map/reduce framework\nhomepage: https://github.com/ekmett/reducers/\nlicense: bsd-3-clause\n---\nCopyright 2008-2016 Edward Kmett\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/reflection.txt",
    "content": "---\ntype: cabal\nname: reflection\nversion: 2.1.4\nsummary: Reifies arbitrary terms into types that can be reflected back into terms\nhomepage: https://github.com/ekmett/reflection\nlicense: bsd-3-clause\n---\nCopyright (c) 2009-2013 Edward Kmett\nCopyright (c) 2004 Oleg Kiselyov and Chung-chieh Shan\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Edward Kmett nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/rts.txt",
    "content": "---\ntype: cabal\nname: rts\nversion: '1.0'\nsummary:\nhomepage:\nlicense: bsd-3-clause\n---\nThe Glasgow Haskell Compiler License\n\nCopyright 2002, The University Court of the University of Glasgow.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n\n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n\n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/safe.txt",
    "content": "---\ntype: cabal\nname: safe\nversion: 0.3.17\nsummary: Library of safe (exception free) functions\nhomepage: https://github.com/ndmitchell/safe\nlicense: bsd-3-clause\n---\nCopyright Neil Mitchell 2007-2018.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Neil Mitchell nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/scientific.txt",
    "content": "---\ntype: cabal\nname: scientific\nversion: 0.3.6.2\nsummary: Numbers represented using scientific notation\nhomepage: https://github.com/basvandijk/scientific\nlicense: bsd-3-clause\n---\nCopyright (c) 2013, Bas van Dijk\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Bas van Dijk nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/semigroupoids.txt",
    "content": "---\ntype: cabal\nname: semigroupoids\nversion: 5.3.2\nsummary: 'Semigroupoids: Category sans id'\nhomepage: https://github.com/ekmett/semigroupoids\nlicense: bsd-2-clause\n---\nCopyright 2011-2015 Edward Kmett\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/semigroups.txt",
    "content": "---\ntype: cabal\nname: semigroups\nversion: 0.18.5\nsummary: Anything that associates\nhomepage: https://github.com/ekmett/semigroups/\nlicense: bsd-2-clause\n---\nCopyright 2011-2015 Edward Kmett\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/semilattices.txt",
    "content": "---\ntype: cabal\nname: semilattices\nversion: 0.0.0.3\nsummary: Semilattices\nhomepage: https://github.com/robrix/semilattices\nlicense: bsd-3-clause\n---\nCopyright (c) 2017, Rob Rix\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Rob Rix nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/servant.txt",
    "content": "---\ntype: cabal\nname: servant\nversion: '0.15'\nsummary: A family of combinators for defining webservices APIs\nhomepage: https://haskell-servant.readthedocs.org/\nlicense: bsd-3-clause\n---\nCopyright (c) 2014-2016, Zalora South East Asia Pte Ltd, 2016-2018 Servant Contributors\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Zalora South East Asia Pte Ltd nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/shelly.txt",
    "content": "---\nhomepage: https://github.com/yesodweb/Shelly.hs\nsummary: shell-like (systems) programming in Haskell\nname: shelly\nversion: 1.8.0\nlicense: bsd-3-clause\n\n---\nCopyright (c) 2017, Petr Rockai <me@mornfall.net>\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Petr Rockai nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/singleton-bool.txt",
    "content": "---\ntype: cabal\nname: singleton-bool\nversion: 0.1.4\nsummary: Type level booleans\nhomepage: https://github.com/phadej/singleton-bool\nlicense: bsd-3-clause\n---\nCopyright (c) 2016, Oleg Grenrus\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Oleg Grenrus nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/socks.txt",
    "content": "---\ntype: cabal\nname: socks\nversion: 0.5.6\nsummary: Socks proxy (ver 5)\nhomepage: https://github.com/vincenthz/hs-socks\nlicense: bsd-3-clause\n---\nCopyright (c) 2010-2011 Vincent Hanquez <vincent@snarc.org>\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/sop-core.txt",
    "content": "---\ntype: cabal\nname: sop-core\nversion: 0.4.0.0\nsummary: True Sums of Products\nhomepage: \nlicense: bsd-3-clause\n---\nCopyright (c) 2014-2015, Well-Typed LLP, Edsko de Vries, Andres Löh\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice,\n   this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n   this list of conditions and the following disclaimer in the documentation\n   and/or other materials provided with the distribution.\n\n3. Neither the name of the copyright holder nor the names of its contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
  },
  {
    "path": ".licenses/semantic/cabal/split.txt",
    "content": "---\ntype: cabal\nname: split\nversion: 0.2.3.3\nsummary: Combinator library for splitting lists.\nhomepage: https://github.com/byorgey/split\nlicense: bsd-3-clause\n---\nCopyright (c) 2008 Brent Yorgey, Louis Wasserman\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. Neither the name of the author nor the names of other contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/stm-chans.txt",
    "content": "---\ntype: cabal\nname: stm-chans\nversion: 3.0.0.4\nsummary: Additional types of channels for STM.\nhomepage: https://code.haskell.org/~wren/\nlicense: bsd-3-clause\n---\n=== stm-chans license ===\n\nCopyright (c) 2011--2013, wren gayle romano.\nALL RIGHTS RESERVED.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of the copyright holders nor the names of\n      other contributors may be used to endorse or promote products\n      derived from this software without specific prior written\n      permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS\nFOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nCOPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\nBUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/stm.txt",
    "content": "---\ntype: cabal\nname: stm\nversion: 2.5.0.0\nsummary: Software Transactional Memory\nhomepage: https://wiki.haskell.org/Software_transactional_memory\nlicense: bsd-3-clause\n---\nThe Glasgow Haskell Compiler License\n\nCopyright 2004, The University Court of the University of Glasgow. \nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE."
  },
  {
    "path": ".licenses/semantic/cabal/streaming-commons.txt",
    "content": "---\ntype: cabal\nname: streaming-commons\nversion: 0.2.1.0\nsummary: Common lower-level functions needed by various streaming data libraries\nhomepage: https://github.com/fpco/streaming-commons\nlicense: mit\n---\nThe MIT License (MIT)\n\nCopyright (c) 2014 FP Complete\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
  },
  {
    "path": ".licenses/semantic/cabal/string-conversions.txt",
    "content": "---\ntype: cabal\nname: string-conversions\nversion: 0.4.0.1\nsummary: Simplifies dealing with different types for strings\nhomepage: https://github.com/soenkehahn/string-conversions\nlicense: bsd-3-clause\n---\nCopyright (c) 2012, Sönke Hahn\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Sönke Hahn nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/swagger2.txt",
    "content": "---\ntype: cabal\nname: swagger2\nversion: 2.3.1.1\nsummary: Swagger 2.0 data model\nhomepage: https://github.com/GetShopTV/swagger2\nlicense: bsd-3-clause\n---\nCopyright (c) 2015-2017, GetShopTV\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of swagger2 nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
  },
  {
    "path": ".licenses/semantic/cabal/syb.txt",
    "content": "---\ntype: cabal\nname: syb\nversion: '0.7'\nsummary: Scrap Your Boilerplate\nhomepage: https://www.cs.uu.nl/wiki/GenericProgramming/SYB\nlicense: bsd-3-clause\n---\nThis library (libraries/syb) is derived from code from several\nsources: \n\n  * Code from the GHC project which is largely (c) The University of\n    Glasgow, and distributable under a BSD-style license (see below),\n\n  * Code from the Haskell 98 Report which is (c) Simon Peyton Jones\n    and freely redistributable (but see the full license for\n    restrictions).\n\n  * Code from the Haskell Foreign Function Interface specification,\n    which is (c) Manuel M. T. Chakravarty and freely redistributable\n    (but see the full license for restrictions).\n\nThe full text of these licenses is reproduced below.  All of the\nlicenses are BSD-style or compatible.\n\n-----------------------------------------------------------------------------\n\nThe Glasgow Haskell Compiler License\n\nCopyright 2004, The University Court of the University of Glasgow. \nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n\n-----------------------------------------------------------------------------\n\nCode derived from the document \"Report on the Programming Language\nHaskell 98\", is distributed under the following license:\n\n  Copyright (c) 2002 Simon Peyton Jones\n\n  The authors intend this Report to belong to the entire Haskell\n  community, and so we grant permission to copy and distribute it for\n  any purpose, provided that it is reproduced in its entirety,\n  including this Notice.  Modified versions of this Report may also be\n  copied and distributed for any purpose, provided that the modified\n  version is clearly presented as such, and that it does not claim to\n  be a definition of the Haskell 98 Language.\n\n-----------------------------------------------------------------------------\n\nCode derived from the document \"The Haskell 98 Foreign Function\nInterface, An Addendum to the Haskell 98 Report\" is distributed under\nthe following license:\n\n  Copyright (c) 2002 Manuel M. T. Chakravarty\n\n  The authors intend this Report to belong to the entire Haskell\n  community, and so we grant permission to copy and distribute it for\n  any purpose, provided that it is reproduced in its entirety,\n  including this Notice.  Modified versions of this Report may also be\n  copied and distributed for any purpose, provided that the modified\n  version is clearly presented as such, and that it does not claim to\n  be a definition of the Haskell 98 Foreign Function Interface.\n\n-----------------------------------------------------------------------------\n"
  },
  {
    "path": ".licenses/semantic/cabal/system-fileio.txt",
    "content": "---\ntype: cabal\nname: system-fileio\nversion: 0.3.16.4\nsummary: Consistent filesystem interaction across GHC versions (deprecated)\nhomepage: https://github.com/fpco/haskell-filesystem\nlicense: mit\n---\nCopyright (c) 2011 John Millikin\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE."
  },
  {
    "path": ".licenses/semantic/cabal/system-filepath.txt",
    "content": "---\ntype: cabal\nname: system-filepath\nversion: 0.4.14\nsummary: High-level, byte-based file and directory path manipulations (deprecated)\nhomepage: https://github.com/fpco/haskell-filesystem\nlicense: mit\n---\nCopyright (c) 2010 John Millikin\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE."
  },
  {
    "path": ".licenses/semantic/cabal/tagged.txt",
    "content": "---\ntype: cabal\nname: tagged\nversion: 0.8.6\nsummary: Haskell 98 phantom types to avoid unsafely passing dummy arguments\nhomepage: https://github.com/ekmett/tagged\nlicense: bsd-3-clause\n---\nCopyright (c) 2009-2015 Edward Kmett\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Edward Kmett nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/template-haskell.txt",
    "content": "---\ntype: cabal\nname: template-haskell\nversion: 2.14.0.0\nsummary: Support library for Template Haskell\nhomepage: \nlicense: bsd-3-clause\n---\n\nThe Glasgow Haskell Compiler License\n\nCopyright 2002-2007, The University Court of the University of Glasgow.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n\n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n\n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE."
  },
  {
    "path": ".licenses/semantic/cabal/temporary.txt",
    "content": "---\ntype: cabal\nname: temporary\nversion: '1.3'\nsummary: Portable temporary file and directory support\nhomepage: https://github.com/feuerbach/temporary\nlicense: bsd-3-clause\n---\nCopyright\n  (c) 2003-2006, Isaac Jones\n  (c) 2005-2009, Duncan Coutts\n  (c) 2008, Maximilian Bolingbroke\n  ... and other contributors\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification, are permitted\nprovided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright notice, this list of\n      conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above copyright notice, this list of\n      conditions and the following disclaimer in the documentation and/or other materials\n      provided with the distribution.\n    * Neither the name of Maximilian Bolingbroke nor the names of other contributors may be used to\n      endorse or promote products derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\nCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER\nIN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT\nOF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/terminfo.txt",
    "content": "---\ntype: cabal\nname: terminfo\nversion: 0.4.1.2\nsummary: Haskell bindings to the terminfo library.\nhomepage: https://github.com/judah/terminfo\nlicense: bsd-2-clause\n---\nCopyright 2007, Judah Jacobson.\nAll Rights Reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistribution of source code must retain the above copyright notice,\nthis list of conditions and the following disclamer.\n\n- Redistribution in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclamer in the documentation\nand/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS \"AS IS\" AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE\nUSE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
  },
  {
    "path": ".licenses/semantic/cabal/text.txt",
    "content": "---\ntype: cabal\nname: text\nversion: 1.2.3.1\nsummary: An efficient packed Unicode text type.\nhomepage: https://github.com/haskell/text\nlicense: bsd-2-clause\n---\nCopyright (c) 2008-2009, Tom Harper\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
  },
  {
    "path": ".licenses/semantic/cabal/tf-random.txt",
    "content": "---\ntype: cabal\nname: tf-random\nversion: '0.5'\nsummary: High-quality splittable pseudorandom number generator\nhomepage: https://hub.darcs.net/michal.palka/tf-random\nlicense: bsd-3-clause\n---\nCopyright (c) 2012-2013, Michał Pałka\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * The names of the authors may not be used to endorse or promote\n      products derived from this software without specific prior written\n      permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/th-abstraction.txt",
    "content": "---\ntype: cabal\nname: th-abstraction\nversion: 0.2.11.0\nsummary: Nicer interface for reified information about data types\nhomepage: https://github.com/glguy/th-abstraction\nlicense: isc\n---\nCopyright (c) 2017 Eric Mertens\n\nPermission to use, copy, modify, and/or distribute this software for any purpose\nwith or without fee is hereby granted, provided that the above copyright notice\nand this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\nOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\nTORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\nTHIS SOFTWARE."
  },
  {
    "path": ".licenses/semantic/cabal/these.txt",
    "content": "---\ntype: cabal\nname: these\nversion: 0.7.6\nsummary: An either-or-both data type & a generalized 'zip with padding' typeclass\nhomepage: https://github.com/isomorphism/these\nlicense: bsd-3-clause\n---\nCopyright (c)2012, C. McCann\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of C. McCann nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/time-locale-compat.txt",
    "content": "---\ntype: cabal\nname: time-locale-compat\nversion: 0.1.1.5\nsummary: Compatibile module for time-format locale\nhomepage: https://github.com/khibino/haskell-time-locale-compat\nlicense: bsd-3-clause\n---\nCopyright (c) 2014, Kei Hibino\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Kei Hibino nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/time.txt",
    "content": "---\ntype: cabal\nname: time\nversion: 1.8.0.2\nsummary: A time library\nhomepage: https://github.com/haskell/time\nlicense: bsd-2-clause\n---\nTimeLib is Copyright (c) Ashley Yakeley, 2004-2014. All rights reserved.\nCertain sections are Copyright 2004, The University Court of the University of Glasgow. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\n- Neither name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n\nTHIS 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.\n"
  },
  {
    "path": ".licenses/semantic/cabal/tls.txt",
    "content": "---\ntype: cabal\nname: tls\nversion: 1.4.1\nsummary: TLS/SSL protocol native implementation (Server and Client)\nhomepage: https://github.com/vincenthz/hs-tls\nlicense: bsd-3-clause\n---\nCopyright (c) 2010-2015 Vincent Hanquez <vincent@snarc.org>\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/transformers-base.txt",
    "content": "---\ntype: cabal\nname: transformers-base\nversion: 0.4.5.2\nsummary: Lift computations from the bottom of a transformer stack\nhomepage: https://github.com/mvv/transformers-base\nlicense: bsd-3-clause\n---\nCopyright (c) 2011, Mikhail Vorozhtsov, Bas van Dijk\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without \nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice, \n  this list of conditions and the following disclaimer.\n- Redistributions in binary form must reproduce the above copyright \n  notice, this list of conditions and the following disclaimer in the \n  documentation and/or other materials provided with the distribution.\n- Neither the names of the copyright owners nor the names of the \n  contributors may be used to endorse or promote products derived \n  from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/transformers-compat.txt",
    "content": "---\ntype: cabal\nname: transformers-compat\nversion: 0.6.2\nsummary: A small compatibility shim for the transformers library\nhomepage: https://github.com/ekmett/transformers-compat/\nlicense: bsd-3-clause\n---\nCopyright 2012-2015 Edward Kmett\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/transformers.txt",
    "content": "---\ntype: cabal\nname: transformers\nversion: 0.5.6.2\nsummary: Concrete functor and monad transformers\n\nlicense: bsd-3-clause\n---\nThe Glasgow Haskell Compiler License\n\nCopyright 2004, The University Court of the University of Glasgow.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n\n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n\n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE."
  },
  {
    "path": ".licenses/semantic/cabal/turtle.txt",
    "content": "---\ntype: cabal\nname: turtle\nversion: 1.5.13\nsummary: Shell programming, Haskell-style\nhomepage: \nlicense: bsd-3-clause\n---\nCopyright (c) 2017 Gabriel Gonzalez\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n    * Redistributions of source code must retain the above copyright notice,\n      this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above copyright notice,\n      this list of conditions and the following disclaimer in the documentation\n      and/or other materials provided with the distribution.\n    * Neither the name of Gabriel Gonzalez nor the names of other contributors\n      may be used to endorse or promote products derived from this software\n      without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\nANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/unix-compat.txt",
    "content": "---\ntype: cabal\nname: unix-compat\nversion: 0.5.1\nsummary: Portable POSIX-compatibility layer.\nhomepage: https://github.com/jystic/unix-compat\nlicense: bsd-3-clause\n---\nCopyright (c) 2007-2008, Björn Bringert\nCopyright (c) 2007-2009, Duncan Coutts\nCopyright (c) 2010-2011, Jacob Stanley\nCopyright (c)      2011, Bryan O'Sullivan\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without \nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice, \n  this list of conditions and the following disclaimer.\n- Redistributions in binary form must reproduce the above copyright \n  notice, this list of conditions and the following disclaimer in the \n  documentation and/or other materials provided with the distribution.\n- Neither the names of the copyright owners nor the names of the \n  contributors may be used to endorse or promote products derived \n  from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/unix.txt",
    "content": "---\ntype: cabal\nname: unix\nversion: 2.7.2.2\nsummary: POSIX functionality\nhomepage: https://github.com/haskell/unix\nlicense: bsd-3-clause\n---\nThe Glasgow Haskell Compiler License\n\nCopyright 2004, The University Court of the University of Glasgow.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n\n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n\n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/unliftio-core.txt",
    "content": "---\ntype: cabal\nname: unliftio-core\nversion: 0.1.2.0\nsummary: The MonadUnliftIO typeclass for unlifting monads to IO\nhomepage: https://github.com/fpco/unliftio/tree/master/unliftio-core\nlicense: mit\n---\nCopyright (c) 2017 FP Complete\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be included\nin all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
  },
  {
    "path": ".licenses/semantic/cabal/unordered-containers.txt",
    "content": "---\ntype: cabal\nname: unordered-containers\nversion: 0.2.9.0\nsummary: Efficient hashing-based container types\nhomepage: https://github.com/tibbe/unordered-containers\nlicense: bsd-3-clause\n---\nCopyright (c) 2010, Johan Tibell\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Johan Tibell nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/utf8-string.txt",
    "content": "---\ntype: cabal\nname: utf8-string\nversion: 1.0.1.1\nsummary: Support for reading and writing UTF8 Strings\nhomepage: https://github.com/glguy/utf8-string/\nlicense: bsd-3-clause\n---\n* Copyright (c) 2007, Galois Inc.\n* All rights reserved.\n*\n* Redistribution and use in source and binary forms, with or without\n* modification, are permitted provided that the following conditions are met:\n*     * Redistributions of source code must retain the above copyright\n*       notice, this list of conditions and the following disclaimer.\n*     * Redistributions in binary form must reproduce the above copyright\n*       notice, this list of conditions and the following disclaimer in the\n*       documentation and/or other materials provided with the distribution.\n*     * Neither the name of Galois Inc. nor the\n*       names of its contributors may be used to endorse or promote products\n*       derived from this software without specific prior written permission.\n*\n* THIS SOFTWARE IS PROVIDED BY Galois Inc. ``AS IS'' AND ANY\n* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n* DISCLAIMED. IN NO EVENT SHALL Galois Inc. BE LIABLE FOR ANY\n* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/uuid-types.txt",
    "content": "---\ntype: cabal\nname: uuid-types\nversion: 1.0.3\nsummary: Type definitions for Universally Unique Identifiers\nhomepage: https://github.com/aslatter/uuid\nlicense: bsd-3-clause\n---\nCopyright (c) 2008, Antoine Latter\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without \nmodification, are permitted provided that the following conditions are \nmet:\n\n    * Redistributions of source code must retain the above copyright \nnotice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above copyright \nnotice, this list of conditions and the following disclaimer in the \ndocumentation and/or other materials provided with the distribution.\n    * The names of the authors may not be used to endorse or promote \nproducts derived from this software without specific prior written \npermission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT \nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, \nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED \nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/vault.txt",
    "content": "---\ntype: cabal\nname: vault\nversion: 0.3.1.2\nsummary: a persistent store for values of arbitrary types\nhomepage: https://github.com/HeinrichApfelmus/vault\nlicense: bsd-3-clause\n---\nCopyright (c)2011, Heinrich Apfelmus\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Heinrich Apfelmus nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/vector-builder.txt",
    "content": "---\ntype: cabal\nname: vector-builder\nversion: 0.3.7.2\nsummary: Vector builder\nhomepage: https://github.com/nikita-volkov/vector-builder\nlicense: mit\n---\nCopyright (c) 2016, Nikita Volkov\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE."
  },
  {
    "path": ".licenses/semantic/cabal/vector-instances.txt",
    "content": "---\ntype: cabal\nname: vector-instances\nversion: '3.4'\nsummary: Orphan Instances for 'Data.Vector'\nhomepage: https://github.com/ekmett/vector-instances\nlicense: bsd-3-clause\n---\nCopyright (c)2010, Edward Kmett\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Edward Kmett nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/vector-th-unbox.txt",
    "content": "---\ntype: cabal\nname: vector-th-unbox\nversion: '0.2.1.6'\nsummary: Deriver for Data.Vector.Unboxed using Template Haskell\nhomepage: https://github.com/liyang/vector-th-unbox/\nlicense: bsd-3-clause\n---\nCopyright (c) 2012−2015, Liyang HU\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n\n    * Neither the name of Liyang HU nor the names of other\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/vector.txt",
    "content": "---\ntype: cabal\nname: vector\nversion: 0.12.0.2\nsummary: Efficient Arrays\nhomepage: https://github.com/haskell/vector\nlicense: bsd-3-clause\n---\nCopyright (c) 2008-2012, Roman Leshchinskiy\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n \n- Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n \n- Neither name of the University nor the names of its contributors may be\nused to endorse or promote products derived from this software without\nspecific prior written permission. \n\nTHIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF\nGLASGOW AND THE CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nUNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/void.txt",
    "content": "---\ntype: cabal\nname: void\nversion: 0.7.2\nsummary: A Haskell 98 logically uninhabited data type\nhomepage: https://github.com/ekmett/void\nlicense: bsd-3-clause\n---\nCopyright 2015 Edward Kmett\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/x509-store.txt",
    "content": "---\ntype: cabal\nname: x509-store\nversion: 1.6.7\nsummary: X.509 collection accessing and storing methods\nhomepage: https://github.com/vincenthz/hs-certificate\nlicense: bsd-3-clause\n---\nCopyright (c) 2010-2013 Vincent Hanquez <vincent@snarc.org>\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/x509-system.txt",
    "content": "---\ntype: cabal\nname: x509-system\nversion: 1.6.6\nsummary: Handle per-operating-system X.509 accessors and storage\nhomepage: https://github.com/vincenthz/hs-certificate\nlicense: bsd-3-clause\n---\nCopyright (c) 2010-2013 Vincent Hanquez <vincent@snarc.org>\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/x509-validation.txt",
    "content": "---\ntype: cabal\nname: x509-validation\nversion: 1.6.11\nsummary: X.509 Certificate and CRL validation\nhomepage: https://github.com/vincenthz/hs-certificate\nlicense: bsd-3-clause\n---\nCopyright (c) 2010-2013 Vincent Hanquez <vincent@snarc.org>\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/x509.txt",
    "content": "---\ntype: cabal\nname: x509\nversion: 1.7.5\nsummary: X509 reader and writer\nhomepage: https://github.com/vincenthz/hs-certificate\nlicense: bsd-3-clause\n---\nCopyright (c) 2010-2013 Vincent Hanquez <vincent@snarc.org>\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. Neither the name of the author nor the names of his contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\nOR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n"
  },
  {
    "path": ".licenses/semantic/cabal/zlib.txt",
    "content": "---\ntype: cabal\nname: zlib\nversion: 0.6.2\nsummary: Compression and decompression in the gzip and zlib formats\nhomepage: \nlicense: bsd-3-clause\n---\nCopyright (c) 2006-2016, Duncan Coutts\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice,\n   this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. This clause is intentionally left blank.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\nLIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\nCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\nSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\nINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\nARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": ".stylish-haskell.yaml",
    "content": "# stylish-haskell configuration file\n# ==================================\n\n# The stylish-haskell tool is mainly configured by specifying steps. These steps\n# are a list, so they have an order, and one specific step may appear more than\n# once (if needed). Each file is processed by these steps in the given order.\nsteps:\n  # Convert some ASCII sequences to their Unicode equivalents. This is disabled\n  # by default.\n  # - unicode_syntax:\n  #     # In order to make this work, we also need to insert the UnicodeSyntax\n  #     # language pragma. If this flag is set to true, we insert it when it's\n  #     # not already present. You may want to disable it if you configure\n  #     # language extensions using some other method than pragmas. Default:\n  #     # true.\n  #     add_language_pragma: true\n\n  # Align the right hand side of some elements.  This is quite conservative\n  # and only applies to statements where each element occupies a single\n  # line.\n  - simple_align:\n      cases: true\n      top_level_patterns: true\n      records: true\n\n  # Import cleanup\n  - imports:\n      # There are different ways we can align names and lists.\n      #\n      # - global: Align the import names and import list throughout the entire\n      #   file.\n      #\n      # - file: Like global, but don't add padding when there are no qualified\n      #   imports in the file.\n      #\n      # - group: Only align the imports per group (a group is formed by adjacent\n      #   import lines).\n      #\n      # - none: Do not perform any alignment.\n      #\n      # Default: global.\n      align: group\n\n      # The following options affect only import list alignment.\n      #\n      # List align has following options:\n      #\n      # - after_alias: Import list is aligned with end of import including\n      #   'as' and 'hiding' keywords.\n      #\n      #   > import qualified Data.List      as List (concat, foldl, foldr, head,\n      #   >                                          init, last, length)\n      #\n      # - with_alias: Import list is aligned with start of alias or hiding.\n      #\n      #   > import qualified Data.List      as List (concat, foldl, foldr, head,\n      #   >                                 init, last, length)\n      #\n      # - new_line: Import list starts always on new line.\n      #\n      #   > import qualified Data.List      as List\n      #   >     (concat, foldl, foldr, head, init, last, length)\n      #\n      # Default: after_alias\n      list_align: after_alias\n\n      # Right-pad the module names to align imports in a group:\n      #\n      # - true: a little more readable\n      #\n      #   > import qualified Data.List       as List (concat, foldl, foldr,\n      #   >                                           init, last, length)\n      #   > import qualified Data.List.Extra as List (concat, foldl, foldr,\n      #   >                                           init, last, length)\n      #\n      # - false: diff-safe\n      #\n      #   > import qualified Data.List as List (concat, foldl, foldr, init,\n      #   >                                     last, length)\n      #   > import qualified Data.List.Extra as List (concat, foldl, foldr,\n      #   >                                           init, last, length)\n      #\n      # Default: true\n      pad_module_names: false\n\n      # Long list align style takes effect when import is too long. This is\n      # determined by 'columns' setting.\n      #\n      # - inline: This option will put as much specs on same line as possible.\n      #\n      # - new_line: Import list will start on new line.\n      #\n      # - new_line_multiline: Import list will start on new line when it's\n      #   short enough to fit to single line. Otherwise it'll be multiline.\n      #\n      # - multiline: One line per import list entry.\n      #   Type with constructor list acts like single import.\n      #\n      #   > import qualified Data.Map as M\n      #   >     ( empty\n      #   >     , singleton\n      #   >     , ...\n      #   >     , delete\n      #   >     )\n      #\n      # Default: inline\n      long_list_align: new_line_multiline\n\n      # Align empty list (importing instances)\n      #\n      # Empty list align has following options\n      #\n      # - inherit: inherit list_align setting\n      #\n      # - right_after: () is right after the module name:\n      #\n      #   > import Vector.Instances ()\n      #\n      # Default: inherit\n      empty_list_align: inherit\n\n      # List padding determines indentation of import list on lines after import.\n      # This option affects 'long_list_align'.\n      #\n      # - <integer>: constant value\n      #\n      # - module_name: align under start of module name.\n      #   Useful for 'file' and 'group' align settings.\n      list_padding: 4\n\n      # Separate lists option affects formatting of import list for type\n      # or class. The only difference is single space between type and list\n      # of constructors, selectors and class functions.\n      #\n      # - true: There is single space between Foldable type and list of it's\n      #   functions.\n      #\n      #   > import Data.Foldable (Foldable (fold, foldl, foldMap))\n      #\n      # - false: There is no space between Foldable type and list of it's\n      #   functions.\n      #\n      #   > import Data.Foldable (Foldable(fold, foldl, foldMap))\n      #\n      # Default: true\n      separate_lists: true\n\n      # Space surround option affects formatting of import lists on a single\n      # line. The only difference is single space after the initial\n      # parenthesis and a single space before the terminal parenthesis.\n      #\n      # - true: There is single space associated with the enclosing\n      #   parenthesis.\n      #\n      #   > import Data.Foo ( foo )\n      #\n      # - false: There is no space associated with the enclosing parenthesis\n      #\n      #   > import Data.Foo (foo)\n      #\n      # Default: false\n      space_surround: false\n\n  # Language pragmas\n  - language_pragmas:\n      # We can generate different styles of language pragma lists.\n      #\n      # - vertical: Vertical-spaced language pragmas, one per line.\n      #\n      # - compact: A more compact style.\n      #\n      # - compact_line: Similar to compact, but wrap each line with\n      #   `{-#LANGUAGE #-}'.\n      #\n      # Default: vertical.\n      style: vertical\n\n      # Align affects alignment of closing pragma brackets.\n      #\n      # - true: Brackets are aligned in same column.\n      #\n      # - false: Brackets are not aligned together. There is only one space\n      #   between actual import and closing bracket.\n      #\n      # Default: true\n      align: false\n\n      # stylish-haskell can detect redundancy of some language pragmas. If this\n      # is set to true, it will remove those redundant pragmas. Default: true.\n      remove_redundant: true\n\n  # Replace tabs by spaces. This is disabled by default.\n  # - tabs:\n  #     # Number of spaces to use for each tab. Default: 8, as specified by the\n  #     # Haskell report.\n  #     spaces: 8\n\n  # Remove trailing whitespace\n  - trailing_whitespace: {}\n\n# A common setting is the number of columns (parts of) code will be wrapped\n# to. Different steps take this into account. Default: 80.\ncolumns: 120\n\n# By default, line endings are converted according to the OS. You can override\n# preferred format here.\n#\n# - native: Native newline format. CRLF on Windows, LF on other OSes.\n#\n# - lf: Convert to LF (\"\\n\").\n#\n# - crlf: Convert to CRLF (\"\\r\\n\").\n#\n# Default: native.\nnewline: native\n\n# Sometimes, language extensions are specified in a cabal file or from the\n# command line instead of using language pragmas in the file. stylish-haskell\n# needs to be aware of these, so it can parse the file correctly.\nlanguage_extensions:\n  - DataKinds\n  - DeriveFoldable\n  - DeriveFunctor\n  - DeriveGeneric\n  - DeriveTraversable\n  - DerivingVia\n  - ExplicitNamespaces\n  - FlexibleContexts\n  - FlexibleInstances\n  - MultiParamTypeClasses\n  - OverloadedStrings\n  - RecordWildCards\n  - StandaloneDeriving\n  - StrictData\n  - TypeApplications\n"
  },
  {
    "path": "BUILD.bazel",
    "content": "# This build file specifies the packages from GHC bindists that\n# we want to use, as well as the top-level hie-bios REPL target\n# that the tooling uses. You probably don't need to edit it.\n\npackage(default_visibility = [\"//visibility:public\"])\n\nload(\n    \"@rules_haskell//haskell:defs.bzl\",\n    \"haskell_repl\",\n    \"haskell_toolchain_library\",\n)\n\n# You can specify what kind of compilation mode you want by providing\n# --compilation_mode=MODE to `bazel build`, where MODE is one of\n# 'fastbuild', 'dbg', or 'opt'. We declare targets corresponding to this\n# setting, which are used in common.bzl to vary compiler flags based\n# on the compilation mode. Note that you can also just write `-c opt`\n# if you're not into writing out compilation_mode.\n\nconfig_setting(\n    name = \"release\",\n    values = {\"compilation_mode\": \"opt\"},\n)\n\nconfig_setting(\n    name = \"development\",\n    values = {\"compilation_mode\": \"fastbuild\"},\n)\n\nconfig_setting(\n    name = \"debug\",\n    values = {\"compilation_mode\": \"dbg\"},\n)\n\n# The GHC bindists provide us with a set of builtin libraries.\n# We use them rather than looking up those in stackage.\n\nhaskell_toolchain_library(name = \"base\")\n\nhaskell_toolchain_library(name = \"bytestring\")\n\nhaskell_toolchain_library(name = \"containers\")\n\nhaskell_toolchain_library(name = \"deepseq\")\n\nhaskell_toolchain_library(name = \"filepath\")\n\nhaskell_toolchain_library(name = \"ghc-prim\")\n\nhaskell_toolchain_library(name = \"text\")\n\nhaskell_toolchain_library(name = \"haskeline\")\n\nhaskell_toolchain_library(name = \"process\")\n\nhaskell_toolchain_library(name = \"template-haskell\")\n\nhaskell_toolchain_library(name = \"transformers\")\n\n# This repl target is used by hie-bios + ghcide.\n\nhaskell_repl(\n    name = \"hie-bios\",\n    collect_data = False,\n    deps = [\"//semantic\"],\n)\n"
  },
  {
    "path": "CODEOWNERS",
    "content": "* @github/semantic-code\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to making participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, sex characteristics, gender identity and expression,\nlevel of experience, education, socio-economic status, nationality, personal\nappearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment\ninclude:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or\n  advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic\n  address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the project team at opensource@github.com. All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. The project team is\nobligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,\navailable at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html\n\n[homepage]: https://www.contributor-covenant.org\n\nFor answers to common questions about this code of conduct, see\nhttps://www.contributor-covenant.org/faq\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "## Contributing\n\n[fork]: https://github.com/github/semantic-open-source/fork\n[pr]: https://github.com/github/semantic-open-source/compare\n[style]: docs/coding-style.md\n[code-of-conduct]: CODE_OF_CONDUCT.md\n\nHi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great.\n\nWe're happy to accept code and documentation contributions, as well as issues suggesting new features, asking questions about how things work, or generally about what we're trying to accomplish! However, we are not opening up the code review process to the public. PRs should _only_ be reviewed by one of the project maintainers. Therefore, we ask that you refrain from leaving approvals or change requests on in-progress pull requests, as spurious reviews make it difficult to discern which patches are truly ready for integration.\n\nContributions to this project are [released](https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license) to the public under the [project's open source license](LICENSE.md).\n\nPlease note that this project is released with a [Contributor Code of Conduct][code-of-conduct]. By participating in this project you agree to abide by its terms.\n\n## Submitting a pull request\n\n0. [Fork][fork] and clone the repository\n0. Configure and install the dependencies: `script/bootstrap`\n0. Make sure the tests pass on your machine: `cabal v2-test`\n0. Create a new branch: `git checkout -b my-branch-name`\n0. Make your change, add tests, and make sure the tests still pass\n0. Push to your fork and [submit a pull request][pr]\n0. Pat yourself on the back and wait for your pull request to be reviewed and merged.\n\nHere are a few things you can do that will increase the likelihood of your pull request being accepted:\n\n- Follow the [style guide][style].\n- Write tests.\n- Keep your change as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as separate pull requests.\n- Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).\n\nUnless you are a member of the Semantic team or a code owner, we ask that you refrain from leaving approvals or change requests on in-progress pull requests, as spurious reviews make it difficult to discern which patches are truly ready for integration.\n\nPlease be aware that contributions to Semantic may multiple cycles of code review—we are grateful for all community involvement, but because Semantic powers real systems, we must maintain a high standard of code quality. For reasons of compatibility with production uses of Semantic within GitHub, we may also reject or require modifications to changes that would affect these systems. We may also reject patches that don't fit with our vision of the project; should this be the case, we will be clear about our rationale.\n\n## Resources\n\n- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/)\n- [Using Pull Requests](https://help.github.com/articles/about-pull-requests/)\n- [GitHub Help](https://help.github.com)\n"
  },
  {
    "path": "Dockerfile",
    "content": "# Put protoc and twirp tooling in its own image\nFROM haskell:8.8.1 as haskell\nRUN cabal v2-update && \\\n    cabal v2-install proto-lens-protoc\nRUN which proto-lens-protoc\n\nFROM golang:1.13-stretch AS protoc\nRUN apt-get update && apt-get install -y unzip\nENV PROTOBUF_VERSION=3.7.1\nRUN wget \"https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/protoc-$PROTOBUF_VERSION-linux-x86_64.zip\" && \\\n    unzip \"protoc-$PROTOBUF_VERSION-linux-x86_64.zip\" -d \"/protobuf\"\n\nRUN go get github.com/golang/protobuf/proto && \\\n    go get github.com/twitchtv/protogen/typemap && \\\n    GO111MODULE=on go get github.com/tclem/proto-lens-jsonpb/protoc-gen-jsonpb_haskell@e4d10b77f57ee25beb759a33e63e2061420d3dc2\n\nCOPY --from=haskell /root/.cabal/bin/proto-lens-protoc /usr/local/bin/proto-lens-protoc\n\n# Bit of a hack so that proto-lens-protoc actually runs\nCOPY --from=haskell /opt/ghc/8.8.1/lib/ghc-8.8.1/* /opt/ghc/8.8.1/lib/ghc-8.8.1/\n\nENTRYPOINT [\"/protobuf/bin/protoc\", \"-I/protobuf\", \"--plugin=protoc-gen-haskell=/usr/local/bin/proto-lens-protoc\"]\n\n# Build semantic\nFROM haskell:8.8.1 as build\nWORKDIR /build\n\n# Build all of semantic\nCOPY . .\nRUN cabal v2-update && \\\n    cabal v2-configure --flags=\"release\" && \\\n    cabal v2-build semantic:exe:semantic\n\n# A fake `install` target until we can get `cabal v2-install` to work\nRUN cp $(find dist-newstyle/build/x86_64-linux -name semantic -type f -perm -u=x) /usr/local/bin/semantic\n\n# Create a fresh image containing only the compiled CLI program, so that the\n# image isn't bulked up by all of the extra build state.\nFROM debian:stretch-slim\n\nRUN apt-get update && \\\n  apt-get install -y \\\n    libgmp10 \\\n    && \\\n  apt-get autoremove -y && \\\n  apt-get clean -y && \\\n  rm -rf /var/lib/apt/lists/*\n\nCOPY --from=build /usr/local/bin/semantic /usr/local/bin/semantic\n\nENTRYPOINT [\"/usr/local/bin/semantic\"]\n"
  },
  {
    "path": "HACKING.md",
    "content": "# Effective `semantic` Hacking for Fun and Profit\n\nThe Semantic repository is a large one, containing dozens of subprojects. This means that GHC has to do a lot of work when compiling. For this reason, it's important to keep in mind the principles that will let you avoid recompiling the whole world as soon as you change a single .cabal file.\n\n## The Landscape\n\nWe officially recommend [Visual Studio Code](https://code.visualstudio.com) with the [`ghcide`](https://marketplace.visualstudio.com/items?itemName=DigitalAssetHoldingsLLC.ghcide) extension. Though our tooling scripts may work with other editor integration solutions, we can't guarantee that they'll do so indefinitely.\n\n## Things to Do\n\n1. *Use `script/repl`.* The REPL script is much more powerful than `cabal repl`; it ensures that all packages can be loaded (including tests), so you should be able to `:load` any on-disk package that you want—and you shouldn't have to restart the REPL every time you add a new file, as GHCi will optimistically read from any `import` statements it encounters. Keep in mind that `:load` accepts both file paths and module identifiers.\n\n2. *Use the editor integration.* There is no substitute for a workflow that allows you to fix errors without switching applications. If you're using tooling other than VS Code and `ghcide`, we recommend you configure its GHCi process to be `script/repl`.\n\n3. *Run tests in the REPL.* Unlike `cabal repl`, all the testing packages are loaded into the REPL, so you can `:load` a path to a test file and invoke the relevant test with `main`. This will enable the fastest fix/build/test cycle possible. It may take some time to get used to avoiding `cabal test`. If all you're wanting to see is if the `semantic` CLI tool builds correctly, `:load src/Semantic/CLI.hs`.\n\n4. *If you have to build, be sure to disable optimizations and parallelize aggressively.* `cabal` builds with `-O1` on by default; this entails a significant hit to compile speed. If you find yourself building some product repeatedly, add `optimizations: False`.\n\n5. *Turn on stylish-haskell integration.* Most editors are capable of running Haskell code through `stylish-haskell` on save; enabling this does wonders towards keeping your code in compliance with our style guide, frees you from having to fret over the minor details of how something should be formatted, and saves us time in the review process. The VSCode extension for `stylish-haskell` can be found here.\n\n## Things to Avoid\n\n1. *Don't `cabal clean`*. `cabal clean` doesn't take any arguments that determine what to clean; as such, running it will clean everything, including the language ASTs, which take some time to recompile.\n\n2. *Don't `cabal configure` if humanly possible*. It nukes all your build caches. Should you need to modify a global build setting, edit `cabal.project.local` manually.\n\n3. *Write small modules with minimal dependencies.* Keep the code that deals with language ASTs well-isolated.\n\n4. *Avoid fancy type tricks if possible.* Techniques like [advanced overlap](https://wiki.haskell.org/GHC/AdvancedOverlap) can save on boilerplate but may not be worth the pain it puts the type checker through. If the only downside to avoiding a fancy type trick is some boilerplate, consider that boilerplate is often preferable to slowing down everyone's build for the indefinite future.\n"
  },
  {
    "path": "README.md",
    "content": "**NOTE**: _This repository is no longer supported or updated by GitHub. If you wish to continue to develop this code yourself, we recommend you fork it._\n\n# Semantic\n\n`semantic` is a Haskell library and command line tool for parsing, analyzing, and comparing source code.\n\nIn a hurry? Check out our documentation of [example uses for the `semantic` command line tool](docs/examples.md).\n\n| Table of Contents |\n| :------------- |\n| [Usage](#usage) |\n| [Language support](#language-support) |\n| [Development](#development) |\n| [Technology and architecture](#technology-and-architecture) |\n| [Licensing](#licensing) |\n\n## Usage\n\nRun `semantic --help` for complete list of up-to-date options.\n\n#### Parse\n```\nUsage: semantic parse [--sexpression | (--json-symbols|--symbols) |\n                        --proto-symbols | --show | --quiet] [FILES...]\n  Generate parse trees for path(s)\n\nAvailable options:\n  --sexpression            Output s-expression parse trees (default)\n  --json-symbols,--symbols Output JSON symbol list\n  --proto-symbols          Output protobufs symbol list\n  --show                   Output using the Show instance (debug only, format\n                           subject to change without notice)\n  --quiet                  Don't produce output, but show timing stats\n  -h,--help                Show this help text\n   ```\n\n## Language support\n\n| Language       | Parse | AST Symbols† | Stack graphs |\n| :------------- | :---: | :---:        | :---:        |\n| Ruby           | ✅    | ✅           | |\n| JavaScript     | ✅    | ✅           | |\n| TypeScript     | ✅    | ✅           | 🚧 |\n| Python         | ✅    | ✅           | 🚧 |\n| Go             | ✅    | ✅           | |\n| PHP            | ✅    | ✅           | |\n| Java           | 🚧    | ✅           | |\n| JSON           | ✅    | ⬜️           | ⬜️ |\n| JSX            | ✅    | ✅           | |\n| TSX            | ✅    | ✅           | |\n| CodeQL         | ✅    | ✅           | |\n| Haskell        | 🚧    | 🚧           | |\n\n† Used for [code navigation](https://help.github.com/en/github/managing-files-in-a-repository/navigating-code-on-github) on github.com.\n* ✅ — Supported\n* 🔶 — Partial support\n* 🚧 — Under development\n* ⬜ - N/A ️\n\n\n## Development\n\n`semantic` requires at least GHC 8.10.1 and Cabal 3.0. We strongly recommend using [`ghcup`][ghcup] to sandbox GHC versions, as GHC packages installed through your OS's package manager may not install statically-linked versions of the GHC boot libraries. `semantic` currently builds only on Unix systems; users of other operating systems may wish to use the [Docker images](https://github.com/github/semantic/packages/11609).\n\nWe use `cabal's` [Nix-style local builds][nix] for development. To get started quickly:\n\n```bash\ngit clone git@github.com:github/semantic.git\ncd semantic\nscript/bootstrap\ncabal v2-build all\ncabal v2-run semantic:test\ncabal v2-run semantic:semantic -- --help\n```\n\nYou can also use the [Bazel](https://bazel.build) build system for development. To learn more about Bazel and why it might give you a better development experience, check the [build documentation](docs/build.md).\n\n``` bash\ngit clone git@github.com:github/semantic.git\ncd semantic\nscript/bootstrap-bazel\nbazel build //...\n```\n\n\n `stack` as a build tool is not officially supported; there is [unofficial `stack.yaml` support](https://github.com/jkachmar/semantic-stack-yaml) available, though we cannot make guarantees as to its stability.\n\n[nix]: https://cabal.readthedocs.io/en/3.4/nix-local-build-overview.html\n[ghcup]: https://www.haskell.org/ghcup/\n\n## Technology and architecture\n\nArchitecturally, `semantic`:\n1. Generates per-language Haskell syntax types based on [tree-sitter](https://github.com/tree-sitter/tree-sitter) grammar definitions.\n2. Reads blobs from a filesystem or provided via a protocol buffer request.\n3. Returns blobs or performs analysis.\n4. Renders output in one of many supported formats.\n\nThroughout its lifecycle, `semantic` has leveraged a number of interesting algorithms and techniques, including:\n\n- Myers' algorithm (SES) as described in the paper [*An O(ND) Difference Algorithm and Its Variations*][SES]\n- RWS as described in the paper [*RWS-Diff: Flexible and Efficient Change Detection in Hierarchical Data*][RWS].\n- Open unions and [data types à la carte](https://www.cambridge.org/core/journals/journal-of-functional-programming/article/data-types-a-la-carte/14416CB20C4637164EA9F77097909409).\n- An implementation of [Abstracting Definitional Interpreters][adi] extended to work with an à la carte representation of syntax terms.\n\n[SES]: http://www.xmailserver.org/diff2.pdf\n[RWS]: https://db.in.tum.de/~finis/papers/RWS-Diff.pdf\n[adi]: https://plum-umd.github.io/abstracting-definitional-interpreters/\n[tree-sitter]: https://github.com/tree-sitter/tree-sitter\n\n## Contributions\n\nContributions are welcome!  Please see our [contribution\nguidelines](CONTRIBUTING.md) and our [code of conduct](CODE_OF_CONDUCT.md) for\ndetails on how to participate in our community.\n\n## Licensing\n\nSemantic is licensed under the [MIT license](semantic/LICENSE).\n"
  },
  {
    "path": "WORKSPACE",
    "content": "# This file defines the workspace for the Semantic monorepo.\n# It loads the Haskell compilation rules, describes the packages\n# that we use from Stackage, and pins the tree-sitter packages\n# so that we can access their node-types.json files.\n\nworkspace(name = \"semantic\")\n\n# Load the repository rule to download an http archive.\nload(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\n\n# Download rules_haskell and make it accessible as \"@rules_haskell\".\n#\n# Note: the git_repository clause is a workaround until rules_haskell#1349 [1]\n# is released.  One it's released, revert back to the http_archive clause with\n# an updated version.\n#\n# [1] https://github.com/tweag/rules_haskell/issues/1349\nhttp_archive(\n    name = \"rules_haskell\",\n    sha256 = \"cd07e421281c3ad286574ae235f39165e294c850fa4cdf03b5683547d8822c34\",\n    strip_prefix = \"rules_haskell-1254b1d9bee9e82cd70c4f7941cb64b8ec048bac\",\n    urls = [\"https://github.com/tweag/rules_haskell/archive/1254b1d9bee9e82cd70c4f7941cb64b8ec048bac.tar.gz\"],\n)\n\nload(\n    \"@rules_haskell//haskell:repositories.bzl\",\n    \"rules_haskell_dependencies\",\n)\n\n# Setup all Bazel dependencies required by rules_haskell.\nrules_haskell_dependencies()\n\nload(\n    \"@rules_haskell//haskell:toolchain.bzl\",\n    \"rules_haskell_toolchains\",\n)\n\n# Download a GHC binary distribution from haskell.org and register it as a toolchain.\nrules_haskell_toolchains(\n    locale = \"en_US.UTF-8\",\n    version = \"8.10.2\",\n)\n\n# Enable GHC persistent worker mode, if that's your bag.\nload(\"@rules_haskell//tools:repositories.bzl\", \"rules_haskell_worker_dependencies\")\n\nrules_haskell_worker_dependencies()\n\nload(\n    \"@rules_haskell//haskell:cabal.bzl\",\n    \"stack_snapshot\",\n)\n\n# This call establishes a @stackage repository, and describes what packages\n# we use from Stackage. The resolver, as well as the non-Stackage packages\n# on which we depend, are specified in stack-snapshot.yaml.\nstack_snapshot(\n    name = \"stackage\",\n    local_snapshot = \"//:stack-snapshot.yaml\",\n    packages = [\n        \"Glob\",\n        \"HUnit\",\n        \"QuickCheck\",\n        \"aeson\",\n        \"aeson-pretty\",\n        \"algebraic-graphs\",\n        \"ansi-terminal\",\n        \"async\",\n        \"attoparsec\",\n        \"base\",\n        \"base64-bytestring\",\n        \"bazel-runfiles\",\n        \"bifunctors\",\n        \"bytestring\",\n        \"containers\",\n        \"deepseq\",\n        \"directory\",\n        \"directory-tree\",\n        \"doctest\",\n        \"filepath\",\n        \"foldl\",\n        \"fused-effects\",\n        \"fused-effects-exceptions\",\n        \"fused-effects-readline\",\n        \"gauge\",\n        \"generic-lens\",\n        \"generic-monoid\",\n        \"hashable\",\n        \"haskeline\",\n        \"hedgehog\",\n        \"hostname\",\n        \"hscolour\",\n        \"hspec\",\n        \"hspec-core\",\n        \"hspec-expectations\",\n        \"lens\",\n        \"lingo\",\n        \"neat-interpolation\",\n        \"network\",\n        \"network-uri\",\n        \"optparse-applicative\",\n        \"optparse-generic\",\n        \"parsers\",\n        \"pathtype\",\n        \"pretty-show\",\n        \"pretty-simple\",\n        \"prettyprinter\",\n        \"prettyprinter-ansi-terminal\",\n        \"process\",\n        \"proto-lens\",\n        \"proto-lens-jsonpb\",\n        \"proto-lens-runtime\",\n        \"raw-strings-qq\",\n        \"recursion-schemes\",\n        \"reducers\",\n        \"resourcet\",\n        \"safe-exceptions\",\n        \"scientific\",\n        \"semigroupoids\",\n        \"semilattices\",\n        \"split\",\n        \"stm-chans\",\n        \"streaming\",\n        \"tasty\",\n        \"tasty-golden\",\n        \"tasty-hedgehog\",\n        \"tasty-hspec\",\n        \"tasty-hunit\",\n        \"template-haskell\",\n        \"temporary\",\n        \"terminal-size\",\n        \"text\",\n        \"time\",\n        \"transformers\",\n        \"tree-sitter\",\n        \"trifecta\",\n        \"unix\",\n        \"unordered-containers\",\n        \"vector\",\n        \"yaml\",\n    ],\n    stack_snapshot_json = \"//:stackage_snapshot.json\",\n    tools = [\"@happy\"],\n    vendored_packages = {\n        \"tree-sitter-{}\".format(name): \"@tree-sitter-{name}//:tree-sitter-{name}\".format(name = name)\n        for name in [\n            \"go\",\n            \"java\",\n            \"json\",\n            \"php\",\n            \"python\",\n            \"ql\",\n            \"ruby\",\n            \"rust\",\n            \"tsx\",\n            \"typescript\",\n        ]\n    },\n)\n\n# Download Happy and make it accessible to the build process.\nhttp_archive(\n    name = \"happy\",\n    build_file_content = \"\"\"\nload(\"@rules_haskell//haskell:cabal.bzl\", \"haskell_cabal_binary\")\nhaskell_cabal_binary(name = \"happy\", srcs = glob([\"**\"]), visibility = [\"//visibility:public\"])\n    \"\"\",\n    sha256 = \"fb9a23e41401711a3b288f93cf0a66db9f97da1ce32ec4fffea4b78a0daeb40f\",\n    strip_prefix = \"happy-1.19.12\",\n    urls = [\"http://hackage.haskell.org/package/happy-1.19.12/happy-1.19.12.tar.gz\"],\n)\n\n# Pin the various tree-sitter packages so that we can access their\n# node-types.json files.\n\nload(\n    \"//:build/common.bzl\",\n    \"tree_sitter_node_types_hackage\",\n)\n\ntree_sitter_node_types_hackage(\n    name = \"tree-sitter-go\",\n    sha256 = \"72a1d3bdb2883ace3f2de3a0f754c680908489e984503f1a66243ad74dc2887e\",\n    version = \"0.5.0.2\",\n)\n\ntree_sitter_node_types_hackage(\n    name = \"tree-sitter-python\",\n    sha256 = \"f028c88eabbda9b9bb67895922d753a12ddda83fb917748e0e407e50616b51ae\",\n    version = \"0.9.0.3\",\n)\n\ntree_sitter_node_types_hackage(\n    name = \"tree-sitter-php\",\n    sha256 = \"70fd9f5cc429fa2b59adaa86853fb111f733889f0b2996328efd885903d7ce16\",\n    version = \"0.5.0.1\",\n)\n\ntree_sitter_node_types_hackage(\n    name = \"tree-sitter-java\",\n    sha256 = \"569fa1240cdb7db8436201962933c97dd2c502ed65bd4788880238201c67a1c6\",\n    version = \"0.7.0.2\",\n)\n\ntree_sitter_node_types_hackage(\n    name = \"tree-sitter-json\",\n    sha256 = \"8fbc478268849c16bc7ff85dd6634bb849400bda98575fe26681224a640b9e0a\",\n    version = \"0.7.0.2\",\n)\n\ntree_sitter_node_types_hackage(\n    name = \"tree-sitter-typescript\",\n    node_types_path = \":vendor/tree-sitter-typescript/typescript/src/node-types.json\",\n    sha256 = \"d1cd258e5c83d557ab3481e08c2e8c29ee689e2a9de89b6f72c12080f48c9c62\",\n    version = \"0.5.0.2\",\n)\n\ntree_sitter_node_types_hackage(\n    name = \"tree-sitter-tsx\",\n    node_types_path = \":vendor/tree-sitter-typescript/tsx/src/node-types.json\",\n    sha256 = \"20115194b7e87d53e8ad42a9d5ef212186040e543ccf295135b1342ec6b12447\",\n    version = \"0.5.0.2\",\n)\n\ntree_sitter_node_types_hackage(\n    name = \"tree-sitter-ruby\",\n    sha256 = \"b6bb1fcb23e283f28af2d1ac9444ed63bb7b9f396034d13db62553d998cefc24\",\n    version = \"0.5.0.3\",\n)\n\ntree_sitter_node_types_hackage(\n    name = \"tree-sitter-ql\",\n    sha256 = \"d15eff87a292ec4559295676afbf0e5a763f5f7e7636411933109880c3fd5c5d\",\n    version = \"0.1.0.4\",\n)\n\ntree_sitter_node_types_hackage(\n    name = \"tree-sitter-rust\",\n    sha256 = \"00bc04a31b5c9b0f9b419074238996ee4aadba342e68071ec516077b495e0d41\",\n    version = \"0.1.0.1\",\n)\n\nload(\"//:build/example_repos.bzl\", \"declare_example_repos\")\n\ndeclare_example_repos()\n"
  },
  {
    "path": "build/common.bzl",
    "content": "# This file lets us share warnings and such across the project\n\nload(\n    \"@rules_haskell//haskell:defs.bzl\",\n    \"haskell_library\",\n    \"haskell_test\",\n)\nload(\n    \"@bazel_tools//tools/build_defs/repo:http.bzl\",\n    \"http_archive\",\n)\n\nDEVELOPMENT_GHC_FLAGS = [\"-O0\"]\nRELEASE_GHC_FLAGS = [\"-O1\"]\n\nGHC_FLAGS = [\n    \"-v1\",\n    \"-j8\",\n    \"-fdiagnostics-color=always\",\n    \"-ferror-spans\",\n    \"-Weverything\",\n    \"-Wno-missing-local-signatures\",\n    \"-Wno-missing-import-lists\",\n    \"-Wno-implicit-prelude\",\n    \"-Wno-safe\",\n    \"-Wno-unsafe\",\n    \"-Wno-name-shadowing\",\n    \"-Wno-monomorphism-restriction\",\n    \"-Wno-missed-specialisations\",\n    \"-Wno-all-missed-specialisations\",\n    \"-Wno-star-is-type\",\n    \"-Wno-missing-deriving-strategies\",\n    \"-DBAZEL_BUILD=1\",\n    \"-Wno-unused-packages\",\n    \"-Wno-prepositive-qualified-module\",\n    \"-Wno-missing-safe-haskell-mode\",\n] + select(\n    {\n        \"//:release\": RELEASE_GHC_FLAGS,\n        \"//:development\": DEVELOPMENT_GHC_FLAGS,\n        \"//:debug\": DEVELOPMENT_GHC_FLAGS,\n    },\n)\n\nEXECUTABLE_FLAGS = [\n    \"-threaded\",\n]\n\n# Now we start declaring macros to help us with common patterns\n# such as pulling tree-sitter grammars from releases/git hashes.\n\n_tree_sitter_language_build = \"\"\"\npackage(default_visibility = [\"//visibility:public\"])\n\nload(\"@rules_haskell//haskell:cabal.bzl\", \"haskell_cabal_library\")\nload(\"@stackage//:packages.bzl\", \"packages\")\nexports_files(glob([\"**/node-types.json\"]))\n\nalias(\n   name = \"src/node-types.json\",\n   actual = \"{node_types_path}\",\n)\n\nhaskell_cabal_library(\n    name = \"{name}\",\n    version = \"{version}\",\n    srcs = glob([\"**\"]),\n    deps = packages[\"{name}\"].deps,\n    visibility = [\"//visibility:public\"],\n)\n\nfilegroup(name = \"corpus\", srcs = glob([\"**/corpus/*.txt\"]))\n\"\"\"\n\ndef tree_sitter_node_types_hackage(name, version, sha256, node_types_path = \"\"):\n    \"\"\"Download a tree-sitter language package from Hackage and build/expose its library and corpus.\"\"\"\n\n    if node_types_path == \"\":\n        node_types_path = \":vendor/{}/src/node-types.json\".format(name)\n\n    info = {\n        \"name\": name,\n        \"version\": version,\n        \"node_types_path\": node_types_path,\n    }\n    http_archive(\n        name = name,\n        build_file_content = _tree_sitter_language_build.format(**info),\n        urls = [\"https://hackage.haskell.org/package/{name}-{version}/{name}-{version}.tar.gz\".format(**info)],\n        strip_prefix = \"{name}-{version}\".format(**info),\n        sha256 = sha256,\n    )\n\n# These macros declare library targets inside the language packages.\n\ndef semantic_language_library(language, name, srcs, ts_package = \"\", nodetypes = \"\"):\n    \"\"\"Create a new library target with dependencies needed for a language-AST project.\"\"\"\n    if nodetypes == \"\":\n        nodetypes = \"@tree-sitter-{}//:src/node-types.json\".format(language)\n    if ts_package == \"\":\n        ts_package = language\n    haskell_library(\n        name = name,\n        # We can't use Template Haskell to find out the location of the\n        # node-types.json files, but we can pass it in as a preprocessor\n        # directive.\n        compiler_flags = GHC_FLAGS + [\n            '-DNODE_TYPES_PATH=\"../../../../$(rootpath {})\"'.format(nodetypes),\n        ],\n        repl_ghci_args = GHC_FLAGS + [\n            '-DNODE_TYPES_PATH=\"../../../../$(rootpath {})\"'.format(nodetypes),\n        ],\n        srcs = srcs,\n        extra_srcs = [nodetypes, \"@tree-sitter-{}//:corpus\".format(ts_package)],\n        deps = [\n            \"//:base\",\n            \"//:containers\",\n            \"//:template-haskell\",\n            \"//:text\",\n            \"//semantic-analysis\",\n            \"//semantic-ast\",\n            \"//semantic-proto\",\n            \"//semantic-scope-graph\",\n            \"//semantic-source\",\n            \"//semantic-tags\",\n            \"@stackage//:aeson\",\n            \"@stackage//:algebraic-graphs\",\n            \"@stackage//:fused-effects\",\n            \"@stackage//:generic-lens\",\n            \"@stackage//:hashable\",\n            \"@stackage//:lens\",\n            \"@stackage//:pathtype\",\n            \"@stackage//:semilattices\",\n            \"@stackage//:tree-sitter\",\n            \"@stackage//:tree-sitter-\" + language,\n        ],\n    )\n\ndef semantic_language_parsing_test(language, semantic_package = \"\", ts_package = \"\"):\n    if semantic_package == \"\":\n        semantic_package = language\n    if ts_package == \"\":\n        ts_package = language\n    haskell_test(\n        name = \"test\",\n        srcs = [\"test/PreciseTest.hs\"],\n        data = [\"@tree-sitter-{}//:corpus\".format(ts_package)],\n        tags = [\"language-test\"],\n        deps = [\n            \":semantic-{}\".format(language),\n            \"//:base\",\n            \"//:bytestring\",\n            \"//:text\",\n            \"//semantic-ast\",\n            \"@stackage//:bazel-runfiles\",\n            \"@stackage//:hedgehog\",\n            \"@stackage//:pathtype\",\n            \"@stackage//:tasty\",\n            \"@stackage//:tasty-hedgehog\",\n            \"@stackage//:tasty-hunit\",\n            \"@stackage//:tree-sitter-\" + semantic_package,\n        ],\n    )\n"
  },
  {
    "path": "build/example_repos.bzl",
    "content": "load(\n    \"@bazel_tools//tools/build_defs/repo:http.bzl\",\n    \"http_archive\",\n)\n\n_all_example_repos = {\n    \"numpy\": {\n        \"data\": [\n            \"**/*.py\",\n        ],\n        \"commit\": \"058851c5cfc98f50f11237b1c13d77cfd1f40475\",\n        \"repo\": \"numpy/numpy\",\n        \"sha256\": \"8e60c567cbab3309afa9508ee61dfd207089ebb0056214fe60e863d81e098824\",\n    },\n    \"python\": {\n        \"data\": [\n            \"**/*.py\",\n        ],\n        \"commit\": \"c6be53e1c43f870f5364eef1499ee1b411c966fb\",\n        \"repo\": \"thealgorithms/python\",\n        \"prefix\": \"Python\",\n        \"sha256\": \"bef087151bea1e479701d0ceed831809c1b916f513752dee914e9c7876b46ea9\",\n        \"excludes\": [\n            \"**/data structures/*\",\n            \"**/binary tree/*\",\n            \"**/graphs/*\",\n            \"**/Random Forest*/*\",\n            \"**/* */*\",\n        ],\n    },\n    \"flask\": {\n        \"data\": [\n            \"**/*.py\",\n        ],\n        \"commit\": \"0b5b4a66ef99c8b91569dd9b9b34911834689d3f\",\n        \"repo\": \"pallets/flask\",\n        \"sha256\": \"224d406f11b13cc8e4c7defd8dc94e0df957c1c90977172cfaa2ee88d8f85e77\",\n    },\n    \"httpie\": {\n        \"data\": [\n            \"**/*.py\",\n        ],\n        \"commit\": \"358342d1c915d6462a080a77aefbb20166d0bd5d\",\n        \"repo\": \"jakubroztocil/httpie\",\n        \"sha256\": \"2b3172369954d883a2a609dc6bc34a944ce9817afb14733d87f208a40529899c\",\n    },\n    \"keras\": {\n        \"data\": [\n            \"**/*.py\",\n        ],\n        \"commit\": \"e59570ae26670f788d6c649191031e4a8824f955\",\n        \"repo\": \"keras-team/keras\",\n        \"sha256\": \"2bda5bfd2a2b43d9f4d191e4ed980740429bb86d75e16355b1d33faf9d974ffd\",\n    },\n    \"requests\": {\n        \"data\": [\n            \"**/*.py\",\n        ],\n        \"commit\": \"64bde6582d9b49e9345d9b8df16aaa26dc372d13\",\n        \"sha256\": \"8f9466ad314b2741c826b164b46bcedb260d424f717fd9553fea5164f493bd20\",\n        \"repo\": \"requests/requests\",\n    },\n    \"scikit-learn\": {\n        \"data\": [\n            \"**/*.py\",\n        ],\n        \"commit\": \"d0f63a760d9993a7f68cfc5e1a075700d67c53d3\",\n        \"repo\": \"scikit-learn/scikit-learn\",\n        \"sha256\": \"4f337b87d45cabd7db9cd3883fd5168accad7f78bc48df3ae633832b4d0f30d0\",\n    },\n    \"scrapy\": {\n        \"data\": [\n            \"**/*.py\",\n        ],\n        \"commit\": \"65d631329a1434ec013f24341e4b8520241aec70\",\n        \"sha256\": \"27b2dc9b1a55c356eeec651c76fe82be082c0e8980b2e4d9b99a4f63c733685b\",\n        \"repo\": \"scrapy/scrapy\",\n    },\n    \"pytorch\": {\n        \"data\": [\n            \"**/*.py\",\n        ],\n        \"commit\": \"c865d46736db4afff51690a712e35ed8e3899490\",\n        \"repo\": \"pytorch/pytorch\",\n        \"sha256\": \"7b54b7a3c40aaf68bb9bd7dcc509389d29c5c37241f29c003bd04cd0dafb60ce\",\n    },\n    \"certbot\": {\n        \"data\": [\n            \"**/*.py\",\n        ],\n        \"commit\": \"bb8222200a8cbd39a3ce9584ce6dfed6c5d05228\",\n        \"sha256\": \"3477f4c04897f7874249e6362567384246f409c62e1ff18c4d6fa54813f484c2\",\n        \"repo\": \"certbot/certbot\",\n    },\n    \"spec\": {\n        \"data\": [\n            \"**/*.rb\",\n        ],\n        \"commit\": \"c3e6b9017926f44a76e2b966c4dd35fa84c4cd3b\",\n        \"repo\": \"ruby/spec\",\n        \"sha256\": \"33206954ff6fdbf5b872298efc2697c18ad5371eb55007d54f95c08ec7f46bb4\",\n    },\n    \"desktop\": {\n        \"data\": [\n            \"**/*.[tj]s\",\n        ],\n        \"commit\": \"d1324f56d02dd9afca5d2e9da545905a7d41d671\",\n        \"repo\": \"desktop/desktop\",\n        \"sha256\": \"cfd1c6d313ff4e756b59da83f3f7799e021e0d0fe94ee4a93638c9b1aa19b5ca\",\n    },\n}\n\nSEMANTIC_EXTERNAL_TEST_REPOSITORIES = [\"@\" + k + \"//:src\" for (k, v) in _all_example_repos.items()]\n\ndef _example_repo(name, data, repo, commit, since = \"\", excludes = [], sha256 = \"\", prefix = \"\"):\n    if prefix == \"\":\n        prefix = name\n\n    http_archive(\n        name = name,\n        build_file_content = \"\"\"\nfilegroup(\n    name = \"src\",\n    data = glob(include = {}, exclude={}),\n    visibility = [\"//visibility:public\"]\n)\n\"\"\".format(data, excludes),\n        strip_prefix = prefix + \"-\" + commit,\n        sha256 = sha256,\n        urls = [\"https://github.com/{repo}/archive/{commit}.tar.gz\".format(repo = repo, commit = commit)],\n    )\n\ndef declare_example_repos():\n    for k, kwargs in _all_example_repos.items():\n        _example_repo(name = k, **kwargs)\n"
  },
  {
    "path": "cabal.project",
    "content": "-- ATTENTION: care must be taken to keep this file in sync with cabal.project.ci and script/ghci-flags. If you add a package here, add it there (and add a package stanza with ghc-options to enable errors in CI at the bottom of that file).\n\n-- Local packages\npackages: semantic\n          semantic-analysis\n          semantic-ast\n          semantic-codeql\n          semantic-go\n          semantic-java\n          semantic-json\n          semantic-parse\n          semantic-php\n          semantic-proto\n          semantic-python\n          semantic-ruby\n          semantic-rust\n          semantic-scope-graph\n          semantic-tags\n          semantic-tsx\n          semantic-typescript\n"
  },
  {
    "path": "cabal.project.ci",
    "content": "-- ATTENTION: care must be taken to keep this file in sync with cabal.project and script/ghci-flags. If you add a package here, add it there (and add a package stanza with ghc-options to enable errors in CI at the bottom of this file).\n\n-- Local packages\npackages: semantic\n          semantic-analysis\n          semantic-ast\n          semantic-codeql\n          semantic-go\n          semantic-java\n          semantic-json\n          semantic-parse\n          semantic-php\n          semantic-proto\n          semantic-python\n          semantic-ruby\n          semantic-rust\n          semantic-scope-graph\n          semantic-tags\n          semantic-tsx\n          semantic-typescript\n\n-- Treat warnings as errors for CI builds\npackage semantic\n  ghc-options: -Werror\n\npackage semantic-analysis\n  ghc-options: -Werror\n\npackage semantic-ast\n  ghc-options: -Werror\n\npackage semantic-codeql\n  ghc-options: -Werror\n\npackage semantic-go\n  ghc-options: -Werror\n\npackage semantic-java\n  ghc-options: -Werror\n\npackage semantic-json\n  ghc-options: -Werror\n\npackage semantic-parse\n  ghc-options: -Werror\n\npackage semantic-python\n  ghc-options: -Werror\n\npackage semantic-ruby\n  ghc-options: -Werror\n\npackage semantic-scope-graph\n  ghc-options: -Werror\n\npackage semantic-tags\n  ghc-options: -Werror\n\npackage semantic-tsx\n  ghc-options: -Werror\n\npackage semantic-typescript\n  ghc-options: -Werror\n"
  },
  {
    "path": "docs/adding-new-languages.md",
    "content": "# Adding new languages to Semantic\n\nThis document outlines the process for adding a new language to Semantic. Though the Semantic authors have architected the library such that adding new languages and syntax [requires no changes to existing code](https://en.wikipedia.org/wiki/Expression_problem), adding support for a new language is a nontrivial amount of work. Those willing to take the plunge will probably need a degree of Haskell experience.\n\nNote that we recently transitioned the system to auto-generate strongly-typed ASTs using [CodeGen](https://github.com/github/semantic/blob/master/docs/codegen.md), our new language support library. More information is provided below in the [FAQs](#FAQs).\n\n## The procedure\n\n1. **Find or write a [tree-sitter](https://tree-sitter.github.io) parser for your language.** The tree-sitter [organization page](https://github.com/tree-sitter) has a number of parsers beyond those we currently support in Semantic; look there first to make sure you're not duplicating work. The tree-sitter [documentation on creating parsers](http://tree-sitter.github.io/tree-sitter/creating-parsers) provides an exhaustive look at the process of developing and debugging tree-sitter parsers. Though we do not support grammars written with other toolkits such as [ANTLR](https://www.antlr.org), translating an ANTLR or other BNF-style grammar into a tree-sitter grammar is usually straightforward.\n2. **Create a Haskell library providing an interface to that C source.** The [`haskell-tree-sitter`](https://github.com/tree-sitter/haskell-tree-sitter) repository provides a Cabal package for each supported language. You can find an example of a pull request to add such a package [here](https://github.com/tree-sitter/haskell-tree-sitter/pull/276/files), and a file providing:\n    - A bridged (via the FFI) reference to the toplevel parser in the generated file must be provided ([example](https://github.com/tree-sitter/haskell-tree-sitter/blob/master/tree-sitter-json/TreeSitter/JSON.hs#L11)).\n    - A way to retrieve [`tree-sitter` data](https://github.com/tree-sitter/haskell-tree-sitter/blob/master/tree-sitter-json/TreeSitter/JSON.hs#L13-L14) used to auto-generate syntax datatypes using the following steps. During parser generation, tree-sitter produces a `node-types.json` file that captures the structure of a language's grammar. The autogeneration described below in Step 4 derives datatypes based on this structural representation. The `node-types.json` is a data file in `haskell-tree-sitter` that gets installed with the package. The function `getNodeTypesPath :: IO FilePath` is defined to access in the contents of this file, using `getDataFileName :: FilePath -> IO FilePath`, which is defined in the autogenerated `Paths_` module.\n3. **Create a Haskell library in Semantic to auto-generate precise ASTs.** Create a `semantic-[LANGUAGE]` package. This is an example of [`semantic-python`](https://github.com/github/semantic/tree/master/semantic-python)). Each package needs to provide the following API surfaces:\n    - `Language.[LANGUAGE].AST` - Derives Haskell datatypes from a language and its `node-types.json` file ([example](https://github.com/github/semantic/blob/master/semantic-python/src/Language/Python/AST.hs)).\n    - `Language.[LANGUAGE].Grammar` - Provides statically-known rules corresponding to symbols in the grammar for each syntax node, generated with the `mkStaticallyKnownRuleGrammarData` Template Haskell splice ([example](https://github.com/github/semantic/blob/master/semantic-python/src/Language/Python/Grammar.hs)).\n    - `Language.[LANGUAGE]` - Semantic functionality for programs in a language ([example](https://github.com/github/semantic/blob/master/semantic-python/src/Language/Python.hs)).\n    - `Language.[LANGUAGE].Tags` - Computes tags for code nav definitions and references found in source ([example](https://github.com/github/semantic/blob/master/semantic-python/src/Language/Python/Tags.hs)).\n5. **Add tests for precise ASTs, tagging and graphing, and evaluating code written in that language.** Because tree-sitter grammars often change, we require extensive testing so as to avoid the unhappy situation of bitrotted languages that break as soon as a new grammar comes down the line. Here are examples of tests for [precise ASTs](https://github.com/github/semantic/blob/master/semantic-python/test/PreciseTest.hs), [tagging](https://github.com/github/semantic/blob/master/test/Tags/Spec.hs), and [graphing](https://github.com/github/semantic/blob/master/semantic-python/test-graphing/GraphTest.hs).\n\nTo summarize, each interaction made possible by the Semantic CLI corresponds to one (or more) of the above steps:\n\n| Step | Interaction     |\n|------|-----------------|\n| 1, 2 | `ts-parse`      |\n| 3, 4 | `parse`, `diff` |\n| 5 | `graph`         |\n\n\n# FAQs\n\n**This sounds hard.** You're right! It is currently a lot of work: just because the Semantic architecture is extensible in the expression-problem manner does not mean that adding new support is trivial.\n\n**What recent changes have been made?** The Semantic authors have introduced a new architecture for language support and parsing, one that dispenses with the [assignment](https://github.com/github/semantic/blob/master/docs/assignment.md) step altogether. The `semantic-ast` package generates Haskell data types from tree-sitter grammars. As compared with the [historic process]() used to add new languages, these changes entire obviate the process of 1) assigning types into an open-union of syntax functors, and 2) implementing `Evaluatable` instances and adding value effects to describe the control flow of your language.\n"
  },
  {
    "path": "docs/build.md",
    "content": "# Bazel build instructions\n\nThe Semantic project supports builds with the Bazel build system. This is unconventional—most Haskell projects either use Cabal or Stack. However, for a project of Semantic's size, Bazel has many advantages. Some reasons you might want to use Bazel:\n\n* Bazel uses content-addressed hashing and reproducible builds to provide sophisticated caching. Situations where Cabal invalidates caches can result in cascading build requirements, causing many rebuilds of the language syntax packages.\n* Bazel's tooling is (on Emacs with lsp-mode and lsp-haskell) more reliable.\n* Bazel gets Haskell dependencies from Stackage LTS versions, so we avoid the rebuilds associated with living on the latest Hackage snapshot.\n\n## How do I get started?\n\nAssuming you're on macOS, run the script located at ~script/bootstrap-bazel~. This uses Homebrew to install Bazel and creates the `.bazel-cache` directory.\n\nThe first time you run `bazel build`, it'll take some time, as Bazel will compile all of Stackage. Fear not: you won't have to do this again.\n\n## `cabal` → `bazel` cheatsheet\n\n| Operation                    | `cabal`                             | `bazel`                                             |\n|------------------------------|-------------------------------------|-----------------------------------------------------|\n| Build all                    | `cabal build all`                   | `bazel build //...`                                 |\n| Build `TARGET` library       | `cabal build TARGET:lib`            | `bazel build //TARGET`                              |\n| Build semantic executable    | `cabal build semantic:exe:semantic` | `bazel build //semantic:exe`                        |\n| Build/run executable         | `cabal run semantic -- ARGS`        | `bazel run //semantic:exe -- ARGS`                  |\n| Load REPL component          | `script/ghci` and `:load`           | `bazel build //TARGET@repl`                         |\n| Run tests                    | `cabal test all`                    | `bazel test //...`                                  |\n| Build with optimizations     | `cabal build --flags=\"+release\"`    | `bazel build -c opt //...`                          |\n| Run all languages' AST tests | ETOOLONGTOWRITE                     | `bazel test --test_tag_filters=language-test //...` |\n\n## Adding a new dependency\n\nHere's a breakdown of how to add a new package.\n\n1. Make sure it's present in [Stackage LTS 13.15](https://www.stackage.org/lts-13.15). If not, add the package (versioned exactly) to the `stack-snapshot.yaml` file.\n2. Make sure it's linked into the `WORKSPACE` file, in the `stack_snapshot` call.\n3. Make sure it's present in your target's `deps` field.\n\nIf this seems complicated, don't worry: most of the time you'll be able to skip this first point, and you'll often be able to skip the second.\n\n## Things to know\n\n1. **Don't generally run `bazel clean`**. Since Bazel builds are reproducible, there's very little reason to clean, unless somehow your whole cache got irrevocably corrupted.\n2. **You can load a REPL for any target by appending `@repl`.** (with the exception of the language packages, due to [this](https://github.com/tweag/rules_haskell/issues/1377)).\n3. **Some packages come with GHC and are not loaded from Stackage**. These include `base`, `containers`, and [others](https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/8.10.1-notes.html?highlight=bytestring#included-libraries). To depend on those packages, you use `//:base`, `//:containers`, etc. They are specified in the `BAZEL.build` at the project root. You probably won't need to add any more.\n4. **Getting weird errors from the C compiler?** Try setting `export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1` in your `.profile` or whatnot.\n\n\n## Quick reference links\n\n* **Bazel manual**: https://docs.bazel.build/versions/3.3.0/bazel-overview.html\n* **`rules_haskell` manual**: https://rules-haskell.readthedocs.io\n* **`rules_haskell` API docs**: https://api.haskell.build\n\n## Conventions\n\nWe give library targets the same name as their subproject. Test targets are called `test`, and executable targets are `exe`.\n\nThe default `.bazelrc` file imports a `.bazelrc.local` file if it's present; use that for any Bazel customizations you want.\n\nThe variables that the scripts under `build/` export are SCREAMING_SNAKE_CASE. The functions are snake_case.\n\n## Shared variables\n\n* `GHC_FLAGS`: the standard set of Cabal flags that all targets should use.\n* `EXECUTABLE_FLAGS`: ditto, but with executable-specific flags.\n\n## Custom rules\n\nWe have two common custom rules, defined in `build/common.bzl`. The first, `tree_sitter_node_types_release`, uses the `http_archive` rule to download a specified tree-sitter grammar's `node-types.json` file. These calls declare new top-level targets, so they're only present in the top-level `WORKSPACE` file. The second, `semantic_language_library`, takes care of the boilerplate associated with declaring a target for a `semantic-LANG` language package (as these packages' contents are identical, their target declarations are almost identical).\n\nFor the purposes of setting up the examples upon which the `parse-examples` test depends, we have code in `build/example_repos.bzl` which defines them, checks them out, and computes the set of target names. You shouldn't need to change or modify this, unless you're adding new repos.\n\n## Protips\n\n* `bazel build --output_filter=REGEXP` does what it says on the tin.\n"
  },
  {
    "path": "docs/codegen.md",
    "content": "# CodeGen Documentation\n\nCodeGen is the process for auto-generating language-specific, strongly-typed ASTs to be used in Semantic. Since it is a critical component of Semantic's language support process, we recommend reading [these docs](https://github.com/github/semantic/blob/715971067634f677bff8619add6490e03bb1825e/docs/adding-new-languages.md) first, as they provide an overview of the pipeline CodeGen supports.\n\n## Table of Contents\n- [CodeGen Pipeline](#codegen-pipeline)\n- [Generating ASTs](#generating-asts)\n- [Inspecting auto-generated datatypes](#inspecting-auto-generated-datatypes)\n- [Tests](#tests)\n- [Additional notes](#additional-notes)\n\n## CodeGen Pipeline\n\nThe following diagram outlines the entire language support pipeline.\n\n![image](https://user-images.githubusercontent.com/875834/80392707-801e9980-887d-11ea-9c95-e004bbe04be0.png)\n\n1. **Ingest source code.** The input to our system is blob data on GitHub.\n2. **Write and generate tree-sitter grammar.** During parser generation, tree-sitter produces a `node-types.json` file that captures the structure of a language's grammar. Based on this JSON file, we're able to derive datatypes representing surface languages, and then use those datatypes to generically build ASTs.\n3. **Provide interface to the C source.** The FFI provides us a way to bridge tree-sitter to our Haskell library. For more information, see our docs on [adding a new language](https://github.com/github/semantic/blob/master/docs/adding-new-languages.md). \n4. **Automated AST generation via CodeGen APIs.** The CodeGen APIs live in the [`semantic-ast`](https://github.com/github/semantic/tree/715971067634f677bff8619add6490e03bb1825e/semantic-ast) package within [Semantic](https://github.com/github/semantic/tree/715971067634f677bff8619add6490e03bb1825e), and are explained as follows:\n    - [**Deserialize.**](https://github.com/github/semantic/blob/715971067634f677bff8619add6490e03bb1825e/semantic-ast/src/AST/Deserialize.hs) First, we deserialize the `node-types.json` file for a given language into the desired shape of datatypes via parsing capabilities afforded by the [Aeson](http://hackage.haskell.org/package/aeson) library. There are four distinct types represented in the node-types.json file takes on: sums, products, named leaves and anonymous leaves.\n    - [**Generate Syntax.**](https://github.com/github/semantic/blob/715971067634f677bff8619add6490e03bb1825e/semantic-ast/src/AST/GenerateSyntax.hs) We then use Template Haskell to auto-generate language-specific, strongly-typed datatypes that represent various language constructs at compile-time. This API exports the top-level function `astDeclarationsForLanguage` to auto-generate datatypes at compile-time, which is is invoked by a given language [AST](https://github.com/github/semantic/blob/715971067634f677bff8619add6490e03bb1825e/semantic-python/src/Language/Python/AST.hs) module.\n    - [**Unmarshal.**](https://github.com/github/semantic/blob/715971067634f677bff8619add6490e03bb1825e/semantic-ast/src/AST/Unmarshal.hs) Unmarshaling is the runtime process of iterating over tree-sitter’s parse trees using its tree cursor API, and producing Haskell ASTs for the relevant nodes. We parse source code from tree-sitter and unmarshal the data we get to build these ASTs generically. This file exports the top-level function `parseByteString`, which takes source code and a language as arguments, and produces an AST.\n5. **Generate strongly-typed trees for a given language.** Finally, we create `semantic-[LANGUAGE]` packages (such as [this one](https://github.com/github/semantic/tree/715971067634f677bff8619add6490e03bb1825e/semantic-python) for Python). From here, we can call our CodeGen APIs to generate language-specific, strongly-typed trees via the following process:\n    1. `Language.[LANGUAGE].AST` calls `astDeclarationsForLanguage`, passing in the relevant language as the argument, and using the `getNodeTypesPath` function to access the tree-sitter generated `node-types.json` file. \n    2. This triggers the generation of the exhaustive syntax types contained by that language. \n    3. `Language.[LANGUAGE]` provides the semantic functionality for Python programs, and calls the unmarshal API. \n    4. Finally, the unmarshaling process takes the source code input, and auto-generates a tree using the syntax nodes generated in step 2. \n\nThe remaining document provides more details on generating ASTs, inspecting datatypes, tests, and information on decisions pertaining to relevant APIs.\n\n## Generating ASTs\n\nTo parse source code and produce ASTs locally:\n\n1. Load the REPL for a given language package:\n\n```\ncabal new-repl lib:semantic-python\n```\n\n2. Set language extensions, `OverloadedStrings` and `TypeApplications`, and import relevant modules, `AST.Unmarshal`, `Source.Range` and `Source.Span`:\n\n```\n:seti -XOverloadedStrings\n:seti -XTypeApplications\n\nimport Source.Span\nimport Source.Range\nimport AST.Unmarshal\n```\n\n3. You can now call `parseByteString`, passing in the desired language you wish to parse (in this case Python is given by the argument `Language.Python.Grammar.tree_sitter_python`), and the source code (in this case an integer `1`). Since the function is constrained by `(Unmarshal t, UnmarshalAnn a)`, you can use type applications to provide a top-level node `t`, an entry point into the tree, in addition to a polymorphic annotation `a` used to represent range and span. In this case, that top-level root node is `Module`, and the annotation is given by `Span` and `Range` as defined in the [semantic-source](https://github.com/github/semantic/tree/master/semantic-source/src/Source) package:\n\n```\nTS.parseByteString @Language.Python.AST.Module @(Source.Span.Span, Source.Range.Range) Language.Python.Grammar.tree_sitter_python \"1\"\n```\n\nThis generates the following AST:\n\n```\nRight (Module {ann = (Span {start = Pos {line = 0, column = 0}, end = Pos {line = 0, column = 1}},Range {start = 0, end = 1}), extraChildren = [R1 (SimpleStatement {getSimpleStatement = L1 (R1 (R1 (L1 (ExpressionStatement {ann = (Span {start = Pos {line = 0, column = 0}, end = Pos {line = 0, column = 1}},Range {start = 0, end = 1}), extraChildren = L1 (L1 (Expression {getExpression = L1 (L1 (L1 (PrimaryExpression {getPrimaryExpression = R1 (L1 (L1 (L1 (Integer {ann = (Span {start = Pos {line = 0, column = 0}, end = Pos {line = 0, column = 1}},Range {start = 0, end = 1}), text = \"1\"}))))})))})) :| []}))))})]})\n```\n\n`Unmarshal` defines both generic and non-generic classes. This is because generic behaviors are different than what we get non-generically, and in the case of ` Maybe`, `[]`, and `NonEmpty`, we prefer non-generic behavior. Since `[]` is a sum, the generic behavior for `:+:` would be invoked. The generic `:+:` expects repetitions represented in the parse tree as right-nested singly-linked lists (ex., `(a (b (c (d…))))`), rather than as consecutive sibling nodes (ex., `(a b c ...d)`, which is what our trees have. We want to match the latter.\n\n## Inspecting auto-generated datatypes\n\nDatatypes are derived from a language and its `node-types.json` file using the `GenerateSyntax` API. These datatypes can be viewed in the REPL just as they would for any other datatype, using `:i` after loading the language-specific `AST.hs` module for a given language. \n\n```\n:l semantic-python/src/Language/Python/AST.hs\nOk, six modules loaded.\n*Language.Python.AST Source.Span Source.Range> :i Module\n```\n\nThis shows us the auto-generated `Module` datatype:\n\n```Haskell\ndata Module a\n  = Module {Language.Python.AST.ann :: a,\n            Language.Python.AST.extraChildren :: [(GHC.Generics.:+:)\n                                                    CompoundStatement SimpleStatement a]}\n  \t-- Defined at /Users/aymannadeem/github/semantic/semantic-python/src/Language/Python/AST.hs:23:1\ninstance Show a => Show (Module a)\n  -- Defined at /Users/aymannadeem/github/semantic/semantic-python/src/Language/Python/AST.hs:23:1\ninstance Ord a => Ord (Module a)\n  -- Defined at /Users/aymannadeem/github/semantic/semantic-python/src/Language/Python/AST.hs:23:1\ninstance Eq a => Eq (Module a)\n  -- Defined at /Users/aymannadeem/github/semantic/semantic-python/src/Language/Python/AST.hs:23:1\ninstance Traversable Module\n  -- Defined at /Users/aymannadeem/github/semantic/semantic-python/src/Language/Python/AST.hs:23:1\ninstance Functor Module\n  -- Defined at /Users/aymannadeem/github/semantic/semantic-python/src/Language/Python/AST.hs:23:1\ninstance Foldable Module\n  -- Defined at /Users/aymannadeem/github/semantic/semantic-python/src/Language/Python/AST.hs:23:1\n```\n\nHere is an example that describes the relationship between a Python identifier represented in the tree-sitter generated JSON file, and a datatype generated by Template Haskell based on the provided JSON:\n\n| Type | JSON | TH-generated code |\n|----------|--------------|------------|\n|Named leaf|<pre>{<br>\"type\": \"identifier\",<br>\"named\": true<br>}|<code>data TreeSitter.Python.AST.Identifier a<br>= TreeSitter.Python.AST.Identifier {TreeSitter.Python.AST.ann :: a,<br>TreeSitter.Python.AST.bytes :: text-1.2.3.1:Data.Text.Internal.Text} -- Defined at TreeSitter/Python/AST.hs:10:1<br>instance Show a => Show (TreeSitter.Python.AST.Identifier a) -- Defined at TreeSitter/Python/AST.hs:10:1<br>instance Ord a => Ord (TreeSitter.Python.AST.Identifier a) -- Defined at TreeSitter/Python/AST.hs:10:1<br>instance Eq a => Eq (TreeSitter.Python.AST.Identifier a) -- Defined at TreeSitter/Python/AST.hs:10:1<br>instance Traversable TreeSitter.Python.AST.Identifier -- Defined at TreeSitter/Python/AST.hs:10:1<br>instance Functor TreeSitter.Python.AST.Identifier -- Defined at TreeSitter/Python/AST.hs:10:1<br>instance Foldable TreeSitter.Python.AST.Identifier -- Defined at TreeSitter/Python/AST.hs:10:1<br>instance Unmarshal TreeSitter.Python.AST.Identifier -- Defined at TreeSitter/Python/AST.hs:10:1<br>instance SymbolMatching TreeSitter.Python.AST.Identifier -- Defined at TreeSitter/Python/AST.hs:10:1|\n\nAnnotations are captured by a polymorphic parameter `a` instead of range/span values. \n\n[Examples](https://github.com/github/semantic/blob/715971067634f677bff8619add6490e03bb1825e/semantic-ast/src/AST/Grammar/Examples.hs) contains a set of pre-defined, hand-written datatypes for which Template Haskell is not used. Any datatypes among the node types defined here will be skipped when the splice is run, allowing customization of the representation of parts of the tree. While this gives us flexibility, we encourage that this is used sparingly, as it imposes extra maintenance burden, particularly when the grammar is changed. This may be used to e.g. parse literals into Haskell equivalents (e.g. parsing the textual contents of integer literals into `Integer`s), and may require defining `TS.UnmarshalAnn` or `TS.SymbolMatching` instances for (parts of) the custom datatypes, depending on where and how the datatype occurs in the generated tree, in addition to the usual `Foldable`, `Functor`, etc. instances provided for generated datatypes.\n\n## Tests\n\nAs of right now, Hedgehog tests are minimal and only in place for the Python library.\n\nTo run tests:\n\n`cabal v2-test semantic-python`\n\n## Background and Motivation for CodeGen\n\nCodeGen automates the engineering effort historically required for adding a new language, which included writing a second [assignment](https://github.com/github/semantic/blob/715971067634f677bff8619add6490e03bb1825e/docs/assignment.md) grammar, along with manually defining [data types à la carte](http://www.cs.ru.nl/~W.Swierstra/Publications/DataTypesALaCarte.pdf). \n\nCodeGen addresses the following challenges posed by the old system:\n\n**1. No named child nodes.** Tree-sitter’s syntax nodes didn’t provide us with named child nodes, just ordered-lists. In other words, the children were structured as an ordered list, without any name indicating the role of each child. This didn’t match Semantic’s internal representation of syntax nodes, where each type of node has a specific set of named children. This created concerns which meant more Assignment work was necessary to compensate for this discrepancy. For instance, one concern being the way we represent comments, which could be any arbitrary node attached to any part of the AST. But if we had named child nodes, this would allow us to associate comments relative to their parent nodes (for example, if a comment appeared in an if statement, it could be the first child for that if-statement node). However in the old system, comments as well as heredocs could appear anywhere are a source of errors.\n\n**2. Time and effort.** Our system involves a two-step parsing process, which requires writing two separate language-specific grammars by hand. This is super time-consuming, very developer-intensive, error-prone, and extremely tedious. [Assignment](https://github.com/github/semantic/blob/715971067634f677bff8619add6490e03bb1825e/docs/assignment.md) requires writing a grammar using parser combinators in Haskell that are really close to the tree-sitter grammar specification. The mechanical nature of this work has, for a long time, begged the question of whether we could automate parts of it. Although we’ve open-sourced Semantic, it’s still tough to leverage community support for adding languages with such a grueling process behind it and a brittle system.\n\n**3. Brittle.** Each language's Assignment code was tightly coupled to the language's Tree-sitter grammar, and it could break at runtime if we changed the structure of the grammar, without any compile-time error. This meant tracking ongoing changes in tree-sitter. This was also tedious, manual, and error prone. Bumping grammars meant making changes to assignment to accommodate new tree-structures, like nodes that have changed names or positions, etc.\n\n**4. Evaluation and a la carte sum types.** This also gave us an opportunity to re-think our [à la carte datatypes](http://www.cs.ru.nl/~W.Swierstra/Publications/DataTypesALaCarte.pdf), as well as the evaluation machinery. À la carte syntax types were motivated by a desire to migrate away from a previous representation of syntax in favor of creating a way to better share effort and tooling involved in diffing, and especially in evaluating common fragments of languages: for example, most languages share if statements, functions, while loops, etc. However, the introduction of these syntax types (and the design of the `Evaluatable` typeclass) made it hard for us to make our analysis sensitive to minor linguistic differences, or even to relate different pieces of syntax together. This is because our à la carte syntax is essentially untyped, in that it enforces only a minimal structure on the tree; but any given subterm can be any element of the syntax, and not some limited subset. This means that a number of `Evaluatable` instances have to deal with error conditions that in practice can’t occur. For example, `function`, `method`, and `class` declarations have a term for their name field, and thus have to deal with the possibility that the term doesn’t have a `declaredName` by throwing an error if this arises. \n"
  },
  {
    "path": "docs/coding-style.md",
    "content": "Haskell is a syntactically-flexible language, which gives the programmer a tremendous amount of leeway regarding the appearance of their code. This is a set of best practices that we use in `semantic` and its related projects.\n\nThis file draws from the style guides written by [Johan Tibbel](https://github.com/tibbe/haskell-style-guide/blob/master/haskell-style.md) and [Kowainik](https://kowainik.github.io/posts/2019-02-06-style-guide).\n\n# General guidelines\n\nMake your code look like the code around it. Consistency is the name of the game.\n\nUse `stylish-haskell` for general formatting. We have our own style defined in `.stylish-haskell.yaml`, and it automates many uninteresting style debates: it will format `LANGUAGE` pragmas, alphabetize and align imports, etc. Atom, Emacs, vim, and most other editors can run it automatically. You should also set up your editor to remove trailing whitespace.\n\nOur CI systems ensure that all patches pass `hlint`'s muster. We have our own set of rules in `.hlint.yaml`.\n\nWe strongly recommend adding Haddock documentation to any function/data type, unless its purpose is immediately apparent from its name.\nComments should describe the \"why\", type signatures should describe the \"what\", and the code should describe the \"how\".\n\n# Formatting\n\n2 spaces everywhere. Tabs are forbidden. Haskell indentation can be unpredictable, so generally stick with what your editor suggests.\nThere is no hard line-length limit, though if you go beyond 110 or 120 you should generally split it up, especially for type signatures.\n\n### Use applicative notation when constructing simple data types.\n\n``` haskell\nthing :: Parser Foo\n\n-- Broke:\nthing = do\n  a <- bar\n  b <- baz\n  pure (Foo a b)\n\n-- Woke:\nthing = Foo <$> bar <*> baz\n```\n\nOverreliance on applicative notation can create code that is difficult to read. Don't use applicative notation in combination with operator sections. If in doubt, write it with `do` notation and see if it's more immediately comprehensible.\n\nAvoid the `Applicative` instance for functions. That means you, Rob.\n\n### Use leading commas for records, exports, and lists.\n\nLeading commas make it easy to add and remove fields without introducing syntax errors, and properly aligned records are easy to read:\n\n``` haskell\ndata Pos = Pos\n  { posLine   :: Int\n  , posColumn :: Int\n  }\n```\n\n### Align typographical symbols.\n\n`->` in `case` statements and signatures, `=` in functions, and `::` in records should be aligned. Your editor can help with this. In certain situations, aligning symbols may decrease readability, e.g. complicated `case` statements. Use your best judgment.\n\n# Naming\n\nLocally bound variables (such as the arguments to functions, or helpers defined in a `where` clause) can have short names, such as `x` or `go`. Globally bound functions and variables should have descriptive names.\n\nYou'll often find yourself implementing functions that conflict with Prelude definitions. If this is the case, avoid adding a prefix to these functions, and instead import them qualified.\n\n``` haskell\n-- Broke\nfoo = heapLookup thing\n-- Woke\nfoo = Heap.lookup thing\n```\n\nUnlike many Haskell projects, we rely in places on variable shadowing (especially in open-recursive functions).\nAvoid variable shadowing if possible, as it can lead to unintuitive error messages; you are free to disable shadowing on a per-file basis with `{-# OPTIONS_GHC -Wshadow #-}`\n\n# Functions\n\n### Don't go buckwild with infix operators.\n\nSensible use of infix operators can provide serious readability benefits, but often the best tool is just a named function. If you're defining new operators, make sure that you have a solid justification for doing so.\n\n### Avoid list comprehensions.\n\nIn almost all cases, `map`, `filter`, `fold`, and the `[]` monad are more flexible and readable.\n\n### Don't go buckwild with point-free definitions.\n\nPoint-free style can help or hinder readability, depending on the context. If a function is expressed naturally with the `.` operator, then do so, but if you have to gyrate the definition to write it point-free, then you should probably just write out the variable names. If you are reviewing someone else's PR and find a point-free definition hard to read, ask them to simplify/clarify it.\n\n### Prefer `.` and `$` to parentheses.\n\nParentheses can make a function harder to edit, since parentheses have to be balanced. The composition and application operators (`.` and `$`) can reduce clunkiness.\n\n``` haskell\n-- Broke\nf (g (h x))\n-- Woke\nf $ g $ h x\n-- Bespoke\nf . g . h $ x\n```\n\n### Do not use partial functions.\n\n`hlint` will catch several classes of partial functions (`head`, `fromJust`, etc.). Do not use `error` if at all possible, and never use `undefined`.\n\n# Data Types\n\n### Prefer `newtype`s to `type`s.\n\n`newtype` values are zero-cost to construct and eliminate, and provide more informative error messages than `type` synonyms. Only use `type` for convenience aliases to existing types.\n\n### Don't use `String`.\n\n`String` is almost always the wrong choice. If your type represents human-readable strings, use `Text`; if you have a blob of bytes, use `ByteString`. `-XOverloadedStrings` is enabled globally to make this easy.\n\n### Use `-XDerivingStrategies` when using `-XGeneralizedNewtypeDeriving` or `-XDeriveAnyClass`.\n\nSubtle bugs can creep in if you fail to specify the correct strategy, so prefer specifying an explicit strategy even if GHC doesn't require it.\nIf all the classes you're `deriving` are the stock classes (`Eq`, `Ord`, `Show`, etc.), there's no need to specify a strategy.\n\n### Only use record selectors on single-constructor types.\n\nThe following code generates two partial functions, which is bad:\n\n``` haskell\ndata Bad = Evil { getInt :: Int }\n         | Bad  { getFloat :: Float }\n```\n\nIf you need fields that properly take failure into account, consider using `lens` and generating `Lens`es and `Traversal`s, which avoid calls to `error`.\n\nAn exception to this case is when record selectors are present to provide clarity regarding field names. In this case, prefix the field names with `_` (so that GHC will avoid warning you), and export only the constructors, like so:\n\n``` haskell\nmodule Thing (Foo (Bar, Baz)) where\n\ndata Foo = Bar { _thing1 :: String\n               , _thing2 :: String\n               }\n         | Baz { _thingRed :: Float\n               , _thingBlue :: Float\n               }\n```\n\n# `lens`\n\nThe `lens` library is large and intimidating, and poorly-written `lens` code can be impossible to maintain. Here are some suggestions to keep complexity at bay:\n\n* Prefer hand-written lenses to those generated by Template Haskell, except if the hand-written lens is significantly less reasonable than a TH splice.\n* Only use these infix operators: `^.` (`view`), `^?` (`preview`), `.~` (`set`), `%~` (`over`), and `^..` (`toListOf`). Prefer prefix functions in other cases.\n* Prefer specific imports: if all you need is `^.`, import just `Control.Lens.Getter` rather than `Control.Lens`.\n* Only use lenses when you have to view and manipulate deeply nested data types. If you can get away with a plain old record, do so.\n\n# Miscellany\n\n* Prefer eliminators like `maybe` and `either` to explicit pattern-matching.\n* Prefer `guards` and the `bool` eliminator to if-then-else statements.\n* Prefer `where` to `let`, except in the case of nested `where`s.\n* Don't use `{-# ANN … #-}` to disable hlint warnings, as it can slow down compilation. If you need to disable lints in a file, do so in `.hlint.yaml`.\n"
  },
  {
    "path": "docs/configuration.md",
    "content": "# Configuration\n\nSemantic has a number of configurable parameters and options specified through\nthe use of command-line flags or environment variables. See [Config.hs](https://github.com/github/semantic/blob/master/src/Semantic/Config.hs) for details.\n\n## Environment Variables\n\nEnv. Variable | Description\n--- | ---\n`MAX_TELEMETRY_QUEUE_SIZE` |  Max size of telemetry queues before messages are dropped (default: `1000`).\n`TREE_SITTER_PARSE_TIMEOUT` | Timeout in milliseconds before canceling tree-sitter parsing (default: `6000`).\n`SEMANTIC_ASSIGNMENT_TIMEOUT` | Millisecond timeout for assignment (default: `4000`).\n`STATS_ADDR` | Host and port of statsd (default: `statsd://127.0.0.1:28125`).\n`DOGSTATSD_HOST` | Host and port for DataDog, when running in Kubes (default: `statsd://127.0.0.1:28125`).\n\n## Command-line Arguments: Options\n\nFlag | Description\n--- | ---\n`log-level` | Log messages at or above this level. One of `error`, `warning`, `info`, `debug`, `none` (default: `warning`).\n`fail-on-warning` | Fail on assignment warnings (default: `False`).\n`fail-on-parse-error` | Fail on tree-sitter parse error (default: `False`).\n`log-paths-on-error` | Log source paths on parse and assignment error (default: `False`)."
  },
  {
    "path": "docs/core-grammar.md",
    "content": "# Semantic Core grammar\n\nThis is an EBNF grammar for the (experimental) core IR language.\n\n```\nexpr ::= expr '.' expr\n       | expr ' '+ expr\n       | '{' expr (';' expr)* ';'? '}'\n       | 'if' expr 'then' expr 'else' expr\n       | ('lexical' | 'import' | 'load') expr\n       | lit\n       | 'let'? lvalue '=' expr\n       | '(' expr ')'\n\nlvalue ::= ident\n         | parens expr\n\nlit ::= '#true'\n      | '#false'\n      | 'unit'\n      | 'frame'\n      | lambda\n      | ident\n\nlambda ::= ('λ' | '\\') ident ('->' | '→') expr\n\nident ::= [A-z_] ([A-z0-9_])*\n        | '#{' [^{}]+ '}'\n        | '\"' [^\"]+ '\"'\n```\n"
  },
  {
    "path": "docs/development.md",
    "content": "# Development Guide\n\n`semantic` is compiled with the [ghc](https://www.haskell.org/ghc/) compiler and built/packaged with [`cabal`](https://cabal.readthedocs.io/en/latest/). It uses Cabal's [Nix-style local builds](https://www.haskell.org/cabal/users-guide/nix-local-build-overview.html) and uses dependencies from [Hackage](http://hackage.haskell.org/). We recommend using [`ghcup`](https://www.haskell.org/ghcup/) to sandbox your installation of GHC.\n\n| Tool | Explanation |\n| :-------------: |-------------|\n| [`ghc`](https://www.haskell.org/ghc/) | The Glasgow Haskell Compiler is the open source compiler and interactive environment for the Haskell programming language. |\n| [`cabal`](https://www.haskell.org/cabal/) | Cabal is a system for building and packaging Haskell libraries and programs. It is similar to having `make` files instead of having to type several complicated calls to `ghc` to compile and link a project. |\n| [`hackage`](https://hackage.haskell.org/) | Hackage is the most widely used package archive of open source libraries and programs. `cabal-install` is used to download and install packages. |\n| [`ghcup`](https://www.haskell.org/ghcup/) | `ghcup` takes care of managing different versions of GHC on your system. We aggressively track new versions of GHC; sandboxing makes upgrading to new versions safe and easy. |\n| [`ghci`](https://downloads.haskell.org/~ghc/5.04/docs/html/users_guide/ghci.html) | `ghci` is GHC's interactive environment. This is where Haskell expressions can be interactively evaluated and programs can be interpreted. |\n\n### Nix-style local builds\n\n`semantic` is a complicated app with a very large dependency tree. Because managing large dependency trees in a system-wide `ghc` installation is difficult, especially when developing on multiple Haskell projects, `cabal` enables \"local\" builds: each dependency is linked in per-project, not globally. In practice, this means that you should prefix your commands with the `v2-` prefix: `cabal v2-build` builds the project, `v2-clean` purges its build artifacts, etc. (With versions of the `cabal` command line tool newer than 2.6, local builds become the default, with the `v1-` prefix required to yield old behavior.)\n\n### Running a REPL\n\nRunning `cabal v2-repl semantic:lib` will boot a GHCi with the right environment for Semantic set up.\n\nSee the [💡ProTips](💡ProTip!.md#ghci) for more info.\n\n### Configuring Atom\n\nYou may want to customize Atom to support your haskelling:\n\n1. Install Haskell-specific packages:\n  - [`language-haskell`](https://atom.io/packages/language-haskell) provides syntax highlighting for `.hs`, `.cabal`, and other Haskell files.\n  - [`stylish-haskell`](https://github.com/jaspervdj/stylish-haskell) can be used via [`atom-beautify`](https://atom.io/packages/atom-beautify) for source code formatting.\n  - [`align-regexp`](https://atom.io/packages/align-regexp) is convenient for aligning blocks of text by some pattern.\n  - Either `ide-haskell-hie` or `ide-haskell`:\n    - [`ide-haskell-hie`](https://atom.io/packages/ide-haskell-hie) uses [`atom-ide-ui`](https://atom.io/packages/atom-ide-ui) and [`haskell-ide-engine`](https://github.com/haskell/haskell-ide-engine) (instructions below) to provide linting, errors, warnings, types on hover, autocompletion, etc.\n      - `git clone https://github.com/haskell/haskell-ide-engine.git` somewhere convenient and `cd` into it.\n      - Run `make` to build and install `ghc`-specific versions of `hie` into `~/.local/bin`. This will allow you to use `hie` with projects using different versions of `ghc` (currently 8.0.2, 8.2.1, and 8.2.2). Alternatively, `stack install` will build with the current supported version of `ghc` (8.2.2 at time of writing) and copy it to `~/.local/bin/hie`.\n      - Make sure that `~/.local/bin/` is on your `PATH`.\n      - If you went with the `ghc`-specific install route (`make`), then configure `ide-haskell-hie` to “Use the hie-wrapper”: ![Use the hie-wrapper setting](https://user-images.githubusercontent.com/59671/37608252-74efb0c4-2b70-11e8-8f24-f60650a59f66.png).\n    - [`ide-haskell`](https://atom.io/packages/ide-haskell) also provides errors, warnings, types, etc. using `ghc-mod` and other tools:\n      - `stack install ghc-mod hlint happy` — this installs `ghc-mod` and `hlint` executables on your system required for the `haskell-ghc-mod` Atom package below.\n      - Install [`haskell-ghc-mod`](https://atom.io/packages/haskell-ghc-mod), and [`ide-haskell-cabal`](https://atom.io/packages/ide-haskell-cabal)\n      - If you don't launch Atom from your shell, set the additional paths for the the `haskell-ghc-mod` package in Atom to include `/Users/$USER/.local/bin/` and `/usr/local/bin`. This is done by going to `Atom -> Preferences -> Packages -> haskell-ghc-mod -> Settings` and editing \"Additional Paths\":\n  ![image](https://user-images.githubusercontent.com/875834/31060015-5ff171b0-a6c0-11e7-9f44-65ff776cd9a2.png)\n      - [`autocomplete-haskell`](https://atom.io/packages/autocomplete-haskell): Autocompletion\n      - [`ide-haskell-hasktags`](https://atom.io/packages/ide-haskell-hasktags): Symbols\n        -  `stack install hasktags`\n        -  Run `hasktags --ignore-close-implementation --ctags app src; sort tags`\n        -  Set the full path for the `ide-haskell-hasktags` package in Atom to point to `/Users/$USER/.local/bin/hasktags` by going to `Atom -> Preferences -> Packages -> ide-haskell-hasktags -> Settings`:\n        ![image](https://user-images.githubusercontent.com/875834/31060038-a2911db8-a6c0-11e7-860d-07b0a45514bc.png)\n2. Install a font with ligatures (this will require per-font configuration):\n  - [Hasklig](https://github.com/i-tu/Hasklig)\n  - [Monoid](http://larsenwork.com/monoid/)\n  - [FiraCode](https://github.com/tonsky/FiraCode)\n3. Find Documentation\n  - For the most part our dependencies have documentation on [hackage](http://hackage.haskell.org/packages/). You can find individual packages there.\n  - [Hayoo](http://hayoo.fh-wedel.de/) and [Hoogle](https://www.haskell.org/hoogle/) can search package documentation on hackage by package name, symbol name, and even symbol type.\n  - [Dash](https://kapeli.com/dash) can install documentation from hackage, search by API, and integrations exist for Atom, emacs, and other tools.\n\n### 💡ProTip!\n\nSee [💡ProTip!.md](💡ProTip!.md) for more.\n"
  },
  {
    "path": "docs/examples.md",
    "content": "# Quick usage examples\n\n## Parse trees\n\nSemantic uses [tree-sitter](https://github.com/tree-sitter/tree-sitter) to generate parse trees, but layers in a more generalized notion of syntax terms across all supported programming languages. We'll see why this is important when we get to diffs and program analysis, but for now let's just inspect some output. It helps to have a simple program to parse, so let's create one. Open a file `test.A.py` and paste in the following:\n\n``` python\ndef Foo(x):\n    return x\nprint Foo(\"hi\")\n```\n\nNow, let's generate an abstract syntax tree (AST).\n\n``` bash\n$ semantic parse test.A.py\n(Module\n  (CompoundStatement\n    (FunctionDefinition\n      (Block\n        (SimpleStatement\n          (ReturnStatement\n            (ExpressionList\n              (Expression\n                (PrimaryExpression\n                  (Identifier \"x\")))))))\n      (Identifier \"Foo\")\n      (Parameters\n        (Parameter\n          (Identifier \"x\")))))\n  (SimpleStatement\n    (PrintStatement\n      (Expression\n        (PrimaryExpression\n          (Call\n            (PrimaryExpression\n              (Identifier \"Foo\"))\n            (ArgumentList\n              (Expression\n                (PrimaryExpression\n                  (String))))))))))\n```\n\nThe default s-expression output is a good format for quickly visualizing the structure of code. We can see that there is a function declared and that then there is a call expression, nested in another call expression which matches the function calls to `print` and `Foo`. Feel free to play with some of the other output formats, for example the following will give back the same AST, but with much more details about the underlying data structure.\n\n``` bash\n$ semantic parse test.py --show\n```\n\n## Symbols\n\nSymbols are named identifiers driven by the ASTs. This is the format that github.com uses to generate code navigation information allowing c-tags style lookup of symbolic names for fast, incremental navigation in all the supported languages. The incremental part is important because files change often so we want to be able to parse just what's changed and not have to analyze the entire project again.\n\n\n``` bash\n$ semantic parse test.py --json-symbols\n{\n  \"files\": [\n    {\n      \"path\": \"test.py\",\n      \"language\": \"Python\",\n      \"symbols\": [\n        {\n          \"symbol\": \"Foo\",\n          \"kind\": \"Function\",\n          \"line\": \"def Foo(x):\",\n          \"span\": {\n            \"start\": {\n              \"line\": 1,\n              \"column\": 5\n            },\n            \"end\": {\n              \"line\": 1,\n              \"column\": 8\n            }\n          },\n          \"nodeType\": \"DEFINITION\"\n        },\n        {\n          \"symbol\": \"print\",\n          \"kind\": \"Function\",\n          \"line\": \"print Foo(\\\"hi\\\")\",\n          \"span\": {\n            \"start\": {\n              \"line\": 3,\n              \"column\": 1\n            },\n            \"end\": {\n              \"line\": 3,\n              \"column\": 16\n            }\n          },\n          \"nodeType\": \"DEFINITION\"\n        },\n        {\n          \"symbol\": \"Foo\",\n          \"kind\": \"Call\",\n          \"line\": \"Foo(\\\"hi\\\")\",\n          \"span\": {\n            \"start\": {\n              \"line\": 3,\n              \"column\": 7\n            },\n            \"end\": {\n              \"line\": 3,\n              \"column\": 10\n            }\n          },\n          \"nodeType\": \"REFERENCE\",\n          \"syntaxType\": \"CALL\"\n        }\n      ]\n    }\n  ]\n}\n```\n\nThere's also a protobuf version of this same information (slightly more compact wire representation).\n\n## Diffs\n\nNOTE: Diffs are temporarily disabled as part of the effort to migrate to a new AST representation (precise ASTs).\n"
  },
  {
    "path": "docs/grammar-development-guide.md",
    "content": "# Grammar Development for Semantic Code\n\nThe Semantic Code team uses [`tree-sitter`](https://github.com/tree-sitter/tree-sitter) to generate parse trees, providing an abstract representation of code regardless of the programming language it was written in. Transforming source code into abstract syntax trees (ASTs) allows us to clearly reason about the logical structure of a program  without getting mired in language-specific details. For example, `if` statements are a common pattern for modeling conditional logic across several languages. ASTs let us directly compare an `if` statement in Python against one in Ruby or Java, placing the focus on the logic as opposed to the subtle variations in syntax. We can use this representation to do powerful analyses later on. The decision to use tree-sitter as our parsing system is documented [here](https://github.com/github/semantic/blob/master/docs/why-tree-sitter.md).\n\n![image](https://user-images.githubusercontent.com/875834/37191315-9eecc98a-2313-11e8-8a66-357b9d3c9f27.png)\n\n## Grammar Development Guide\n\nThis document is a grammar development guide. The intent is to bring empiricism to a process that can feel arduous and opaque.\n\n1. [Rely on Language Specs, but not too much](#specs)\n2. [Study and test with other language parsers](#other-parsers)\n3. [Think through use-cases for parse trees](#use-cases)\n4. [Know when to parse invalid syntax](#invalid-syntax)\n5. [What does a \"good\" parse tree look like?](#good-tree)\n6. [Improving a parse tree](#improve-tree)\n7. [Making your tree compact: knowing when to inline vs. hide vs. remove a rule](#make-it-compact)\n8. [Test in the wild to prioritize what's next](#test)\n9. [Sequence your work](#sequence)\n10. [Handling conflicts](#handling-conflicts)\n11. [Debugging errors](#debugging-errors)\n\n\n### Rely on Language Specs, but not too much\nIf available, official language specifications—particularly those with [BNF grammars](https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form)—are a great reference point when starting grammar development.\n\nSpecs (such as [this one for Java](https://docs.oracle.com/javase/specs/jls/se9/html/index.html)) comprehensively describe a language. They possess its lexical and syntactic structure. Specs also model relationships between individual language components (such as its types, variables, declarations, functions, etc) which connect like building blocks to form a language. While a spec can be a great blueprint to start with, mirroring it 100% may not always the best approach.\n\nHere are some situations where deviating from the spec is appropriate:\n- **Simplifying your parse tree.** This is often accomplished by parsing a more lenient grammar than the spec allows. The structure of the spec may not align with the parse tree you'd like to generate. Producing a simpler tree may require collapsing the hierarchy into fewer levels, or naming nodes differently from the language spec. Language specs don't always map to how the language is used or spoken of, so referring to constructs by well-known names that have pragmatic meaning to developers is far more important than emulating the spec's vernacular.\n- **Ease of open source contribution.** It may seem like closely following the spec can be good for open source contributors, since it provides an external reference point. However, if the spec itself does not have a coherent, understandable structure—open source contributors are better off having a simpler grammar to work with.\n- **Debugging and maintenance.** Related to the above point, specs can be convoluted and not map 1-1 to a grammar hierarchy that's easy to maintain or debug. The complexity can make code brittle, creating difficulty in keeping production rules isolated and well-contained. Since specs reference language features multiple times depending on the context in which that particular feature is being scrutinized, following the spec closely may also introduce a lot of boilerplate. Deviating from the spec can give you more control over how your grammar code should be structured, resultantly making it less fragile and easier to debug and maintain.\n- **Supporting multiple versions of a language.** A spec may only capture one version of a language, whereas we'd like to support all versions. Your grammar should be backward-compatible.\n\n### Study and test with other language parsers\n\nStudying outputs from other [LR parsers](https://en.wikipedia.org/wiki/LR_parser) can provide useful examples to guide your own grammar development. To do this, find an LR parser for the language you're working on ([such as this one for Java](https://github.com/javaparser/javaparser)) and run source code through it to see how parse trees are modeled by their system relative to yours. This is especially helpful when deciding how granular the information in your tree should be, how to organize and group patterns, or what to name a particular node.\n\n### Think through use-cases for parse trees\n\nDeveloping a concrete set of use-cases you intend to support can drive the level of detail needed in your parse tree, resultantly influencing the structure of your grammar. For example, parse trees may be used for syntax highlighting or code folding in a text editor like Atom. For the purposes of Semantic Code, we intend on using parse trees for algorithms like tree diffing and static analysis. Use-cases also guide the evaluation of trade-offs and orient your mind around the problem you're solving instead of getting lost in the exercise of grammar creation itself.\n\nAn example of use-case driven development is knowing when to parse invalid syntax, discussed below.\n\n\n### Know when to parse invalid syntax\n\nWhile the goal is to emulate valid syntax, certain use-cases require supporting invalid syntax. There is a difference between parsing verses interpreting or compiling a language. Your parse tree doesn't always represent code that will run, but it has to be \"valid enough\" to represent readable code.\n\nAs an example, the Java language requires statements (such as the expression `x = 3`) to be inside of methods. However, in the `tree-sitter-java` grammar, we explicitly allow statements to be parsed outside of methods. The grammar was loosened so that syntax highlighting for a code snippet of Java in a markdown file may be supported. While this code wouldn't compile, it doesn't break for the use-cases that rely on our parsing of the language.  \n\nTo know when it is okay to parse valid code vs. not, consider the use-case of what good documentation would look like:\n- :white_check_mark: `int x = (1 + 2);` = This is invalid since it is not within a method, but still comprehensible. Parse this.\n- :x: `int x = (1 + )` = This is not only invalid Java, but it is additionally invalid _logic_. It wouldn't make sense in documentation. Don't parse this.\n\nThe goal is to support invalid code if it is readable and reflects logic that may be described frequently in documentation.\n\n### What does a \"good\" parse tree look like?\n\nWhile there is no perfectly empirical way to determine what a good tree looks like, some heuristics can be used to accept or reject nodes. Prioritize readability so that the tree is understandable at a glance and easy to debug, and supports use-cases mentioned above.\n\nAttributes of a \"pretty\" tree:\n- :white_check_mark: Minimize number of kinds of syntax nodes. Haskell compiles faster the fewer different types of node we have in our union types; all other things being equal, a grammar with 25 nodes is preferable to one with 50.\n- :white_check_mark: Not overly verbose. Superfluous wrapper nodes are absent.\n- :white_check_mark: Every element is outlined clearly.\n- :white_check_mark: Holds information needed further along in the pipeline.\n- :white_check_mark: The node is unambiguous.\n- :white_check_mark: Naming makes sense. Unless an element feature is ultra specific to the language, using terminology that is consistent with tree-sitter grammars of other languages helps make things consistent.\n- :white_check_mark: Preserve auxiliary information about language constructs that don't affect the result of compilation (like comments, docstrings, pragmas).\n\n_Example of a good parse tree:_\n\n```java\n// source code:\n@Copyright(\"a\") module com.foo { }\n\n\n// parse tree:\n(program\n  (module_declaration\n    (single_element_annotation\n      (identifier)\n      (string_literal))\n    (scoped_identifier\n      (identifier)\n      (identifier))))\n```\n\n### Improving a parse tree\nHere are some things that might help:\n\n- **Aliasing:** The `alias(rule, name)` function gives you the ability to assign an alternative name to a node in the parse tree output. The node in the tree output needs to have a name different to the name the rule is defined with, often when an element needs to be parsed differently depending on context. The following example shows how `identifier` is aliased as `type_identifier` when it's a child node of `generic_type`:\n\n  ```\n  generic_type: $ => prec(PREC.REL + 1, seq(\n      choice(\n        alias($.identifier, $.type_identifier),\n        $.scoped_type_identifier\n      ),\n      $._type_arguments\n    ))\n  ```\n\n  This allows you to make your tree more meaningful while simultaneously marking what the \"actual\" rule is in your grammar.\n\n- **Inline:** Adding a rule to the `inline` array strips out the whole node as though it has been removed from the grammar. Each occurrence of this rule in the grammar is replaced with a copy of its definition. Similar to making something hidden, this makes your AST more compact. Inlining doesn't create these nodes at runtime, whereas  making something hidden acknowledges the node at runtime but hides it from the AST.\n\n-  **Make `seq` visible and `choice` hidden:** Sequences typically have meaning. Choices are just containers that point to other things.\n\n- **Making things hidden:** Preceding a rule with an underscore (`_rule`) allows you to omit displaying a rule in the AST. This allows you to make a tree more compact.\n\n### Making your tree compact: knowing when to inline vs. hide vs. remove a rule\n\nHere are some guidelines to determine what approach to take when removing superfluous nodes from your AST:\n\n1. **Remove the rule.** This involves replacing a rule by directly pasting in its definition in places it's called. If the rule is only used once or is very simple, this is the best option since its removal will shorten the grammar. Less rules makes the grammar code easier to understand.\n\n2. **Add it to the inline array.** If the rule is used more than once and its definition is not simple, make it `inline`. If this does not cause parsing problems, this is the best approach, because it will avoid intermediate node allocations and parsing operations at runtime. One possible side-effect of `inline` is that is sometimes makes the parser much larger in terms of number of states. To evaluate whether this has happened, it’s worth looking at the `STATE_COUNT` in `parser.c` before and after. If the state count goes way up, it may not be worth adding the rule to `inline` since more states mean more one-time memory footprint for the parser. If it goes up a few percent (or goes down), it’s fine to add.\n\n3. **Mark it hidden.** If `inline` causes conflicts or drastically increases the size of the parse table, it's better to mark it as hidden. This is often useful when two nodes can not exist without one another. For example, `class_body_declaration` was a child of `class_body` and occurred together 100% of the time. Similarly, `type_arguments` can not exist independent of its child node, `type_argument`. In both cases, it makes sense to hide the former.\n    ```diff\n        (generic_type\n          (type_identifier)\n    -      (type_arguments\n            (type_argument\n              (wildcard\n                (type_identifier)))))\n    ```\n\n### Test in the wild to prioritize what's next\n\nOnce you have developed a significant portion of the grammar, find a file from an active open source repository that follows the typical structure of the language and run your parser against it. See how much of it can be successfully parsed by your system. Is it 40%? 60%? This can be a good way to benchmark where you are relative to the finish line. It can also be an effective way to identify what to prioritize next.\n\nUse [a script like this](https://github.com/tree-sitter/tree-sitter-java/blob/master/script/parse-examples.rb) is one way to mass test a large repo quickly.\n\n### Sequence your work\nMost languages have a long-tail of features that are not frequently utilized in the wild. When supporting a language, our aim is always to be able to parse 100% of a language (or ideally more, since the intent is to support multiple versions). However, this doesn't necessarily happen all in one go. A good way to do this is to develop the structure and documentation necessary to support open source contribution.\n\n### Handling conflicts\n\nConflicts may arise due to ambiguities in the grammar. This is when the parser can not decide what the next symbol in an input stream should be because there are multiple ways to parse some strings.\n\n- **Refactor by removing duplication.** Take two rules that parse the same string and combine them into a single rule that gets used in two places. Simplifying the number of rules reduces the search space of possible paths the parser can pursue, and resultantly can resolve to a single rule more easily.\n\n- **Refactor using combinators.** There are ways to specify rules in a way that makes it easier for the lexer to digest. This can be done by using these functions.\n\n  - `commaSep` - creates a repeating sequence of 0 or more tokens separated by a comma\n  - `commaSep1` - creates a repeating sequence of 1 or more tokens separated by a comma\n  - `sep1`- creates a repeating sequence of 0 or more tokens separated by the specified delimiter\n\n- **Specify associativity and/or precedence.** Another way of resolving a conflict is through associativity and precedence. Specifying precedence allows us to prioritize productions in the grammar. If there are two or more ways to proceed, the production with the higher precedence will get preference. Left and right associativity can also be used to reflect how to proceed. For instance, a left-associative evaluation is `(a Q b) Q c` vs. a right-associative evaluation would render `a Q (b Q c)`. In this way, associativity changes the meaning of the expression. Resolving conflicts this way is a compile time solution as opposed to the \"Add a conflict\" section below which means the parser will try to deal with the ambiguity at runtime.\n\n- **Add a conflict.** Adding conflicts allows the parser to pursue multiple paths in parallel, and decide which one to proceed with further along the process. Adding a conflict for one rule prevents the parser from recursively descending.\n\n_Workflow:_\n1. Add a conflict to the `conflicts` if there are 2 rules conflicting (to test that the conflict is the problem and gets the right parse output).\n2. Try `prec.left` or `prec.right` based on the options (if that’s not clear, then try both `prec.left` and `prec.right` and compare their outputs).\n3. Look at adding a precedence number, usually `1` or `+1`, based on the rule you want to succeed first.\n4. Make sure there aren’t duplicate paths to get to the same rule from sibling rules (like having `_literal` in both `_statement` and `_expression`).\nAnd then once things are working and the tree output looks good, remove the conflict rule and try to solve it with associativity or precedence only. This helps confirm the solution before expending too much time adjusting precedence.\n\n### Debugging errors\n\nTree-sitter's error-handling is great, but sometimes works too well and hides helpful info that helps to understand why errors are happening. The following tips can help detect where errors are occurring.\n\n- **Narrow down your problem space.** Triangulate the error by starting with a simple example and progressively adding complexity to better understand where the parser is having trouble.\n- **Consult the spec.** Eliminate the possibility of typos or oversights in your logic by looking at the definition of your rule in the spec.\n- **Run your code.** Execute your test code to verify it is valid. Use errors (if any) to get additional information about where the problem may lie.\n- **Use visual debug output.** Analyze the forks and look at individual production rules to hone in on the problem.\n- **Test all permutations of a particular language construct.** This will help you find the edges of your language and ensure your grammar supports them.\n"
  },
  {
    "path": "docs/why-haskell.md",
    "content": "# Haskell\n\nSemantic is written in Haskell and we expect newcomers to the code base to have one of two reactions: *\"That's so cool!\"* or *\"Why Haskell?\"*. This document is primarily addressed to the latter inquiry.\n\n# What is Haskell?\n\nHaskell is a standardized, general-purpose, compiled, purely functional programming language with non-strict semantics and strong static typing[[1][]]. We use the venerable [Glasgow Haskell Compiler][GHC] (GHC) and the build system [cabal][], having also used [Stack][] internally. That opening sentence is dense enough that you could spend many hours researching the history and merits of things like \"purely functional\", \"non-strict semantics\", and \"strong static typing\". We'll leave that as an exercise to the reader and instead focus on a couple of interesting aspects of the language that we lean on heavily in Semantic.\n\n# Why Haskell?\n\n*Or more specifically, why is Semantic written in Haskell?*\n\nThe Semantic project is concerned with parsing, analyzing (evaluating), and comparing source code and as such we are firmly rooted in the academic domain of programming language theory (PLT) and spend significant time applying existing research to the real world problem of analyzing source code on GitHub. Haskell is well suited to this domain. Its language features allow concise, correct, and elegant expression of the data structures and algorithms we work with. The language has enabled us to construct an algebraic representation of programming language syntax terms and diffs, where we represent each programming language we support as an open union of syntax terms.\n\nThere are many aspects of Haskell that make a project as ambitious as Semantic feasible: strong typing, lazy evaluation, and purity, to name but a few. Yet Haskell is essential for a separate reason: its support for rich, user-defined control flow.\n\n## Control Flow\n\nIn languages like Go and Java, the details of control flow are built into the language—as with all ALGOL descendants, program execution begins at a `main()` and continues, top-to-bottom, through function and method invocations until the program enters an infinite loop or terminates.\n\nHaskell is different. In Haskell, control flow is not dictated by the language, but by the data structures used. The same syntax is used for nondeterministic and backtracking computations, for concurrency and parallelism, and for traditional imperative blocks: user-defined interpretation functions, rather than built-in language semantics, determine the way that code is executed. This would be nearly impossible to implement in a language like Go, given its limited support for abstraction and polymorphism, and a maintenance nightmare in Java: every single one of our 20k lines of code would need to be rewritten as a data structure rather than a function. This is simply not a realistic task in other languages; even functional languages like OCaml and Swift lack this level of abstraction.\n\nAn example of this is the concept of resumable exceptions. During Semantic's interpretation passes, invalid code (unbound variables, type errors, infinite recursion) is recognized and handled based on the pass's calling context. Because Semantic is, at its heart, an interpreter, this feature is _essential_ for rapid development: we specify, when constructing interpretation and analysis passes, how GHC should handle errors while executing untrusted and possibly-invalid code, simply by specializing our call sites. Porting this to Java would require tremendous abuse of the `try`/`catch`/`finally` mechanism, as Java provides no way to separate control flow's policy and mechanism. And given Go's lack of exceptions, such a feature would be entirely impossible.\n\n## Runtime Correctness\n\nA lot of ink has been spilled discussing the virtues of strong typing. While a full exploration of such merits is beyond the scope of this commentary, it's worth mentioning that Semantic, as a rule, does not encounter runtime crashes: null pointer exceptions, missing-method exceptions, and invalid casts are entirely obviated, as Haskell makes it nigh-impossible to build programs that contain such bugs. While no level of type safety is sufficient to ensure all programs' correctness, the fact that the Semantic Code team spends the majority of its time working on features rather than debugging production crashes is truly remarkable—and this can largely be attributed to our choice of language.\n\n## Research\n\nSemantic is a singular project and we often find ourselves at the edges of modern computer science research. As such, we have no history on which to build: our external sources of inspiration and leaps in abstraction come from the research and academic communities. To name but one example, we are in all probability the largest use of Oleg Kiselyov's work on extensible effects, and the first team in industry to use Wu et al's concept of higher-order effects.\n\nThis crucial research is not being done in Java or C++, but in Haskell: its brevity, power, and focus on correctness lets researchers focus on the nature of the problem rather than the onerous task of fitting advanced research into conventional languages. Writing in Haskell allows us to build on top of the work of others rather than getting stuck in a cycle of reading, porting, and bug-fixing.\n\n## Industry\n\nGHC is a solid piece of technology with 25+ years of history. Both Haskell the language, and GHC as the primary implementation, have active, functioning committees that steer the future of the language. Haskell is used in industry at scale, at [Facebook][] and others.\n\n## Our experiences with the language\n\nHaskell is a pleasure to work in everyday. It's both productive and eye-opening. Like anything though, it has its weaknesses, so let's talk about those a little bit.\n\n- *Editor tooling* is sub-par (especially compared to language communities like Java and C#) and finicky - we often end up just compiling in a separate terminal.\n- *Edges of the type system*. We often find ourselves working at the edges of Haskell's incredible type system, wishing for dependent types or reaching for complex workarounds like the [Advanced Overlap][] techniques designed by Oleg Kiselyov & Simon Peyton Jones.\n- *Infra glue*. Haskell is very competent at standard infrastructure functionality like running a webserver, but it isn't the focus of the language community so you're often left writing your own libraries and components when you need to plug in to modern infrastructure.\n- *Lazy evaluation* isn't always what you want and can have performance problems and make some debugging activities incredibly frustrating. We use the `StrictData` language extension to combat some of these difficulties.\n- *Haskell has a reputation for being difficult to learn.* Some of that is well deserved, but half of it has more to do with how many of us first learned imperative programming and the switch to a functional paradigm takes some patience. Haskell also leverages a much more mathematically rigorous set of abstractions which likely aren't as familiar to web developers. We have, however, had very good luck on-boarding new team members with a wide range of previous experience and the quality of learning Haskell resources has really improved.\n\nAt this point, we are pretty firmly attached to Haskell's language features to enable many of the objectives of this project: abstract interpretation, graph analysis, effect analysis, code writing, AST matching, etc. Could you implement Semantic in another programming language? Certainly. An early prototype of the semantic diff portion of the project was done in Swift, but it quickly became unwieldy and even the first rough Haskell prototype was considerably more performant. Since adopting Haskell, we've had no trouble plugging into the rest of GitHub's infrastructure: running as a command line tool, a web server (HTTP/JSON), and now a Twirp RPC server. We've been an early adopter of Kubernetes and Moda and now ~~gRPC~~ Twirp at GitHub, often shipping our application on these new infrastructure components well ahead of other teams. We've managed our own build systems, quickly adopted new technologies like Docker, shipped in Enterprise, and much, much more in the short lifespan of the project. We've yet to be constrained by our language choice. If anything, we are amazed daily at Semantic's ability to abstract and represent the syntax and evaluation semantics of half a dozen (and counting) programming languages while keeping all the benefits of a strong static type system. If we'd chosen a more \"popular\" language it's likely we'd be mired in hundreds of thousands of lines of code and complaining about our tech debt, application performance, and the burden of adding any more languages. As it stands today, we've got 20k lines of Haskell code and some incredible program analysis capabilities at our disposal with little fear of adding more languages or supporting the changing needs of GitHub.\n\n[1]: https://en.wikipedia.org/wiki/Haskell_(programming_language)\n[cabal]: https://cabal.readthedocs.io/en/latest/\n[Stack]: https://docs.haskellstack.org/en/stable/README/\n[GHC]: https://en.wikipedia.org/wiki/Glasgow_Haskell_Compiler\n[Facebook]: https://github.com/facebook/Haxl\n[Advanced Overlap]: https://wiki.haskell.org/GHC/AdvancedOverlap\n"
  },
  {
    "path": "docs/why-tree-sitter.md",
    "content": "# How we parse source code into ASTs\n\n#### Table of Contents\n1. [Problem space and possible solutions](#problem-space-and-possible-solutions)\n2. [Why we use tree-sitter](#why-we-use-tree-sitter)\n3. [Drawbacks of tree-sitter](#drawbacks-of-tree-sitter)\n\n## Problem space and possible solutions\n\nParsing is a well studied problem and there are known trade-offs in the design space. Grammar development often requires seeing beyond the parser generator abstraction and understanding the implementation context. For the context of the Semantic Code team, transforming source code into ASTs via parsing and semantic modeling is necessary to support our work in program analysis and to generate semantic diffs.\n\nTo serve these goals, the following options were considered alongside `tree-sitter`:\n\n- Use existing language parsers (maybe run them in docker containers).\n- Join in with another open source effort like [Babelfish](https://doc.bblf.sh/).\n- Write our own parsers (perhaps directly in Haskell).\n- Write our own parsers (perhaps based on language parsers) in something like [Yacc](https://en.wikipedia.org/wiki/Yacc), [Bison](https://www.gnu.org/software/bison/), [ANTLR](http://www.antlr.org/).\n- Use [tree-sitter](https://github.com/tree-sitter/tree-sitter).\n\n## Why we use tree-sitter\n\n1. **Reusability and ease of implementation.** Many language implementations (such as widely used compilers) use a hand-written parser rather than an abstract grammar. While it bodes well for performance, it makes most parsers difficult to reuse because they're coupled to the language’s implementation. With tree-sitter, you don't have to write a lot of complicated code to parse a language; you just write the grammar. A grammar definition tends to be more maintainable and easier to understand, as it flows more naturally than code. _(Note: other language implementations that use parser generators possess similar abstractions and other ways to handle complexities beyond LR parsing)._\n2. **We want to parse all versions of a language.** Other parsers typically only work for the latest version of the language, whereas we need to parse (at least) the union of supported versions.\n3. **We parse comments.** Most parsers will discard comments in the lexer, whereas we need to have them in the AST.\n4. **Decoupled from a specific grammar format.** Grammar specifications are intimately coupled to the kinds of algorithms that can parse them. For example, the [Cocke–Younger–Kasami algorithm (CYK)](https://en.wikipedia.org/wiki/CYK_algorithm) used in Valiant's parser expects grammars in [Chomsky Normal Form (CNF)](https://en.wikipedia.org/wiki/Chomsky_normal_form). While there’s a decidable process for converting an arbitrary grammar into CNF, many algorithms only parse a subset of [Context Free Grammars (CFGs)](https://en.wikipedia.org/wiki/Context-free_grammar) for which there isn’t necessarily a decidable normalization process. For example, recursive descent parsers will infinite loop if the grammar is left-recursive, and some algorithms require unambiguous grammars.\n5. **Performance is decoupled from specific algorithm.** Similarly, grammar specifications are intimately coupled to performance characteristics using whatever algorithms will support them; a grammar which parses very efficiently with one algorithm may be a worst case for another.\n6. **There isn’t a universally accepted format for grammar specification.** BNF, and EBNF, are under-specified, and often unsupported; useful only for informal specification to humans, and not for formal specification to machines.\n7. **Language specifications are complex.** Some languages’ grammar specs turn out to be complex, for example [Java's language specification](https://docs.oracle.com/javase/specs/jls/se9/html/index.html). Similarly problematic is [Swift's spec](https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html), described by @robrix as \"a subtle and intricate work of fiction\".\n8. **Open source.** By using tree-sitter we can lean on open source contributors to do grammar development work.\n9. **Low learning curve.** Writing grammars in JavaScript (as opposed to some custom notation/language) is quite powerful.\n10. **Multiple algorithms for handling ambiguity.** Precedence annotations at compile time, GLR at runtime.\n11. **External scanner support.** In case you need to parse a context-sensitive grammar. An example of an external scanner is in [Ruby's language support](https://github.com/tree-sitter/tree-sitter-ruby/blob/master/src/scanner.cc).\n12. **Solid tooling for development and debugging.** Tree-sitter makes it easy to get up and running fairly quickly. It also provides detailed error messages to guide grammar development.\n13. **Built in performance tooling.**\n14. **Parsing is very fast.**\n15. **We have full control over the shape and productions of trees.** This capability isn't the case with a number of the other approaches. Not only can we parse comments, but tree-sitter also gives us the ability to optimize trees to be generalized or to meet other needs like syntax highlighting or evaluation ease.\n16. **Secure and well-tested.** We've actively invested in fuzzing and other security measures to properly deal with corner cases.\n17. **Incremental parsing and error recovery.** Tree-sitter has several features that make it suitable for use-cases that may require real-time updates to the parse tree. We see this in syntax-highlighting support for text editors like Atom, though it's outside the realm of our team's focus.\n\n## Drawbacks of tree-sitter\n\n1. Error-recovery is sometimes opaque and not conducive to precise diagnostics and debugging.\n2. External scanners also allow you to write custom C code for the purpose of handling lexical rules. This means running arbitrary C code. [Fact-check]\n4. Though not unique to tree-sitter, grammar development is often a tedious task.\n5. Convenient usage of a grammar often requires something like [parser combinators](https://en.wikipedia.org/wiki/Parser_combinator), again tying the grammar specification to a single language. These will also generally couple the grammar to the types used to represent it. But if you don’t do this, you can really only represent the AST very generally (ex. as a rose tree). This is what tree-sitter does: each node is labelled with its symbol, and can have zero or more children. To recover a richer structure (which you can actually use for anything specialized to a specific language), you essentially have to parse the parse tree (which is what we do with assignment).\n6. Generated C programs can be quite large.\n7. Parsing can be extremely slow for pathological inputs such as infinite loops, sometimes taking hours and even days.\n8. Writing a grammar for each language from scratch is _a lot_ of work.\n9. Support for unicode is currently lagging.\n"
  },
  {
    "path": "docs/💡ProTip!.md",
    "content": "# 💡ProTip!\n\n## Performance\n\n- You can conveniently build and run `semantic` with profiling enabled using `script/profile`. Any arguments you pass to the script will be passed along to `semantic`. It will archive the results in the `profiles` folder, and open the run when it’s finished.\n- Similarly, you can generate [threadscope](https://wiki.haskell.org/ThreadScope) profiles with `script/threadscope`.\n- To profile you will need to make sure profiteur is installed: `stack install profiteur`\nalong with `ps2pdf`: `brew install ghostscript`.\n- The Haskell wiki has [some handy rules of thumb for strict evaluation](https://wiki.haskell.org/Performance/Strictness#Rule_of_Thumb_for_Strictness_Annotation). This can be useful when dealing with performance issues caused by long chains of lazy computations, and when ensuring sequencing (e.g. for parallelism or correct handling of FFI allocations).\n\n\n## Memory Leaks\n\nSpace leaks are sometimes introduced into Semantic when holding on to a reference for too long, building up unevaluated expressions, or by keeping around unneeded references. While GHC has a garbage collector that can prevent dangling pointers, it's still possible to create space leaks in connection with lazy evaluation. Space leaks not only consume more memory, but also slow down the garbage collector considerably!\n\nSpace leaks can be detected by running `semantic` with a restricted heap size. Neil Mitchell's blog post describes a method for [detecting space leaks](http://neilmitchell.blogspot.co.uk/2015/09/detecting-space-leaks.html) by analyzing the stack traces of stack overflows when compiling with a restricted heap size.\n\n\n## Building\n\nBefore building with `cabal`, be sure to run `cabal configure --disable-optimizations --enable-tests`. GHC defaults to `-O1`, which can significantly slow recompiles.\n\n## Testing\n\n`stack build --fast semantic:test` builds and runs the unit tests.\n\n- Find out what all the possible test arguments are with `cabal run semantic:spec -- --help`.\n- Focus in on a particular test or set of tests with `-m`/`--match`:\n\n        cabal run semantic:spec -- -p ruby\n\n- It can take a while to run them over the whole project. Focus in on a particular module with `--test-arguments`:\n\n        cabal run semantic:spec -- -p Data.Language\n\n# Ctags Support\n\nYou can enable ctags support for the project by installing [`codex`](https://github.com/aloiscochard/codex) to generate\na ctags file. This is often useful because haskell-ide-engine's jump-to-definition feature can break during editing.\n\n        `stack install hasktags`\n        `git clone https://github.com/aloiscochard/codex && cd codex && stack install codex`\n\nTo generate or update the tags file:\n\n        `codex update`\n\nSymbol support is handled by the `symbols-view` package in atom or your friendly editor's ctags support. In atom you can use `cmd-alt-down` and `cmd-alt-up` to jump to a definition and jump back to your original position. If you're using a `vim` plugin, they're also bound to `ctrl-]` and `ctrl-t`. `cmd-shift-r` lists all tags in the project.\n\nThe `symbols-view` package only recognizes files named `tags` in the root of your project so you'll have to add a symlink:\n\n        `ln -s codex.tags tags`\n\nAlternatively, you can replace `symbols-view` with `joshvera/tags-view` in your atom packages which adds support for jumping to absolute paths (if you want to navigate to a haskell dependency or base library in stackage) and recognizes `codex.tags` files.\n\n        `git clone https://github.com/joshvera/tags-view ~/.atom/packages/tags-view`\n\nThen disable the `symbols-view` package.\n\n## Working with grammar datatypes\n\n`haskell-tree-sitter` includes some TemplateHaskell machinery to generate a datatype from a tree-sitter parser’s symbol table. You can generally guess the constructors of that type by turning the snake_case production names from the tree-sitter grammar into UpperCamelCase names, but you can also have the compiler dump the datatype out in full in the repl:\n\n        λ :info Language.JSON.Grammar.Grammar\n\n_Voilà!_ You’re now looking at the source code for the datatype generated from the symbol table:\n\n    data Language.JSON.Grammar.Grammar\n      = Language.JSON.Grammar.END\n      | Language.JSON.Grammar.AnonLBrace\n      | Language.JSON.Grammar.AnonComma\n      | Language.JSON.Grammar.AnonRBrace\n      | Language.JSON.Grammar.AnonColon\n      | Language.JSON.Grammar.AnonLBracket\n      | Language.JSON.Grammar.AnonRBracket\n      | Language.JSON.Grammar.String\n      | Language.JSON.Grammar.Number\n      | Language.JSON.Grammar.True\n      | Language.JSON.Grammar.False\n      | Language.JSON.Grammar.Null\n      | Language.JSON.Grammar.HiddenValue\n      | Language.JSON.Grammar.Object\n      | Language.JSON.Grammar.Pair\n      | Language.JSON.Grammar.Array\n      | Language.JSON.Grammar.AuxObjectRepeat1\n      | Language.JSON.Grammar.AuxArrayRepeat1\n      | Language.JSON.Grammar.ParseError\n      \t-- Defined at src/Language/JSON/Grammar.hs:10:1\n    instance Bounded Language.JSON.Grammar.Grammar\n      -- Defined at src/Language/JSON/Grammar.hs:10:1\n    instance Ord Language.JSON.Grammar.Grammar\n      -- Defined at src/Language/JSON/Grammar.hs:10:1\n    instance Eq Language.JSON.Grammar.Grammar\n      -- Defined at src/Language/JSON/Grammar.hs:10:1\n    instance Enum Language.JSON.Grammar.Grammar\n      -- Defined at src/Language/JSON/Grammar.hs:10:1\n    instance Show Language.JSON.Grammar.Grammar\n      -- Defined at src/Language/JSON/Grammar.hs:10:1\n\n\n## GHCi\n\nThe Haskell interactive repl (GHCi) allows you to quickly typecheck your work and test out ideas interactively. It’s always worth having a repl open, and we’ve particularly tuned some workflows for the repl.\n\nFull docs for ghci can be found in the [user’s guide][ghci user’s guide].\n\n[ghci user’s guide]: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/ghci.html\n\n\n### Multiple components\n\n`semantic` consists of multiple packages and components, which makes it somewhat challenging to load into `ghci` using e.g. `cabal repl`. To help that, we provide [`script/repl`][] to automate working with multiple components & packages. Unlike when using `cabal repl`, after loading you will need to explicitly `:load` (at least some of) the sources you need to work with. For example, when working in the main `semantic` package, almost everything can be loaded with `:load Semantic.CLI`, since the `Semantic.CLI` module ultimately depends on just about everything else in the repo.\n\nThis script is also set up to store intermediate build products in a separate `dist-repl` dir to avoid colliding with normal builds.\n\n[`script/repl`]: https://github.com/github/semantic/blob/master/script/repl\n\n\n### Configuration\n\n`ghci` can be configured with scripts containing Haskell statements and repl commands. By default, the `~/.ghc/ghci.conf` file will be loaded, as well as a `.ghci` file in the working directory, if any. We don’t currently provide such for use with `semantic`, but we do provide a [`.ghci.sample`][] file which we suggest copying to `~/.ghc/ghci.conf` for better typed holes, pretty-printing via `pretty-simple`, and a simple prompt.\n\n[`.ghci.sample`]: https://github.com/github/semantic/blob/master/.ghci.sample\n\n\n### Managing history\n\n`ghci` uses the `haskeline` package to perform the `readline`-like navigation, search, and management of history, as well as tab-completions. `haskeline` has [several user preferences][haskeline user preferences] and [custom key bindings][haskeline custom key bindings] which can be configured per-user via the `~/.haskeline` file. For example, these preferences cause `haskeline` to include only one instance of repeated commands in history, and to place no upper bound on the number of commands it will remember:\n\n```\nhistoryDuplicates: IgnoreAll\nmaxHistorySize: Nothing\n```\n\n[haskeline user preferences]: http://trac.haskell.org/haskeline/wiki/UserPrefs\n[haskeline custom key bindings]: http://trac.haskell.org/haskeline/wiki/CustomKeyBindings\n\n\n### Pretty-printing\n\nBy default, GHCi prints the results of expressions using their `Show` instances, which can be particularly difficult to read for large recursive structures like `Term`s and `Diff`s. The project’s [`.ghci.sample`][] file provides `:pretty` & `:no-pretty` macros which respectively enable & disable colourized, pretty-printed formatting of result values instead. These macros depend on the the `pretty-simple` package.\n\nSince `:reload`ing resets local bindings, the file also provides a convenient `:r` macro which reloads and then immediately re-enables `:pretty`.\n\nYou can use `:pretty` & `:no-pretty` like so:\n\n```\nλ :no-pretty\nλ Data.Range.Range <$> [1..3] <*> [4..6]\n[Range {start = 1, end = 4},Range {start = 1, end = 5},Range {start = 1, end = 6},Range {start = 2, end = 4},Range {start = 2, end = 5},Range {start = 2, end = 6},Range {start = 3, end = 4},Range {start = 3, end = 5},Range {start = 3, end = 6}]\nλ :pretty\nλ Data.Range.Range <$> [1..3] <*> [4..6]\n[ Range { start = 1 , end = 4 }\n, Range { start = 1 , end = 5 }\n, Range { start = 1 , end = 6 }\n, Range { start = 2 , end = 4 }\n, Range { start = 2 , end = 5 }\n, Range { start = 2 , end = 6 }\n, Range { start = 3 , end = 4 }\n, Range { start = 3 , end = 5 }\n, Range { start = 3 , end = 6 }\n]\n```\n\n\n## Using Threadscope\n\nThreadscope is a tool for profiling the multi-threaded performance of Haskell programs. It allows us to see how work is shared across processors and identify performance issues related to garbage collection or bottlenecks in our processes.\n\nTo install threadscope:\n\n1. Download a prebuilt binary from https://github.com/haskell/ThreadScope/releases\n2. `chmod a+x` the result of extracting the release\n3. `brew install gtk+ gtk-mac-integration`\n"
  },
  {
    "path": "hie.yaml",
    "content": "cradle:\n  cabal:\n    - path: \"semantic\"\n      component: \"lib:semantic\"\n    - path: \"semantic-analysis\"\n      component: \"lib:semantic-analysis\"\n    - path: \"semantic-ast\"\n      component: \"lib:semantic-ast\"\n    - path: \"semantic-codeql\"\n      component: \"lib:semantic-codeql\"\n    - path: \"semantic-go\"\n      component: \"lib:semantic-go\"\n    - path: \"semantic-java\"\n      component: \"lib:semantic-java\"\n    - path: \"semantic-json\"\n      component: \"lib:semantic-json\"\n    - path: \"semantic-parse\"\n      component: \"lib:semantic-parse\"\n    - path: \"semantic-php\"\n      component: \"lib:semantic-php\"\n    - path: \"semantic-python\"\n      component: \"lib:semantic-python\"\n    - path: \"semantic-ruby\"\n      component: \"lib:semantic-ruby\"\n    - path: \"semantic-rust\"\n      component: \"lib:semantic-rust\"\n    - path: \"semantic-scope-graph\"\n      component: \"lib:semantic-scope-graph\"\n    - path: \"semantic-source\"\n      component: \"lib:semantic-source\"\n    - path: \"semantic-tags\"\n      component: \"lib:semantic-tags\"\n    - path: \"semantic-tsx\"\n      component: \"lib:semantic-tsx\"\n    - path: \"semantic-typescript\"\n      component: \"lib:semantic-typescript\"\n"
  },
  {
    "path": "notices/THIRD_PARTY_NOTICE.md",
    "content": "# Third Party Notices and Information\n\nContainer images built with this project include third party materials; see\nbelow for license and other copyright information.\n\nCertain open source code is available in container images, or online as noted\nbelow, or you may send a request for source code including identification of the\ncontainer, the open source component name, and version number, to:\n`opensource@github.com`.\n\nNotwithstanding any other terms, you may reverse engineer this software to the\nextent required to debug changes to any libraries licensed under the GNU Lesser\nGeneral Public License for your own use.\n\n## Debian packages\n\nLicense and other copyright information for each package is included in the\nimage at `/usr/share/doc/{package}/copyright`.\n\nSource for each package is available at\n`https://packages.debian.org/source/{package}`.\n\n## Haskell packages\n\nLicense and other copyright information for each package is included in the\nimage at `/usr/share/doc/licenses/cabal/{package}.txt`.\n\nSource and additional information for each package is available at\n`https://hackage.haskell.org/package/{package}`.\n"
  },
  {
    "path": "proto/semantic.proto",
    "content": "syntax = \"proto3\";\n\npackage github.semantic;\n\noption ruby_package = \"Semantic::Proto\";\n\nmessage PingRequest {\n  string service = 1;\n}\n\nmessage PingResponse {\n  string status = 1;\n  string hostname = 2;\n  string timestamp = 3;\n  string sha = 4;\n}\n\nmessage ParseTreeRequest {\n  repeated Blob blobs = 1;\n}\n\nmessage ParseTreeSymbolResponse {\n  repeated File files = 1;\n}\n\nmessage StackGraphRequest {\n  repeated Blob blobs = 1;\n}\n\nmessage StackGraphResponse {\n  repeated StackGraphFile files = 1;\n}\n\nmessage ParseError {\n  string error = 1;\n}\n\nmessage Blob {\n  string content = 1;\n  string path = 2;\n  string language = 3;\n}\n\nmessage File {\n  string path = 1;\n  string language = 2;\n  repeated Symbol symbols = 3;\n  repeated ParseError errors = 4;\n  string blob_oid = 5;\n}\n\nmessage Symbol {\n  string symbol = 1;\n  string kind = 2;\n  string line = 3;\n  Span span = 4;\n  Docstring docs = 5;\n  NodeType node_type = 6;\n  SyntaxType syntax_type = 7;\n  Span utf16_code_unit_span = 8;\n  ByteRange byte_range = 9;\n}\n\nmessage Docstring {\n  string docstring = 1;\n}\n\nmessage Position {\n  int32 line = 1;\n  int32 column = 2;\n}\n\nmessage Span {\n  Position start = 1;\n  Position end = 2;\n}\n\nmessage ByteRange {\n  int32 start = 1;\n  int32 end = 2;\n}\n\nmessage StackGraphFile {\n  string path = 1;\n  string language = 2;\n  repeated StackGraphNode nodes = 3;\n  repeated StackGraphPath paths = 4;\n  repeated ParseError errors = 5;\n}\n\nenum NodeType {\n  ROOT_SCOPE = 0;\n  JUMP_TO_SCOPE = 1;\n  EXPORTED_SCOPE = 2;\n  DEFINITION = 3;\n  REFERENCE = 4;\n}\n\nenum SyntaxType {\n  FUNCTION = 0;\n  METHOD = 1;\n  CLASS = 2;\n  MODULE = 3;\n  CALL = 4;\n  TYPE = 5;\n  INTERFACE = 6;\n  IMPLEMENTATION = 7;\n}\n\nmessage StackGraphNode {\n  int64 id = 1;\n  string name = 2;\n  string line = 3;\n  Span span = 4;\n  SyntaxType syntax_type = 5;\n  NodeType node_type = 6;\n}\n\nmessage StackGraphPath {\n  repeated string starting_symbol_stack = 1;\n  int64 starting_scope_stack_size = 2;\n  int64 from = 3;\n  string edges = 4;\n  int64 to = 5;\n  repeated int64 ending_scope_stack = 6;\n  repeated string ending_symbol_stack = 7;\n}\n"
  },
  {
    "path": "script/astgen",
    "content": "#!/bin/bash\nbazel run //semantic-ast:generate-ast -- --language=all --rootdir=$PWD\n"
  },
  {
    "path": "script/bootstrap",
    "content": "#!/usr/bin/env bash\n\ncabal v2-update\n"
  },
  {
    "path": "script/bootstrap-bazel",
    "content": "#!/bin/bash\n\nset -e pipefail\n\necho \"Installing Bazel...\"\nbrew install bazel\nmkdir -p .bazel-cache/bazel-disk || true\nmkdir .bazel-cache/bazel-repo || true\n"
  },
  {
    "path": "script/build-and-upload",
    "content": "#!/usr/bin/env bash\n\n# Usage: script/build-and-upload PROJECT_NAME\n# where PROJECT_NAME is one of the packages present in this repo:\n# semantic-source, etc.\n\nset -e\n\nPROJECT=\"$1\"\nROOT_DIR=\"$(dirname \"$0\")/..\"\nCABAL_PATH=\"$ROOT_DIR/$PROJECT/$PROJECT.cabal\"\n\nif [ -z \"$PROJECT\" ]\nthen echo \"USAGE: build_and_upload PROJECT_NAME\"; exit 1\nfi\n\nif [ ! -f \"$CABAL_PATH\" ]\nthen echo \"Couldn't find .cabal file at $CABAL_PATH; is $PROJECT a valid package?\"; exit 1\nfi\n\nset -x\n\ncabal v2-build \"$PROJECT\"\nTGZ_LOC=\"$(cabal v2-sdist \"$PROJECT\" | tail -n 1)\"\nDOCS_LOC=\"$(cabal v2-haddock --haddock-for-hackage \"$PROJECT\" | tail -n 1)\"\nPACKAGE_VERSION=\"$(basename \"$TGZ_LOC\" .tar.gz)\"\n\nif [ ! -f \"$TGZ_LOC\" ]\nthen echo \"Bug in build_and_upload: $PACKAGE_FN doesn't point to a valid path\"; exit 1\nfi\n\nset +x\n\necho \"You are planning to upload '$PACKAGE_VERSION'.\"\nread -rp \"Is this correct? [y/n] \" choice\nif [ \"$choice\" != \"y\" ]\n   then echo \"Aborting.\"; exit 1\nfi\n\necho \"Attempting to build $PACKAGE_VERSION from source\"\nTEMP_PATH=$(mktemp -d)\ntar -xvf \"$TGZ_LOC\" -C \"$TEMP_PATH\"\n\nset -x\n(\n    cd \"$TEMP_PATH/$PACKAGE_VERSION\"\n    pwd\n\n    cabal v2-update\n    cabal v2-build --disable-optimization\n)\nset +x\n\nif wget -q --spider \"https://hackage.haskell.org/package/$PACKAGE_VERSION\"\nthen\n    echo \"The package $PACKAGE_VERSION already exists on Hackage.\"\n    echo \"If you need to upload code changes, then bump the version number in $PROJECT/$PROJECT.cabal, make a PR, and run this script again.\"\n    echo \"Otherwise, if you need _only_ to loosen existing constraints in $PROJECT.cabal file, then you can create a new revision of this package on Hackage.\"\n    echo \"You'll need to make your changes by hand. Be sure to click the 'Review changes' button to check your work.\"\n    read -rp \"Do you want to open a browser so as to do this? [y/N]\" choice\n    if [ \"$choice\" == \"y\" ]\n    then\n        echo \"Opening…\"\n        sleep 1\n        open \"https://hackage.haskell.org/package/$PACKAGE_VERSION/$PROJECT.cabal/edit\"\n        exit 0\n    else\n        echo \"Aborting\"\n        exit 1\n    fi\nfi\n\necho \"******************\"\necho \"Uploading packages\"\necho \"******************\"\n\necho -n \"Hackage username: \"\nread HACKAGE_USER\necho\necho -n \"Hackage password: \"\nread -s HACKAGE_PASS\n\ncabal upload --username=\"$HACKAGE_USER\" --password=\"$HACKAGE_PASS\" \"$TGZ_LOC\"\ncabal upload --username=\"$HACKAGE_USER\" --password=\"$HACKAGE_PASS\" --documentation \"$DOCS_LOC\"\n\nURL=\"https://hackage.haskell.org/package/$PACKAGE_VERSION/candidate\"\n\necho \"Opening candidate URL in browser…\"\nsleep 1\nopen \"$URL\"\n\necho \"About to upload final version. Do you want to proceed?\"\necho \"Full-fledged package uploads cannot be undone!\"\nread -rp \"Type 'yes' to continue. \" choice\nif [ \"$choice\" != \"yes\" ]\n   then echo \"Aborting.\"; exit 1\nfi\n\nset -x\n\ncabal upload --username=\"$HACKAGE_USER\" --password=\"$HACKAGE_PASS\" --publish \"$TGZ_LOC\"\ncabal upload --username=\"$HACKAGE_USER\" --password=\"$HACKAGE_PASS\" --publish --documentation \"$DOCS_LOC\"\n\necho \"Tagging $PACKAGE_VERSION\"\ngit tag \"$PACKAGE_VERSION\"\ngit push --tags\n"
  },
  {
    "path": "script/clone-example-repos",
    "content": "#!/usr/bin/env bash\n#/ Usage: script/clone-example-repos\n#/\n#/ Clone some example repositories for smoke testing parsing, assignment, and precise ASTs.\n#/\n#/ NOTES:\n#/   - This script is intended to be called by `test/Examples.hs`\n\nset -e\ncd $(dirname \"$0\")/..\n\nmkdir -p tmp\n\n# clone_repo LOCAL_PATH URL SHA\nfunction clone_repo {\n  path=$1\n  url=\"https://github.com/$2\"\n  sha=$3\n\n  if [ ! -d \"$path\" ]; then\n    echo \"Cloning $url@$sha\"\n    git clone \"$url\" \"$path\"\n  else\n    echo \"$url@$sha already exists\"\n  fi\n\n  pushd \"$path\" > /dev/null # && git pull -q # NB: Enable this if you need to pin to a different sha for one of the repos.\n  git reset --hard -q $sha\n  popd > /dev/null\n}\n\ngo_examples=\"tmp/go-examples\"\nclone_repo \"$go_examples/go\" golang/go 870e12d7bfaea70fb0d743842f5864eb059cb939\nclone_repo \"$go_examples/moby\" moby/moby f57f260b49b6142366e6bc1274204ee0a1205945\n\npython_examples=\"tmp/python-examples\"\nclone_repo \"$python_examples/numpy\" numpy/numpy 058851c5cfc98f50f11237b1c13d77cfd1f40475\nclone_repo \"$python_examples/thealgorithms\" thealgorithms/python c6be53e1c43f870f5364eef1499ee1b411c966fb\nclone_repo \"$python_examples/flask\" pallets/flask 0b5b4a66ef99c8b91569dd9b9b34911834689d3f\nclone_repo \"$python_examples/httpie\" jakubroztocil/httpie 358342d1c915d6462a080a77aefbb20166d0bd5d\nclone_repo \"$python_examples/keras\" keras-team/keras e59570ae26670f788d6c649191031e4a8824f955\nclone_repo \"$python_examples/requests\" requests/requests 64bde6582d9b49e9345d9b8df16aaa26dc372d13\nclone_repo \"$python_examples/scikit-learn\" scikit-learn/scikit-learn d0f63a760d9993a7f68cfc5e1a075700d67c53d3\nclone_repo \"$python_examples/scrapy\" scrapy/scrapy 65d631329a1434ec013f24341e4b8520241aec70\nclone_repo \"$python_examples/pytorch\" pytorch/pytorch c865d46736db4afff51690a712e35ed8e3899490\nclone_repo \"$python_examples/certbot\" certbot/certbot bb8222200a8cbd39a3ce9584ce6dfed6c5d05228\n\nruby_examples=\"tmp/ruby-examples\"\nclone_repo \"$ruby_examples/ruby_spec\" ruby/spec c3e6b9017926f44a76e2b966c4dd35fa84c4cd3b\n\nts_examples=\"tmp/typescript-examples\"\nclone_repo \"$ts_examples/desktop\" desktop/desktop d1324f56d02dd9afca5d2e9da545905a7d41d671\nclone_repo \"$ts_examples/npm\" npm/npm ee147fbbca6f2707d3b16f4fa78f4c4606b2d9b1\n\n# java_examples=\"$dir/tree-sitter-java/vendor/tree-sitter-java/examples\"\n# clone_repo \"$java_examples/elasticsearch\" elastic/elasticsearch 4d62640bf116af7e825d89c7319a39c3f2f325b4\n# clone_repo \"$java_examples/guava\" google/guava e24fddc5fff7fd36d33ea38737b6606a7e476845\n# clone_repo \"$java_examples/RxJava\" ReactiveX/RxJava 8a6bf14fc9a61f7c1c0016ca217be02ca86211d2\n\n# haskell_examples=\"$dir/tree-sitter-haskell/vendor/tree-sitter-haskell/examples\"\n# clone_repo \"$haskell_examples/effects\" joshvera/effects 08f5f36f2600362685af593f4b327e933b60bf97\n# clone_repo \"$haskell_examples/postgrest\" PostgRest/postgrest f80cfbf165f951a062b3cbedac4556019905ca49\n# clone_repo \"$haskell_examples/ivory\" GaloisInc/ivory 3d00324ad1c113c7e70957ff6a6d636d271d0fc4\n"
  },
  {
    "path": "script/fix-broken-cabal-store",
    "content": "#!/usr/bin/env bash\n\nstore_dir=\"$HOME/.cabal/store/ghc-$(ghc --numeric-version)\"\n\nrm -rf \"$store_dir\"/tr-sttr*\nrm -rf \"$store_dir\"/lib/libHStr-sttr*\nrm -rf \"$store_dir\"/package.db/tr-sttr*\n"
  },
  {
    "path": "script/generate-example",
    "content": "#!/usr/bin/env bash\n#/ Usage: script/generate-example fileA fileB\n#/        script/generate-example directory\n#/\n#/ Generate expected output for a test fixture example or directory of examples.\n#/\n#/ Example:\n#/  script/generate-example test/fixtures/ruby/corpus/and-or.{A,B}.rb\n#/  script/generate-example test/fixtures/ruby/corpus\n\nset -e\n[ $# -eq 0 ] && set -- --help\n\nif [[ $1 = -h || $1 = --help ]]; then\n  grep ^#/ <\"$0\" |cut -c4-\n  exit\nfi\n\n# Work out of the project root directory\nroot=$(cd $(dirname \"$0\")/.. && pwd)\ncd \"$root\"\n\ncount=0\nstatus () {\n  tput cuu 1 && tput el\n  echo \"Generating $1\"\n  ((count+=1))\n}\n\ngenerate_example () {\n  fileA=\"$1\"\n  fileB=\"$2\"\n  parseFileA=\"${fileA%%.*}.parseA.txt\"\n  parseFileB=\"${fileB%%.*}.parseB.txt\"\n  diffFileAB=\"${fileA%%.*}.diffA-B.txt\"\n  diffFileBA=\"${fileB%%.*}.diffB-A.txt\"\n\n  if [ -e \"$fileA\" ]; then\n    status $parseFileA\n    cabal v2-run --verbose=0 semantic -- parse --sexpression $fileA > $parseFileA\n  fi\n\n  if [ -e \"$fileB\" ]; then\n    status $parseFileB\n    cabal v2-run --verbose=0 semantic -- parse --sexpression $fileB > $parseFileB\n  fi\n\n  if [ -e \"$fileA\" -a -e \"$fileB\" ]; then\n    status $diffFileAB\n    cabal v2-run --verbose=0 semantic -- diff --sexpression $fileA $fileB > $diffFileAB\n\n    status $diffFileBA\n    cabal v2-run --verbose=0 semantic -- diff --sexpression $fileB $fileA > $diffFileBA\n  fi\n}\n\nif [[ -d $1 ]]; then\n  echo \"Generating all examples for $1\"\n  echo \"\"\n  for f in $(ls $1/*.A.*); do\n    # echo \"${f%%.*}.B.\"${f##*.}\"\"\n    generate_example $f \"${f%%.*}.B.\"${f##*.}\"\"\n  done\nelse\n  echo \"Generating examples just for $1 $2\"\n  echo \"\"\n  generate_example $1 $2\nfi\n\necho \"Done. Generated $count examples.\"\n"
  },
  {
    "path": "script/ghci-flags",
    "content": "#!/usr/bin/env bash\n# Computes the flags for ghcide to pass to ghci. You probably won’t be running this yourself, but rather script/repl will.\n\nset -e\n\ncd \"$(dirname \"$0\")/..\"\n\nghc_version=\"$(ghc --numeric-version)\"\n\nbuild_dir=\"dist-newstyle/build/x86_64-osx/ghc-$ghc_version\"\nbuild_products_dir=\"$build_dir/build-repl\"\n\nfunction add_autogen_includes {\n    echo \"-optP-include\"\n    echo \"-optP$1/cabal_macros.h\"\n    # autogenerated files, .h and .hs\n    echo \"-i$1\"\n    echo \"-I$1\"\n}\n\ncores=$(sysctl -n machdep.cpu.core_count || echo 4)\n\n# disable optimizations for faster loading\necho \"-O0\"\n# don’t load .ghci files (for ghcide)\necho \"-ignore-dot-ghci\"\n\n# use as many jobs as there are physical cores\necho \"-j$cores\"\n\n# where to put build products\necho \"-outputdir $build_products_dir\"\necho \"-odir $build_products_dir\"\necho \"-hidir $build_products_dir\"\necho \"-stubdir $build_products_dir\"\n\nif [ -d \"$build_dir/semantic-0.11.0.0/build/autogen\" ]\nthen add_autogen_includes \"$build_dir/semantic-0.11.0.0/build/autogen\"\nelif [ -d \"$build_dir/semantic-0.11.0.0/noopt/build/autogen\" ]\nthen add_autogen_includes \"$build_dir/semantic-0.11.0.0/noopt/build/autogen\"\nfi\n\necho \"-optP-Wno-macro-redefined\"\n\necho \"-DBAZEL_BUILD=0\"\n\n# .hs source dirs\n# TODO: would be nice to figure this out from cabal.project & the .cabal files\necho \"-isemantic/app\"\necho \"-isemantic/src\"\necho \"-isemantic/bench\"\necho \"-isemantic/test\"\necho \"-isemantic-analysis/src\"\necho \"-isemantic-ast/src\"\necho \"-isemantic-codeql/src\"\necho \"-isemantic-codeql/test\"\necho \"-isemantic-go/src\"\necho \"-isemantic-java/src\"\necho \"-isemantic-json/src\"\necho \"-isemantic-json/test\"\necho \"-isemantic-parse/src\"\necho \"-isemantic-php/src\"\necho \"-isemantic-proto/src\"\necho \"-isemantic-python/src\"\necho \"-isemantic-python/test\"\necho \"-isemantic-ruby/src\"\necho \"-isemantic-rust/src\"\necho \"-isemantic-scope-graph/src\"\necho \"-isemantic-tsx/src\"\necho \"-isemantic-typescript/src\"\necho \"-isemantic-tags/src\"\n\n# disable automatic selection of packages\necho \"-hide-all-packages\"\necho \"-package proto-lens-jsonpb\"\n\n# run cabal and emit package flags from the environment file, removing comments & prefixing with -\ncabal v2-exec -v0 bash -- -c 'cat \"$GHC_ENVIRONMENT\"' | grep -v '^--' | sed -e 's/^/-/'\n\n# default language extensions\necho \"-XHaskell2010\"\necho \"-XStrictData\"\n\n# treat warnings as warnings\necho \"-Wwarn\"\n\n# default warning flags\necho \"-Weverything\"\necho \"-Wno-all-missed-specialisations\"\necho \"-Wno-implicit-prelude\"\necho \"-Wno-missed-specialisations\"\necho \"-Wno-missing-import-lists\"\necho \"-Wno-missing-local-signatures\"\necho \"-Wno-monomorphism-restriction\"\necho \"-Wno-name-shadowing\"\necho \"-Wno-safe\"\necho \"-Wno-unsafe\"\n[[ \"$ghc_version\" = 8.6.* ]] || [[ \"$ghc_version\" = 8.8.* ]] || [[ \"$ghc_version\" = 8.10.* ]] && echo \"-Wno-star-is-type\" || true\n[[ \"$ghc_version\" = 8.8.* ]] || [[ \"$ghc_version\" = 8.10.* ]] && echo \"-Wno-missing-deriving-strategies\" || true\n[[ \"$ghc_version\" = 8.10.* ]] && echo \"-Wno-missing-safe-haskell-mode\" && echo \"-Wno-prepositive-qualified-module\" && echo \"-Wno-unused-packages\"\n"
  },
  {
    "path": "script/profile",
    "content": "#!/usr/bin/env bash\n# Usage: script/profile FILE_A FILE_B\n# Builds and runs semantic on the given files with profiling enabled.\n\nset -e\n\nHEAD_SHA=$(git rev-parse --short HEAD)\nCURRENT_BRANCH=$(git symbolic-ref HEAD 2>/dev/null | awk -F/ {'print $NF'})\n\nPROJECT_DIR=\"$(dirname $0)/..\"\nPROFILES_DIR=\"$PROJECT_DIR/profiles\"\nTODAY=\"$(date \"+%Y-%m-%d\")\"\nNOW=$(date \"+%H_%M_%S\")\nPROFILE_DIR=\"$PROFILES_DIR/$TODAY/$NOW-$CURRENT_BRANCH-$HEAD_SHA/\"\nOUTFILE=\"$PROFILE_DIR/profile.out.log\"\nERRFILE=\"$PROFILE_DIR/profile.err.log\"\n\ncabal v2-build exe:semantic\n\nmkdir -p \"$PROFILE_DIR\"\n\n# NB: Do not try and use -N, it doesn't work and defaults to -N1.\ncores=$(sysctl -n machdep.cpu.core_count || echo 4)\ncabal v2-run exe:semantic -- +RTS -sstderr -N$((cores * 2)) -A8m -n2m -p -s -h -i0.1 -L1000 -xt -RTS $@ > \"$OUTFILE\" 2> \"$ERRFILE\"\n\nprofiteur semantic.prof || true\n\nhp2pretty semantic.hp\n\nfor f in \"$PROJECT_DIR/\"semantic.*; do\n\tif [ \"$f\" != \"$PROJECT_DIR/\"semantic.cabal ]; then\n\t\tmv \"$f\" \"$PROFILE_DIR\"\n\tfi\ndone\n\n(>&2 echo \"branch: $CURRENT_BRANCH ($HEAD_SHA)\")\n\nopen \"$PROFILE_DIR\"\n"
  },
  {
    "path": "script/protoc",
    "content": "#!/usr/bin/env bash\n#/ Usage: script/protoc\n#/\n#/ Generate code from .proto files\n\nset -ex\ncd \"$(dirname \"$0\")/..\"\n\ndocker build -t semantic-protoc --target protoc .\n\nPARENT_DIR=$(dirname $(pwd))\n\nexport PROJECT=\"github.com/github/semantic\"\n\n# Generate Haskell for semantic's protobuf types. See the entrypoint in\n# Dockerfile for where the protoc pluggins are configured.\ndocker run --rm --user $(id -u):$(id -g) -v $(pwd):/go/src/$PROJECT -w /go/src/$PROJECT \\\n    semantic-protoc --proto_path=proto \\\n    --haskell_out=./semantic-proto/src \\\n    --jsonpb_haskell_out=./semantic-proto/src \\\n    semantic.proto\n"
  },
  {
    "path": "script/publish",
    "content": "#!/usr/bin/env bash\n#/ Usage: script/publish\n#/\n#/ Build a docker image of the semantic CLI and publish to the GitHub Package Registry\n\nset -e\ncd $(dirname \"$0\")/..\n\nVERSION=\"0.9.0.0\"\nBUILD_SHA=$(git rev-parse HEAD 2>/dev/null)\nDOCKER_IMAGE=docker.pkg.github.com/github/semantic/semantic\n\n# Set the version to the current commit sha\nSED_ARGS=\"-i\"\nif [[ \"$(uname -s)\" = \"Darwin\" ]]; then\n  SED_ARGS=\"$SED_ARGS .bak\"\nfi\nsed $SED_ARGS \"s/buildSHA =.*/buildSHA = \\\"$BUILD_SHA\\\"/\" src/Semantic/Version.hs\n\n# Build\ndocker build -t $DOCKER_IMAGE .\n\n# Make sure semantic is in the image.\ndocker run --rm $DOCKER_IMAGE --version\n\nread -p \"Do you want to publish to the GitHub Registry [y/n]? \" -n 1 -r\necho\nif [[ $REPLY =~ ^[Yy]$ ]]; then\n  # Requires that you've logged in to the GPR (e.g. `docker login docker.pkg.github.com`)\n  # https://help.github.com/en/articles/configuring-docker-for-use-with-github-package-registry\n  docker tag $DOCKER_IMAGE $DOCKER_IMAGE:latest\n  docker tag $DOCKER_IMAGE $DOCKER_IMAGE:$VERSION\n  docker tag $DOCKER_IMAGE $DOCKER_IMAGE:sha_$BUILD_SHA\n  docker push $DOCKER_IMAGE:sha_$BUILD_SHA\n  docker push $DOCKER_IMAGE:$VERSION\n  docker push $DOCKER_IMAGE:latest\nfi\n"
  },
  {
    "path": "script/repl",
    "content": "#!/usr/bin/env bash\n# Usage: script/repl [ARGS...]\n# Run a repl session capable of loading all of the packages and their individual components. Any passed arguments, e.g. module names or flags, will be passed to ghci.\n\nset -e\n\ncd \"$(dirname \"$0\")/..\"\n\n# do a build of dependencies up front to ensure they’re all available\ncabal v2-build all --enable-benchmarks --enable-tests --only-dependencies\n\n# exec ghci with the appropriate flags, and without the $GHC_ENVIRONMENT variable interfering\ncabal v2-exec env -- -u GHC_ENVIRONMENT ghci -ghci-script=.ghci.repl $(script/ghci-flags) -no-ignore-dot-ghci $@\n"
  },
  {
    "path": "semantic/BUILD.bazel",
    "content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\n    \"@rules_haskell//haskell:defs.bzl\",\n    \"haskell_binary\",\n    \"haskell_library\",\n    \"haskell_test\",\n)\nload(\n    \"@rules_haskell//haskell:cabal.bzl\",\n    \"haskell_cabal_binary\",\n    \"haskell_cabal_library\",\n)\nload(\n    \"//:build/common.bzl\",\n    \"EXECUTABLE_FLAGS\",\n    \"GHC_FLAGS\",\n)\nload(\n    \"//:build/example_repos.bzl\",\n    \"SEMANTIC_EXTERNAL_TEST_REPOSITORIES\",\n)\n\nsemantic_common_dependencies = [\n    \"//:bytestring\",\n    \"//:containers\",\n    \"//:process\",\n    \"//:text\",\n    \"//semantic-analysis\",\n    \"//semantic-ast\",\n    \"//semantic-source\",\n    \"@stackage//:aeson\",\n    \"@stackage//:algebraic-graphs\",\n    \"@stackage//:async\",\n    \"@stackage//:directory\",\n    \"@stackage//:fused-effects\",\n    \"@stackage//:fused-effects-exceptions\",\n    \"@stackage//:hashable\",\n    \"@stackage//:network\",\n    \"@stackage//:pathtype\",\n    \"@stackage//:recursion-schemes\",\n    \"@stackage//:safe-exceptions\",\n    \"@stackage//:scientific\",\n    \"@stackage//:semilattices\",\n    \"@stackage//:streaming\",\n    \"@stackage//:unix\",\n]\n\nhaskell_library(\n    name = \"semantic\",\n    srcs = glob([\"src/**/*.hs\"]),\n    compiler_flags = GHC_FLAGS + [\"-XStrictData\"],\n    version = \"0.11.0.1\",\n    deps = semantic_common_dependencies + [\n        \"//:base\",\n        \"//:deepseq\",\n        \"//:filepath\",\n        \"//:template-haskell\",\n        \"//semantic-codeql\",\n        \"//semantic-go\",\n        \"//semantic-java\",\n        \"//semantic-json\",\n        \"//semantic-php\",\n        \"//semantic-proto\",\n        \"//semantic-python\",\n        \"//semantic-ruby\",\n        \"//semantic-scope-graph\",\n        \"//semantic-tags\",\n        \"//semantic-tsx\",\n        \"//semantic-typescript\",\n        \"//:ghc-prim\",\n        \"@stackage//:ansi-terminal\",\n        \"@stackage//:attoparsec\",\n        \"@stackage//:bifunctors\",\n        \"@stackage//:directory-tree\",\n        \"@stackage//:generic-lens\",\n        \"@stackage//:haskeline\",\n        \"@stackage//:hostname\",\n        \"@stackage//:hscolour\",\n        \"@stackage//:lens\",\n        \"@stackage//:network-uri\",\n        \"@stackage//:optparse-applicative\",\n        \"@stackage//:parsers\",\n        \"@stackage//:pretty-show\",\n        \"@stackage//:prettyprinter\",\n        \"@stackage//:proto-lens\",\n        \"@stackage//:proto-lens-runtime\",\n        \"@stackage//:reducers\",\n        \"@stackage//:semigroupoids\",\n        \"@stackage//:split\",\n        \"@stackage//:stm-chans\",\n        \"@stackage//:time\",\n        \"@stackage//:tree-sitter\",\n        \"@stackage//:tree-sitter-tsx\",\n        \"@stackage//:unordered-containers\",\n        \"@stackage//:vector\",\n    ],\n)\n\nhaskell_binary(\n    name = \"exe\",\n    srcs = glob([\"app/**/*.hs\"]),\n    compiler_flags = GHC_FLAGS + EXECUTABLE_FLAGS + [\"-XStrictData\"],\n    deps = [\n        \":semantic\",\n        \"//:base\",\n        \"//:filepath\",\n        \"//semantic-analysis\",\n        \"//semantic-proto\",\n        \"@stackage//:optparse-applicative\",\n        \"@stackage//:unix\",\n    ],\n)\n\nhaskell_binary(\n    name = \"bench\",\n    srcs = glob([\"bench/**/*.hs\"]),\n    compiler_flags = GHC_FLAGS + EXECUTABLE_FLAGS,\n    deps = [\n        \":semantic\",\n        \"//:base\",\n        \"//semantic-analysis\",\n        \"//semantic-proto\",\n        \"@stackage//:Glob\",\n        \"@stackage//:fused-effects\",\n        \"@stackage//:gauge\",\n        \"@stackage//:pathtype\",\n    ],\n)\n\nhaskell_test(\n    name = \"spec\",\n    srcs = glob(\n        include = [\"test/**/*.hs\"],\n        exclude = [\n            \"test/fixtures/**/*.hs\",\n            \"test/Examples.hs\",\n            \"test/System/Path/Fixture.hs\",\n        ],\n    ),\n    compiler_flags = GHC_FLAGS + EXECUTABLE_FLAGS + [\n        \"-XStrictData\",\n    ],\n    data = glob(include = [\n        \"test/fixtures/**/*.json\",\n        \"test/fixtures/go/**/*.go\",\n        \"test/fixtures/python/**/*.py\",\n        \"test/fixtures/ruby/**/*.rb\",\n        \"test/fixtures/javascript/**/*.js\",\n        \"test/fixtures/typescript/**/*.ts\",\n        \"test/fixtures/cli/*.json\",\n    ]),\n    deps = semantic_common_dependencies + [\n        \"//:base\",\n        \"//semantic\",\n        \"//semantic-proto\",\n        \"//semantic-json\",\n        \"//semantic-tags\",\n        \"@stackage//:Glob\",\n        \"@stackage//:HUnit\",\n        \"@stackage//:bazel-runfiles\",\n        \"@stackage//:bifunctors\",\n        \"@stackage//:hedgehog\",\n        \"@stackage//:hspec\",\n        \"@stackage//:hspec-core\",\n        \"@stackage//:hspec-expectations\",\n        \"@stackage//:tasty\",\n        \"@stackage//:tasty-golden\",\n        \"@stackage//:tasty-hedgehog\",\n        \"@stackage//:tasty-hspec\",\n        \"@stackage//:tasty-hunit\",\n        \"@stackage//:temporary\",\n        \"@stackage//:tree-sitter\",\n    ],\n)\n\nhaskell_test(\n    name = \"parse-examples\",\n    srcs = [\n        \"test/Examples.hs\",\n    ],\n    compiler_flags = GHC_FLAGS + EXECUTABLE_FLAGS + [\n        \"-XStrictData\",\n    ],\n    data = glob(include = [\n        \"test/fixtures/**/*.json\",\n        \"test/fixtures/go/**/*.go\",\n        \"test/fixtures/python/**/*.py\",\n        \"test/fixtures/ruby/**/*.rb\",\n        \"test/fixtures/javascript/**/*.js\",\n        \"test/fixtures/typescript/**/*.ts\",\n        \"test/fixtures/cli/*.json\",\n    ]) + SEMANTIC_EXTERNAL_TEST_REPOSITORIES,\n    deps = semantic_common_dependencies + [\n        \"//:base\",\n        \"//semantic\",\n        \"//semantic-proto\",\n        \"@stackage//:Glob\",\n        \"@stackage//:bazel-runfiles\",\n        \"@stackage//:lens\",\n        \"@stackage//:tasty\",\n        \"@stackage//:tasty-hunit\",\n    ],\n)\n"
  },
  {
    "path": "semantic/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2015-2019 GitHub\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "semantic/README.md",
    "content": "This package provides the `semantic` executable and its needed infrastructure.\n"
  },
  {
    "path": "semantic/Setup.hs",
    "content": "import Distribution.Simple\nmain = defaultMain\n"
  },
  {
    "path": "semantic/app/Main.hs",
    "content": "module Main (main) where\nimport Semantic.CLI (main)\n"
  },
  {
    "path": "semantic/bench/Main.hs",
    "content": "module Main (main) where\n\nimport Gauge\nimport qualified Tagging\n\nmain :: IO ()\nmain = defaultMain\n  [ Tagging.benchmarks\n  ]\n"
  },
  {
    "path": "semantic/bench/Tagging.hs",
    "content": "{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE TypeApplications #-}\n\nmodule Tagging\n( benchmarks\n, runTagging\n, pythonBenchmarks\n, goBenchmarks\n, rubyBenchmarks\n) where\n\nimport           Control.Carrier.Parse.Measured\nimport           Control.Exception (throwIO)\nimport           Control.Monad\nimport           Data.Foldable\nimport           Gauge\nimport           System.FilePath.Glob\nimport qualified System.Path as Path\n\nimport qualified Analysis.File as File\nimport           Data.Flag\nimport           Proto.Semantic as P hiding (Blob)\nimport           Semantic.Api.Symbols (parseSymbols)\nimport           Semantic.Config as Config\nimport           Semantic.Task\nimport           Semantic.Task.Files\n\nbenchmarks :: Benchmark\nbenchmarks = bgroup \"tagging\"\n  [ bench \"jquery\" $ runTagging' (Path.relFile \"semantic/test/fixtures/jquery-3.5.1.min.js\")\n  , bench \"sinatra\" $ runTagging' (Path.relFile \"semantic/test/fixtures/base.rb\")\n  ]\n  -- Feel free to turn these on or write other benchmarks\n  -- [ pythonBenchmarks\n  -- , goBenchmarks\n  -- , rubyBenchmarks\n  -- ]\n\nrunTagging' :: Path.RelFile -> Benchmarkable\nrunTagging' path = nfIO . withOptions testOptions $ \\ config logger statter -> do\n  let session = TaskSession config \"-\" False logger statter\n  runTask session (runParse (parseSymbolsFilePath path)) >>= either throwIO pure\n\npythonBenchmarks :: Benchmark\npythonBenchmarks = bgroup \"python\"\n  [ bench \"precise\" $ runTagging pyDir \"*.py\"\n  ]\n  where pyDir = Path.relDir \"tmp/python-examples/keras/keras\"\n\ngoBenchmarks :: Benchmark\ngoBenchmarks = bgroup \"go\"\n  [ bench \"precise\" $ runTagging dir \"*.go\"\n  ]\n  where dir = Path.relDir \"tmp/go-examples/go/src/database/sql\"\n\nrubyBenchmarks :: Benchmark\nrubyBenchmarks = bgroup \"ruby\"\n  [ bench \"precise\" $ runTagging dir \"*.rb\"\n  ]\n  where dir = Path.relDir \"tmp/ruby-examples/ruby_spec/command_line\"\n\nrunTagging :: Path.RelDir -> String -> Benchmarkable\nrunTagging dir glob = nfIO . withOptions testOptions $ \\ config logger statter -> do\n  let session = TaskSession config \"-\" False logger statter\n  files <- globDir1 (compile glob) (Path.toString dir)\n  when (null files) (fail (\"No files in \" <> Path.toString dir))\n  let paths = Path.relFile <$> files\n  for_ paths (runTask session . runParse . parseSymbolsFilePath >=> either throwIO pure)\n\nparseSymbolsFilePath ::\n  ( Has (Error SomeException) sig m\n  , Has Parse sig m\n  , Has Files sig m\n  )\n  => Path.RelFile\n  -> m ParseTreeSymbolResponse\nparseSymbolsFilePath path = readBlob (File.fromPath path) >>= parseSymbols . pure @[]\n\ntestOptions :: Config.Options\ntestOptions = defaultOptions\n  { optionsFailOnWarning = flag FailOnWarning True\n  , optionsLogLevel = Nothing\n  }\n"
  },
  {
    "path": "semantic/bench/bench-fixtures/python/function-definition.py",
    "content": "def a():\n  b\n\ndef c(d):\n  e\n\ndef g(g, *h):\n  i\n\ndef h(i=1):\n  i\n\ndef i(j=\"default\", **c):\n  j\n"
  },
  {
    "path": "semantic/bench/bench-fixtures/python/if-statement-functions.py",
    "content": "def foo(): return \"bipp\"\n\ndef bar(): return foo()\n\ndef baz(): return bar()\n\ndef why(): return \"elle\"\n\nif True:\n    baz()\nelse:\n    why()\n"
  },
  {
    "path": "semantic/bench/bench-fixtures/python/simple-assignment.py",
    "content": "foo = 2\nbar = foo\ndang = 3\nsong = dang\nsong\n"
  },
  {
    "path": "semantic/bench/bench-fixtures/ruby/function-definition.rb",
    "content": "def a()\n  \"b\"\nend\n\ndef c(d)\n  \"e\"\nend\n\ndef g(g_)\n  \"i\"\nend\n\ndef h(i=1)\n  i\nend\n\ndef i()\n  \"j\"\nend\n"
  },
  {
    "path": "semantic/bench/bench-fixtures/ruby/if-statement-functions.rb",
    "content": "def foo()\n  \"bipp\"\nend\n\ndef bar()\n  foo()\nend\n\ndef baz()\n  bar()\nend\n\ndef why()\n  return \"elle\"\nend\n\nif true\n  baz()\nelse\n  why()\nend\n"
  },
  {
    "path": "semantic/bench/bench-fixtures/ruby/simple-assignment.rb",
    "content": "foo = 2\nbar = foo\ndang = 3\nsong = dang\nsong\n"
  },
  {
    "path": "semantic/semantic.cabal",
    "content": "cabal-version:       2.4\n\nname:                semantic\nversion:             0.11.0.1\nsynopsis:            Framework and executable for analyzing and diffing untrusted code.\ndescription:         Semantic is a library for parsing, analyzing, and comparing source code across many languages.\nhomepage:            http://github.com/github/semantic#readme\nbug-reports:         https://github.com/github/semantic/issues\nlicense:             MIT\nlicense-file:        LICENSE\nauthor:              The Semantic authors\nmaintainer:          opensource+semantic@github.com\ncopyright:           (c) 2015-2020 GitHub, Inc.\ncategory:            Language\nbuild-type:          Simple\nstability:           alpha\nextra-source-files:  README.md\n\ntested-with:         GHC == 8.10.1\n\nflag release\n  description: Build with optimizations on (for CI or deployment builds)\n  default:     False\n\n-- GHC extensions shared between targets\ncommon haskell\n  default-language:    Haskell2010\n  default-extensions:  StrictData\n  ghc-options:\n    -Weverything\n    -Wno-missing-local-signatures\n    -Wno-missing-import-lists\n    -Wno-implicit-prelude\n    -Wno-safe\n    -Wno-unsafe\n    -Wno-name-shadowing\n    -Wno-monomorphism-restriction\n    -Wno-missed-specialisations\n    -Wno-all-missed-specialisations\n    -Wno-star-is-type\n  cpp-options:\n    -DBAZEL_BUILD=0\n  if (impl(ghc >= 8.8))\n    ghc-options: -Wno-missing-deriving-strategies\n  if (impl(ghc >= 8.10))\n    ghc-options:\n      -Wno-missing-safe-haskell-mode\n      -Wno-prepositive-qualified-module\n  if (impl(ghc >= 9.2))\n    ghc-options:\n      -Wno-missing-kind-signatures\n\ncommon executable-flags\n  ghc-options:         -threaded -rtsopts \"-with-rtsopts=-N -A4m -n2m\"\n\nlibrary\n  import:              haskell\n  hs-source-dirs:      src\n  exposed-modules:     Control.Carrier.Parse.Measured\n                     , Control.Carrier.Parse.Simple\n                     -- Effects\n                     , Control.Effect.Parse\n                     , Control.Effect.Sum.Project\n                     , Control.Effect.Timeout\n                     -- General datatype definitions & generic algorithms\n                     , Data.Blob\n                     , Data.Blob.IO\n                     , Data.Duration\n                     , Data.Edit\n                     , Data.Error\n                     , Data.Flag\n                     , Data.Graph.Algebraic\n                     , Data.Handle\n                     , Data.Maybe.Exts\n                     , Data.Semigroup.App\n                     -- Parser glue\n                     , Parsing.Parser\n                     , Parsing.TreeSitter\n                     -- API\n                     , Semantic.Api\n                     , Semantic.Api.Bridge\n                     , Semantic.Api.StackGraph\n                     , Semantic.Api.Symbols\n                     , Semantic.Api.Terms\n                     , Semantic.CLI\n                     , Semantic.Config\n                     , Semantic.Env\n                     , Semantic.IO\n                     , Semantic.Task\n                     , Semantic.Task.Files\n                     , Semantic.Telemetry\n                     , Semantic.Telemetry.AsyncQueue\n                     , Semantic.Telemetry.Error\n                     , Semantic.Telemetry.Log\n                     , Semantic.Telemetry.Stat\n                     , Semantic.Util\n                     , Semantic.Util.Pretty\n                     , Semantic.Version\n                     -- Serialization\n                     , Serializing.Format\n                     , Serializing.SExpression.Precise\n                     -- Custom Prelude\n  autogen-modules:     Paths_semantic\n  other-modules:       Paths_semantic\n  -- Except in case of vendored dependencies, these deps should be expressed\n  -- as caret-operator bounds relative to a version in Stackage.\n  -- These are currently pinned to lts-13.13.\n  build-depends:\n    , aeson >= 1.4.2.0 && < 3\n    , algebraic-graphs >= 0.3 && < 0.7\n    , ansi-terminal >= 0.8.2 && <1\n    , async ^>= 2.2.1\n    , base >= 4.13 && < 5\n    , bytestring >= 0.10.8.2 && < 0.13\n    , containers ^>= 0.6.2\n    , directory-tree ^>= 0.12.1\n    , filepath ^>= 1.4.2.1\n    , fused-effects ^>= 1.1\n    , hostname ^>= 1.0\n    , hscolour ^>= 1.24.4\n    , lens >= 4.17 && < 5.3\n    , network >= 2.8 && < 3.2\n    , network-uri ^>= 2.6.1.0\n    , optparse-applicative >= 0.14.3 && < 0.16\n    , pretty-show ^>= 1.9.5\n    , proto-lens >= 0.5 && < 0.8\n    , semantic-analysis ^>= 0\n    , semantic-ast\n    , semantic-codeql ^>= 0\n    , semantic-go ^>= 0\n    , semantic-java ^>= 0\n    , semantic-json ^>= 0\n    , semantic-php ^>= 0\n    , semantic-proto ^>= 0\n    , semantic-python ^>= 0\n    , semantic-ruby ^>= 0\n    , semantic-scope-graph ^>= 0\n    , semantic-source ^>= 0.2\n    , semantic-tags ^>= 0\n    , semantic-tsx ^>= 0\n    , semantic-typescript ^>= 0\n    , semilattices ^>= 0.0.0.3\n    , split ^>= 0.2.3.3\n    , stm-chans ^>= 3.0.0.4\n    , text ^>= 1.2.3.2\n    , time >= 1.8.0.2 && < 1.10\n    , tree-sitter ^>= 0.9.0.1\n    , unix ^>= 2.7.2.2\n\nexecutable semantic\n  import:              haskell, executable-flags\n  hs-source-dirs:      app\n  main-is:             Main.hs\n  build-depends:\n    , base\n    , semantic\n\ntest-suite test\n  import:              haskell, executable-flags\n  type:                exitcode-stdio-1.0\n  hs-source-dirs:      test\n  main-is:             Spec.hs\n  other-modules:       Data.Graph.Spec\n                     , Data.Language.Spec\n                     , Data.Semigroup.App.Spec\n                     , Integration.Spec\n                     , Semantic.Spec\n                     , Semantic.CLI.Spec\n                     , Semantic.IO.Spec\n                     , Semantic.Stat.Spec\n                     , Tags.Spec\n                     , SpecHelpers\n                     , Generators\n                     , Properties\n  build-depends:\n    , algebraic-graphs >= 0.3 && < 0.7\n    , base >= 4.13 && < 5\n    , bytestring >= 0.10.8.2 && < 0.13\n    , directory\n    , filepath\n    , fused-effects\n    , Glob ^>= 0.10.0\n    , hedgehog >= 1 && < 1.2\n    , hspec >= 2.6 && <3\n    , hspec-expectations ^>= 0.8.2\n    , network >= 2.8 && < 3.2\n    , semantic\n    , semantic-analysis\n    , semantic-ast\n    , semantic-proto\n    , semantic-source ^>= 0.2\n    , semantic-tags\n    , semilattices\n    , tasty ^>= 1.2.3\n    , tasty-golden ^>= 2.3.2\n    , tasty-hedgehog >= 1.0.0.1 && < 1.3\n    , tasty-hspec >= 1.1.5.1 && < 1.3\n    , tasty-hunit ^>= 0.10.0.2\n\ntest-suite parse-examples\n  import:              haskell, executable-flags\n  type:                exitcode-stdio-1.0\n  hs-source-dirs:      test\n  main-is:             Examples.hs\n  build-depends:\n    , async ^>= 2.2.1\n    , base\n    , filepath\n    , fused-effects ^>= 1.1\n    , Glob\n    , lens >= 4.17 && < 5.2\n    , process ^>= 1.6.3.0\n    , semantic\n    , semantic-analysis ^>= 0\n    , semantic-ast\n    , semantic-proto ^>= 0\n    , tasty\n    , tasty-hunit\n    , text ^>= 1.2.3.2\n\nbenchmark benchmarks\n  import:              haskell, executable-flags\n  hs-source-dirs:      bench\n  type:                exitcode-stdio-1.0\n  main-is:             Main.hs\n  other-modules:       Tagging\n  ghc-options:         -static\n  build-depends:\n    , base\n    , fused-effects ^>= 1.1\n    , gauge ^>= 0.2.5\n    , Glob\n    , semantic\n    , semantic-analysis ^>= 0\n    , semantic-proto\n\nsource-repository head\n  type:     git\n  location: https://github.com/github/semantic\n"
  },
  {
    "path": "semantic/src/Control/Carrier/Parse/Measured.hs",
    "content": "{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\n-- | A carrier for 'Parse' effects suitable for use in production.\nmodule Control.Carrier.Parse.Measured\n( -- * Parse carrier\n  ParseC(..)\n  -- * Exceptions\n, ParsingTimedOut(..)\n  -- * Parse effect\n, module Control.Effect.Parse\n) where\n\nimport           Control.Algebra\nimport           Control.Effect.Error\nimport           Control.Effect.Lift\nimport           Control.Effect.Parse\nimport           Control.Effect.Reader\nimport           Control.Effect.Trace\nimport           Control.Exception\nimport           Control.Monad\nimport           Control.Monad.IO.Class\nimport           Data.Blob\nimport qualified Data.Flag as Flag\nimport           Parsing.Parser\nimport           Parsing.TreeSitter\nimport           Semantic.Config\nimport           Semantic.Task (TaskSession (..))\nimport           Semantic.Telemetry\n\nnewtype ParseC m a = ParseC { runParse :: m a }\n  deriving (Applicative, Functor, Monad, MonadFail, MonadIO)\n\ninstance ( Has (Error SomeException) sig m\n         , Has (Reader TaskSession) sig m\n         , Has Telemetry sig m\n         , Has Trace sig m\n         , Has (Lift IO) sig m\n         , MonadIO m\n         )\n      => Algebra (Parse :+: sig) (ParseC m) where\n  alg hdl sig ctx = case sig of\n    L (Parse parser blob) -> (<$ ctx) <$> runParser blob parser\n    R other               -> ParseC (alg (runParse . hdl) other ctx)\n\n-- | Parse a 'Blob' in 'IO'.\nrunParser ::\n  ( Has (Error SomeException) sig m\n  , Has (Reader TaskSession) sig m\n  , Has Telemetry sig m\n  , Has Trace sig m\n  , MonadIO m\n  )\n  => Blob\n  -> Parser term\n  -> m term\nrunParser blob parser = case parser of\n\n  UnmarshalParser language ->\n    time \"parse.tree_sitter_precise_ast_parse\" languageTag $ do\n      config <- asks config\n      executeParserAction (parseToPreciseAST (configTreeSitterParseTimeout config) (configTreeSitterUnmarshalTimeout config) language blob)\n    `catchError` \\(SomeException e) -> do\n      writeStat (increment \"parse.precise_ast_parse_failures\" languageTag)\n      writeLog Error \"precise parsing failed\" ((\"task\", \"parse\") : (\"exception\", \"\\\"\" <> displayException e <> \"\\\"\") : languageTag)\n      throwError (SomeException e)\n\n  where\n    languageTag = [(\"language\" :: String, show (blobLanguage blob))]\n    executeParserAction act = do\n      -- Test harnesses can specify that parsing must fail, for testing purposes.\n      shouldFailFlag <- asks (Flag.toBool FailTestParsing . configFailParsingForTesting . config)\n      when shouldFailFlag (throwError (SomeException ParsingTimedOut))\n      act >>= either (\\e -> trace (displayException e) *> throwError (SomeException e)) pure\n\ndata ParsingTimedOut = ParsingTimedOut deriving (Eq, Show)\ninstance Exception ParsingTimedOut\n"
  },
  {
    "path": "semantic/src/Control/Carrier/Parse/Simple.hs",
    "content": "{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\n-- | A carrier for 'Parse' effects suitable for use in the repl, tests, etc.\nmodule Control.Carrier.Parse.Simple\n( -- * Parse carrier\n  ParseC(ParseC)\n, runParse\n  -- * Exceptions\n, ParseFailure(..)\n  -- * Parse effect\n, module Control.Effect.Parse\n) where\n\nimport           Control.Algebra\nimport           Control.Carrier.Reader\nimport           Control.Effect.Error\nimport           Control.Effect.Parse\nimport           Control.Exception\nimport           Control.Monad.IO.Class\nimport           Data.Blob\nimport           Parsing.Parser\nimport           Parsing.TreeSitter\n\nrunParse :: Duration -> ParseC m a -> m a\nrunParse timeout = runReader timeout . runParseC\n\nnewtype ParseC m a = ParseC { runParseC :: ReaderC Duration m a }\n  deriving (Applicative, Functor, Monad, MonadFail, MonadIO)\n\ninstance ( Has (Error SomeException) sig m\n         , MonadIO m\n         )\n      => Algebra (Parse :+: sig) (ParseC m) where\n  alg hdl sig ctx = case sig of\n    L (Parse parser blob) -> ParseC ask >>= \\ timeout -> (<$ ctx) <$> runParser timeout blob parser\n    R other               -> ParseC (alg (runParseC . hdl) (R other) ctx)\n\n-- | Parse a 'Blob' in 'IO'.\nrunParser\n  :: ( Has (Error SomeException) sig m\n     , MonadIO m\n     )\n  => Duration\n  -> Blob\n  -> Parser term\n  -> m term\nrunParser timeout blob parser = case parser of\n  UnmarshalParser language ->\n    parseToPreciseAST timeout timeout language blob\n      >>= either (throwError . SomeException) pure\n\nnewtype ParseFailure = ParseFailure String\n  deriving (Show)\n\ninstance Exception ParseFailure\n"
  },
  {
    "path": "semantic/src/Control/Effect/Parse.hs",
    "content": "{-# LANGUAGE ConstraintKinds #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE RankNTypes #-}\nmodule Control.Effect.Parse\n( -- * Parse effect\n  Parse(..)\n, parse\n, parserForLanguage\n, parserForBlob\n, parseWith\n, parsePairWith\n  -- * Re-exports\n, Algebra\n, Has\n, run\n) where\n\nimport           Control.Algebra\nimport           Control.Effect.Error\nimport           Control.Exception (SomeException)\nimport           Data.Bitraversable\nimport           Data.Blob\nimport           Data.Edit\nimport           Data.Kind (Type)\nimport qualified Data.Map as Map\nimport           Parsing.Parser\nimport           Source.Language (Language (..))\n\ndata Parse (m :: Type -> Type) k where\n  Parse :: Parser term -> Blob -> Parse m term\n\n\n-- | Parse a 'Blob' with the given 'Parser'.\nparse :: Has Parse sig m\n      => Parser term\n      -> Blob\n      -> m term\nparse parser blob = send (Parse parser blob)\n\n\n-- | Select a parser for the given 'Language'.\nparserForLanguage :: Map.Map Language (SomeParser c ann) -> Language -> Maybe (SomeParser c ann)\nparserForLanguage = flip Map.lookup\n\n-- | Select a parser for the given 'Blob'.\nparserForBlob :: Map.Map Language (SomeParser c ann) -> Blob -> Maybe (SomeParser c ann)\nparserForBlob parsers = parserForLanguage parsers . blobLanguage\n\n\n-- | Parse a 'Blob' with one of the provided parsers, and run an action on the abstracted term.\nparseWith\n  :: (Has (Error SomeException) sig m, Has Parse sig m)\n  => Map.Map Language (SomeParser c ann)       -- ^ The set of parsers to select from.\n  -> (forall term . c term => term ann -> m a) -- ^ A function to run on the parsed term. Note that the term is abstract, but constrained by @c@, allowing you to do anything @c@ allows, and requiring that all the input parsers produce terms supporting @c@.\n  -> Blob                                      -- ^ The blob to parse.\n  -> m a\nparseWith parsers with blob = case parserForBlob parsers blob of\n  Just (SomeParser parser) -> parse parser blob >>= with\n  _                        -> noLanguageForBlob (blobPath blob)\n\n-- | Parse a 'BlobPair' with one of the provided parsers, and run an action on the abstracted term pair.\nparsePairWith\n  :: (Has (Error SomeException) sig m, Has Parse sig m)\n  => Map.Map Language (SomeParser c ann)                                     -- ^ The set of parsers to select from.\n  -> (forall term . c term => Edit (Blob, term ann) (Blob, term ann) -> m a) -- ^ A function to run on the parsed terms. Note that the terms are abstract, but constrained by @c@, allowing you to do anything @c@ allows, and requiring that all the input parsers produce terms supporting @c@.\n  -> BlobPair                                                                -- ^ The blob pair to parse.\n  -> m a\nparsePairWith parsers with blobPair = case parserForLanguage parsers (languageForBlobPair blobPair) of\n  Just (SomeParser parser) -> bitraverse (p parser) (p parser) blobPair >>= with\n  _                        -> noLanguageForBlob (pathForBlobPair blobPair)\n  where p parser blob = (,) blob <$> parse parser blob\n"
  },
  {
    "path": "semantic/src/Control/Effect/Sum/Project.hs",
    "content": "{-# LANGUAGE FlexibleInstances, KindSignatures, MultiParamTypeClasses, TypeOperators #-}\n\nmodule Control.Effect.Sum.Project\n( Project (..)\n) where\n\nimport Control.Effect.Sum\n\nclass Member sub sup => Project (sub :: (* -> *) -> (* -> *)) sup where\n  prj :: sup m a -> Maybe (sub m a)\n\ninstance Project sub sub where\n  prj = Just\n\ninstance {-# OVERLAPPABLE #-} Project sub (sub :+: sup) where\n  prj (L f) = Just f\n  prj _     = Nothing\n\ninstance {-# OVERLAPPABLE #-} Project sub sup => Project sub (sub' :+: sup) where\n  prj (R g) = prj g\n  prj _     = Nothing\n"
  },
  {
    "path": "semantic/src/Control/Effect/Timeout.hs",
    "content": "{-# LANGUAGE ScopedTypeVariables #-}\nmodule Control.Effect.Timeout\n( timeout\n) where\n\nimport           Control.Algebra\nimport           Control.Effect.Lift\nimport           Data.Duration\nimport qualified System.Timeout as System\n\n-- | Run an action with a timeout. Returns 'Nothing' when no result is available\n-- within the specified duration. Uses 'System.Timeout.timeout' so all caveats\n-- about not operating over FFI boundaries apply.\n--\n-- Any state changes in the action are discarded if the timeout fails.\ntimeout :: Has (Lift IO) sig m => Duration -> m a -> m (Maybe a)\ntimeout n m = liftWith $ \\ hdl ctx\n  -> maybe\n     -- Restore the old state if it timed out.\n     (Nothing <$ ctx)\n     -- Apply it if it succeeded.\n     (fmap Just) <$> System.timeout (toMicroseconds n) (hdl (m <$ ctx))\n"
  },
  {
    "path": "semantic/src/Data/Blob/IO.hs",
    "content": "{-# LANGUAGE ViewPatterns #-}\n-- | These are primitive file IO methods for use in ghci and as internal functions.\n-- Instead of using these, consider if you can use the Files DSL instead.\nmodule Data.Blob.IO\n  ( readBlobFromFile\n  , readBlobFromFile'\n  , readBlobFromPath\n  , readFilePair\n  , readProjectFromPaths\n  ) where\n\nimport           Analysis.Blob\nimport           Analysis.File as File\nimport           Analysis.Project\nimport           Analysis.Reference\nimport           Control.Monad.IO.Class\nimport           Data.Blob\nimport qualified Data.ByteString as B\nimport           Data.Maybe.Exts\nimport           Semantic.IO\nimport           Source.Language\nimport qualified Source.Source as Source\nimport           Source.Span\n\n-- | Deprecated: this has very weird semantics.\nreadProjectFromPaths :: MonadIO m\n                     => Maybe FilePath -- ^ An optional root directory for the project\n                     -> FilePath       -- ^ A file or directory to parse. Passing a file path loads all files in that file's parent directory.\n                     -> Language\n                     -> [FilePath]     -- ^ Directories to exclude.\n                     -> m Project\nreadProjectFromPaths maybeRoot path lang excludeDirs = do\n  let rootDir = fromMaybe path maybeRoot\n\n  paths <- liftIO $ findFilesInDir rootDir exts excludeDirs\n  blobs <- liftIO $ traverse (readBlobFromFile' . toFile) paths\n  pure $ Project rootDir blobs lang excludeDirs\n  where\n    toFile path = File (Reference path (point (Pos 1 1))) lang\n    exts = extensionsForLanguage lang\n\n\n-- | Read a utf8-encoded file to a 'Blob'.\nreadBlobFromFile :: MonadIO m => File Language -> m (Maybe Blob)\nreadBlobFromFile (File (Reference \"/dev/null\" _) _) = pure Nothing\nreadBlobFromFile file@(File (Reference path _) _language) = do\n  raw <- liftIO $ B.readFile path\n  let newblob = Blob (Source.fromUTF8 raw) file\n  pure . Just $ newblob\n\n-- | Read a utf8-encoded file to a 'Blob', failing if it can't be found.\nreadBlobFromFile' :: (MonadFail m, MonadIO m) => File Language -> m Blob\nreadBlobFromFile' file = do\n  maybeFile <- readBlobFromFile file\n  maybeM (fail (\"cannot read '\" <> show file <> \"', file not found or language not supported.\")) maybeFile\n\n-- | Read a blob from the provided absolute or relative path , failing if it can't be found.\nreadBlobFromPath :: (MonadFail m, MonadIO m) => FilePath -> m Blob\nreadBlobFromPath = readBlobFromFile' . File.fromPath\n\nreadFilePair :: MonadIO m => File Language -> File Language -> m BlobPair\nreadFilePair a b = do\n  before <- readBlobFromFile a\n  after  <- readBlobFromFile b\n  liftIO $ maybeBlobPair before after\n"
  },
  {
    "path": "semantic/src/Data/Blob.hs",
    "content": "{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE ExplicitNamespaces #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE RecordWildCards #-}\n{-# OPTIONS_GHC -fno-warn-orphans #-}\n-- | Semantic-specific functionality for blob handling.\nmodule Data.Blob\n( Blobs(..)\n, NoLanguageForBlob (..)\n, decodeBlobs\n, moduleForBlob\n, noLanguageForBlob\n, BlobPair\n, maybeBlobPair\n, decodeBlobPairs\n, languageForBlobPair\n, languageTagForBlobPair\n, pathForBlobPair\n, pathKeyForBlobPair\n, module Analysis.Blob\n) where\n\n\nimport           Analysis.Blob\nimport           Control.Effect.Error\nimport           Control.Exception\nimport           Data.Aeson\nimport           Data.Bifunctor\nimport qualified Data.ByteString.Lazy as BL\nimport           Data.Edit\nimport           Data.List (stripPrefix)\nimport           Data.Maybe.Exts\nimport           Data.Module\nimport           GHC.Generics (Generic)\nimport           Source.Language as Language\nimport qualified System.FilePath as Path\n\n\nnewtype Blobs a = Blobs { blobs :: [a] }\n  deriving (Generic, FromJSON)\n\ndecodeBlobs :: BL.ByteString -> Either String [Blob]\ndecodeBlobs = fmap blobs <$> eitherDecode\n\n-- | An exception indicating that we’ve tried to diff or parse a blob of unknown language.\nnewtype NoLanguageForBlob = NoLanguageForBlob FilePath\n  deriving (Eq, Exception, Ord, Show)\n\nnoLanguageForBlob :: Has (Error SomeException) sig m => FilePath -> m a\nnoLanguageForBlob blobPath = throwError (SomeException (NoLanguageForBlob blobPath))\n\n-- | Construct a 'Module' for a 'Blob' and @term@, relative to some root 'FilePath'.\nmoduleForBlob :: Maybe FilePath -- ^ The root directory relative to which the module will be resolved, if any. TODO: typed paths\n              -> Blob             -- ^ The 'Blob' containing the module.\n              -> term             -- ^ The @term@ representing the body of the module.\n              -> Module term    -- ^ A 'Module' named appropriate for the 'Blob', holding the @term@, and constructed relative to the root 'FilePath', if any.\nmoduleForBlob rootDir b = Module info\n  where root = fromMaybe (Path.takeDirectory $ blobPath b) rootDir\n        info = ModuleInfo (dropRelative root (blobPath b)) (languageToText (blobLanguage b)) mempty\n\ndropRelative :: FilePath -> FilePath -> FilePath\ndropRelative a' b' = case as `stripPrefix` bs of\n     Just rs | ra == rb -> foldl (Path.</>) \".\" rs Path.</> bf\n     _                  -> b'\n  where (ra, as) = splitPath $ Path.normalise a'\n        (rb, bs) = splitPath $ Path.normalise $ Path.takeDirectory b'\n        bf = Path.takeFileName b'\n        splitPath p = (Path.isAbsolute p, Path.splitDirectories p)\n\n-- | Represents a blobs suitable for diffing which can be either a blob to\n-- delete, a blob to insert, or a pair of blobs to diff.\ntype BlobPair = Edit Blob Blob\n\ninstance FromJSON BlobPair where\n  parseJSON = withObject \"BlobPair\" $ \\o ->\n    fromMaybes <$> (o .:? \"before\") <*> (o .:? \"after\")\n    >>= maybeM (Prelude.fail \"Expected object with 'before' and/or 'after' keys only\")\n\nmaybeBlobPair :: MonadFail m => Maybe Blob -> Maybe Blob -> m BlobPair\nmaybeBlobPair a b = maybeM (fail \"expected file pair with content on at least one side\") (fromMaybes a b)\n\nlanguageForBlobPair :: BlobPair -> Language\nlanguageForBlobPair = mergeEdit combine . bimap blobLanguage blobLanguage where\n  combine a b\n    | a == Unknown || b == Unknown = Unknown\n    | otherwise                    = b\n\npathForBlobPair :: BlobPair -> FilePath\npathForBlobPair = blobPath . mergeEdit (const id)\n\nlanguageTagForBlobPair :: BlobPair -> [(String, String)]\nlanguageTagForBlobPair pair = showLanguage (languageForBlobPair pair)\n  where showLanguage = pure . (,) \"language\" . show\n\npathKeyForBlobPair :: BlobPair -> FilePath\npathKeyForBlobPair = mergeEdit combine . bimap blobFilePath blobFilePath where\n   combine before after | before == after = after\n                        | otherwise       = before <> \" -> \" <> after\n\ndecodeBlobPairs :: BL.ByteString -> Either String [BlobPair]\ndecodeBlobPairs = fmap blobs <$> eitherDecode\n"
  },
  {
    "path": "semantic/src/Data/Duration.hs",
    "content": "module Data.Duration\n( Duration(..)\n, fromSeconds\n, fromMilliseconds\n, fromMicroseconds\n, fromNanoseconds\n, toMicroseconds\n, toSeconds\n) where\n\n-- A duration suitable for timeouts stored as an int of milliseconds.\nnewtype Duration = Milliseconds Int\n  deriving (Eq, Ord)\n\ninstance Show Duration where\n  showsPrec _ (Milliseconds n) = shows n <> showString \"ms\"\n\nfromSeconds :: Int -> Duration\nfromSeconds n = fromMilliseconds (n * 1000)\n\n-- milli = 10E-3 seconds\nfromMilliseconds :: Int -> Duration\nfromMilliseconds n | n <= 0    = Milliseconds 0\n                   | otherwise = Milliseconds n\n\n-- micro = 10E-6 seconds\nfromMicroseconds :: Int -> Duration\nfromMicroseconds n = fromMilliseconds (n `div` 1000)\n\n-- nano = 10E-9 seconds\nfromNanoseconds :: Int -> Duration\nfromNanoseconds n = fromMicroseconds (n `div` 1000)\n\ntoMicroseconds :: Duration -> Int\ntoMicroseconds (Milliseconds n) = n * 1000\n\ntoSeconds :: Duration -> Int\ntoSeconds (Milliseconds n) = n `div` 1000\n"
  },
  {
    "path": "semantic/src/Data/Edit.hs",
    "content": "{-# LANGUAGE DeriveGeneric, DeriveTraversable, LambdaCase #-}\nmodule Data.Edit\n( Edit(..)\n, edit\n, mergeEdit\n, fromMaybes\n) where\n\nimport Control.Applicative ((<|>), liftA2)\nimport Data.Bifoldable\nimport Data.Bifunctor\nimport Data.Bitraversable\nimport Data.Functor.Classes\nimport GHC.Generics (Generic, Generic1)\n\n-- | The deletion, insertion, or comparison of values.\ndata Edit a b\n  = Delete  a\n  | Insert    b\n  | Compare a b\n  deriving (Eq, Foldable, Functor, Generic, Generic1, Ord, Show, Traversable)\n\n\n-- | Eliminate an 'Edit' by case analysis.\nedit :: (l -> a) -> (r -> a) -> (l -> r -> a) -> Edit l r -> a\nedit delete insert compare = \\case\n  Delete  a   -> delete a\n  Insert    b -> insert b\n  Compare a b -> compare a b\n\n-- | Extract the values from an 'Edit', combining 'Compare's with the passed function.\nmergeEdit :: (a -> a -> a) -> Edit a a -> a\nmergeEdit = edit id id\n\nfromMaybes :: Maybe a -> Maybe b -> Maybe (Edit a b)\nfromMaybes a b = liftA2 Compare a b <|> Delete <$> a <|> Insert <$> b\n\n\ninstance Bifunctor Edit where\n  bimap = bimapDefault\n\ninstance Bifoldable Edit where\n  bifoldMap = bifoldMapDefault\n\ninstance Bitraversable Edit where\n  bitraverse f g = \\case\n    Delete  a   -> Delete  <$> f a\n    Insert    b -> Insert  <$>         g b\n    Compare a b -> Compare <$> f a <*> g b\n\ninstance Eq2 Edit where\n  liftEq2 eql eqr = curry $ \\case\n    (Delete  a1   , Delete  a2   ) -> eql a1 a2\n    (Insert     b1, Insert     b2) ->              eqr b1 b2\n    (Compare a1 b1, Compare a2 b2) -> eql a1 a2 && eqr b1 b2\n    _                              -> False\n\ninstance Ord2 Edit where\n  liftCompare2 cmpl cmpr = curry $ \\case\n    (Delete  a1   , Delete  a2   ) -> cmpl a1 a2\n    (Delete  _    , _            ) -> LT\n    (Insert     b1, Insert     b2) ->               cmpr b1 b2\n    (Insert     _ , _            ) -> LT\n    (Compare a1 b1, Compare a2 b2) -> cmpl a1 a2 <> cmpr b1 b2\n    _                              -> GT\n\ninstance Show2 Edit where\n  liftShowsPrec2 spl _ spr _ d = \\case\n    Delete  a   -> showsUnaryWith  spl     \"Delete\"  d a\n    Insert    b -> showsUnaryWith      spr \"Insert\"  d   b\n    Compare a b -> showsBinaryWith spl spr \"Compare\" d a b\n"
  },
  {
    "path": "semantic/src/Data/Error.hs",
    "content": "{-# LANGUAGE DeriveFunctor #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE RankNTypes #-}\n{-# LANGUAGE RecordWildCards #-}\nmodule Data.Error\n  ( Error (..)\n  , formatError\n  , makeError\n  , showExpectation\n  , showExcerpt\n  , withSGRCode\n  -- * Flags affecting 'Error' values\n  , LogPrintSource (..)\n  , Colourize (..)\n  ) where\n\nimport Control.Exception (Exception)\nimport Data.ByteString.Char8 (unpack)\nimport Data.Foldable\nimport Data.Ix (inRange)\nimport Data.List (intersperse, isSuffixOf)\nimport GHC.Stack\nimport System.Console.ANSI\n\nimport           Data.Blob\nimport           Data.Flag as Flag\nimport qualified Source.Source as Source\nimport           Source.Span\n\ndata LogPrintSource = LogPrintSource\ndata Colourize = Colourize\n\n-- | Rather than using the Error constructor directly, you probably\n-- want to call 'makeError', which takes care of inserting the call\n-- stack for you.\ndata Error grammar = Error\n  { errorSpan      :: Span\n  , errorExpected  :: [grammar]\n  , errorActual    :: Maybe grammar\n  , errorCallStack :: CallStack\n  } deriving (Show, Functor)\n\n-- | This instance does not take into account the call stack.\ninstance Eq grammar => Eq (Error grammar) where\n  (Error s e a _) == (Error s' e' a' _) = (s == s') && (e == e') && (a == a')\n\ninstance Exception (Error String)\n\nmakeError :: HasCallStack => Span -> [grammar] -> Maybe grammar -> Error grammar\nmakeError s e a = withFrozenCallStack (Error s e a callStack)\n\n-- | Format an 'Error', optionally with reference to the source where it occurred.\nformatError :: Flag LogPrintSource -> Flag Colourize -> Blob -> Error String -> String\nformatError includeSource colourize blob Error{..}\n  = ($ \"\")\n  $ withSGRCode colourize [SetConsoleIntensity BoldIntensity] (showSpan path errorSpan . showString \": \")\n  . withSGRCode colourize [SetColor Foreground Vivid Red] (showString \"error\") . showString \": \" . showExpectation colourize errorExpected errorActual . showChar '\\n'\n  . (if Flag.toBool LogPrintSource includeSource then showExcerpt colourize errorSpan blob else id)\n  . showCallStack colourize callStack . showChar '\\n'\n  where\n    path = Just $ if Flag.toBool LogPrintSource includeSource then blobFilePath blob else \"<filtered>\"\n\nshowExcerpt :: Flag Colourize -> Span -> Blob -> ShowS\nshowExcerpt colourize Span{..} Blob{..}\n  = showString context . (if \"\\n\" `isSuffixOf` context then id else showChar '\\n')\n  . showString (replicate (caretPaddingWidth + lineNumberDigits) ' ') . withSGRCode colourize [SetColor Foreground Vivid Green] (showString caret) . showChar '\\n'\n  where context = fold contextLines\n        contextLines = [ showLineNumber i <> \": \" <> unpack (Source.bytes l)\n                       | (i, l) <- zip [1..] (Source.lines blobSource)\n                       , inRange (line start - 2, line start) i\n                       ]\n        showLineNumber n = let s = show n in replicate (lineNumberDigits - length s) ' ' <> s\n        lineNumberDigits = succ (floor (logBase 10 (fromIntegral (line start) :: Double)))\n        caretPaddingWidth = succ (column start)\n        caret | line start == line end = replicate (max 1 (column end - column start)) '^'\n              | otherwise                            = \"^...\"\n\nwithSGRCode :: Flag Colourize -> [SGR] -> ShowS -> ShowS\nwithSGRCode useColour code content\n  | Flag.toBool Colourize useColour = showString (setSGRCode code) . content . showString (setSGRCode [])\n  | otherwise = content\n\nshowExpectation :: Flag Colourize -> [String] -> Maybe String -> ShowS\nshowExpectation colourize = go\n  where go [] Nothing = showString \"no rule to match at \" . showActual \"end of branch\"\n        go expected Nothing = showString \"expected \" . showSymbols colourize expected . showString \" at \" . showActual \"end of branch\"\n        go expected (Just actual) = showString \"expected \" . showSymbols colourize expected . showString \", but got \" . showActual actual\n        showActual = withSGRCode colourize [SetColor Foreground Vivid Green] . showString\n\nshowSymbols :: Flag Colourize -> [String] -> ShowS\nshowSymbols colourize = go\n  where go []        = showString \"end of input nodes\"\n        go [symbol]  = showSymbol symbol\n        go [a, b]    = showSymbol a . showString \" or \" . showSymbol b\n        go [a, b, c] = showSymbol a . showString \", \" . showSymbol b . showString \", or \" . showSymbol c\n        go (h:t)     = showSymbol h . showString \", \" . go t\n        showSymbol = withSGRCode colourize [SetColor Foreground Vivid Red] . showString\n\nshowSpan :: Maybe FilePath -> Span -> ShowS\nshowSpan path Span{..} = maybe (showParen True (showString \"interactive\")) showString path . showChar ':' . (if start == end then showPos start else showPos start . showChar '-' . showPos end)\n  where showPos Pos{..} = shows line . showChar ':' . shows column\n\nshowCallStack :: Flag Colourize -> CallStack -> ShowS\nshowCallStack colourize callStack = foldr (.) id (intersperse (showChar '\\n') (uncurry (showCallSite colourize) <$> getCallStack callStack))\n\nshowCallSite :: Flag Colourize -> String -> SrcLoc -> ShowS\nshowCallSite colourize symbol loc@SrcLoc{..} = showString symbol . showChar ' ' . withSGRCode colourize [SetConsoleIntensity BoldIntensity] (showParen True (showSpan (Just srcLocFile) (spanFromSrcLoc loc)))\n"
  },
  {
    "path": "semantic/src/Data/Flag.hs",
    "content": "-- | -- This technique is due to Oleg Grenrus: <http://oleg.fi/gists/posts/2019-03-21-flag.html>\n-- The implementation is clean-room due to unclear licensing of the original post.\nmodule Data.Flag\n  ( Flag\n  , flag\n  , toBool\n  , switch\n  , choose\n  ) where\n\nimport Data.Coerce\n\n-- | To declare a new flag, declare a singly-inhabited type:\n-- @data MyFlag = MyFlag@\n-- then use the @flag MyFlag@ to create one from a 'Bool'.\n-- This is more verbose than using 'Bool' for everything but prevents classes of errors when\n-- working with multiple flag values in flight, as the 'toBool' deconstructor provides a witness\n-- that you really want the given semantic flag value from the flag datum.\nnewtype Flag t = Flag Bool\n  deriving (Eq, Show)\n\n-- | The constructor for a 'Flag'. You specify @t@ with a visible type application.\nflag :: t -> Bool -> Flag t\nflag _ = Flag\n{-# INLINE flag #-}\n\n-- | The destructor for a 'Flag'. You pass in the inhabitant of @t@ to\n-- avoid boolean blindness.\ntoBool :: t -> Flag t -> Bool\ntoBool _ = coerce\n{-# INLINE toBool #-}\n\nswitch :: a -> b -> Flag a -> Flag b\nswitch _ _ = coerce\n\n-- | Case analysis, like 'bool'.\nchoose :: t -- ^ Witness\n       -> a -- ^ False case\n       -> a -- ^ True case\n       -> Flag t\n       -> a\nchoose _ f t flag = if coerce flag then t else f\n{-# INLINE choose #-}\n"
  },
  {
    "path": "semantic/src/Data/Graph/Algebraic.hs",
    "content": "{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TypeFamilies #-}\n{-# LANGUAGE UndecidableInstances #-}\nmodule Data.Graph.Algebraic\n( Graph(..)\n, overlay\n, connect\n, vertex\n, Lower(..)\n, simplify\n, topologicalSort\n, VertexTag(..)\n, Edge(..)\n, vertexList\n, edgeList\n) where\n\nimport qualified Algebra.Graph as G\nimport qualified Algebra.Graph.AdjacencyMap as A\nimport           Algebra.Graph.Class (connect, overlay, vertex)\nimport qualified Algebra.Graph.Class as Class\nimport qualified Algebra.Graph.ToGraph as Class\nimport           Control.Applicative\nimport           Control.Carrier.State.Strict\nimport           Data.Aeson\nimport           Data.Foldable\nimport           Data.Function\nimport           Data.Semilattice.Lower\nimport           Data.Set (Set)\nimport qualified Data.Set as Set\n\n-- | An algebraic graph with 'Ord', 'Semigroup', and 'Monoid' instances.\nnewtype Graph vertex = Graph { unGraph :: G.Graph vertex }\n  deriving (Alternative, Applicative, Eq, Functor, Monad, Show, Class.Graph)\n\ninstance Ord t => Class.ToGraph (Graph t) where\n  type ToVertex (Graph t) = t\n  toGraph = Class.toGraph . unGraph\n\nsimplify :: Ord vertex => Graph vertex -> Graph vertex\nsimplify (Graph graph) = Graph (G.simplify graph)\n\n\n-- | Sort a graph’s vertices topologically. Specced in @Data.Graph.Spec@.\ntopologicalSort :: forall v . Ord v => Graph v -> [v]\ntopologicalSort = go . Class.toAdjacencyMap . G.transpose . unGraph\n  where go :: A.AdjacencyMap v -> [v]\n        go graph\n          = visitedOrder . fst\n          . run\n          . runState (Visited lowerBound [])\n          . traverse_ visit\n          . A.vertexList\n          $ graph\n          where visit :: Has (State (Visited v)) sig m => v -> m ()\n                visit v = do\n                  isMarked <- Set.member v . visitedVertices <$> get\n                  if isMarked then\n                    pure ()\n                  else do\n                    modify (extendVisited (Set.insert v))\n                    traverse_ visit (Set.toList (A.postSet v graph))\n                    modify (extendOrder (v :))\n\ndata Visited v = Visited { visitedVertices :: !(Set v), visitedOrder :: [v] }\n\nextendVisited :: (Set v -> Set v) -> Visited v -> Visited v\nextendVisited f (Visited a b) = Visited (f a) b\n\nextendOrder :: ([v] -> [v]) -> Visited v -> Visited v\nextendOrder f (Visited a b) = Visited a (f b)\n\nvertexList :: Ord v => Graph v -> [v]\nvertexList = G.vertexList . unGraph\n\nedgeList :: Ord v => Graph v -> [Edge v]\nedgeList = fmap Edge . G.edgeList . unGraph\n\n-- Instances\n\ninstance Lower (Graph vertex) where\n  lowerBound = Class.empty\n\ninstance Semigroup (Graph vertex) where\n  (<>) = overlay\n\ninstance Monoid (Graph vertex) where\n  mempty = Class.empty\n  mappend = (<>)\n\ninstance Ord vertex => Ord (Graph vertex) where\n  compare (Graph G.Empty)           (Graph G.Empty)           = EQ\n  compare (Graph G.Empty)           _                         = LT\n  compare _                         (Graph G.Empty)           = GT\n  compare (Graph (G.Vertex a))      (Graph (G.Vertex b))      = compare a b\n  compare (Graph (G.Vertex _))      _                         = LT\n  compare _                         (Graph (G.Vertex _))      = GT\n  compare (Graph (G.Overlay a1 a2)) (Graph (G.Overlay b1 b2)) = (compare `on` Graph) a1 b1 <> (compare `on` Graph) a2 b2\n  compare (Graph (G.Overlay _  _))  _                         = LT\n  compare _                         (Graph (G.Overlay _ _))   = GT\n  compare (Graph (G.Connect a1 a2)) (Graph (G.Connect b1 b2)) = (compare `on` Graph) a1 b1 <> (compare `on` Graph) a2 b2\n\n\nclass VertexTag vertex where\n  uniqueTag :: vertex -> Int\n\ninstance (Ord vertex, ToJSON vertex, VertexTag vertex) => ToJSON (Graph vertex) where\n  toJSON     (Graph graph) = object [\"vertices\" .= G.vertexList graph,   \"edges\" .= (Edge <$> G.edgeList graph)]\n  toEncoding (Graph graph) = pairs  (\"vertices\" .= G.vertexList graph <> \"edges\" .= (Edge <$> G.edgeList graph))\n\nnewtype Edge vertex = Edge (vertex, vertex)\n\ninstance (ToJSON vertex, VertexTag vertex) => ToJSON (Edge vertex) where\n  toJSON     (Edge (a, b)) = object [\"source\" .= show (uniqueTag a),   \"target\" .= show (uniqueTag b)]\n  toEncoding (Edge (a, b)) = pairs  (\"source\" .= show (uniqueTag a) <>  \"target\" .= show (uniqueTag b))\n"
  },
  {
    "path": "semantic/src/Data/Handle.hs",
    "content": "{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE StandaloneDeriving #-}\n\nmodule Data.Handle\n  ( Handle (..)\n  , getHandle\n  , stdin\n  , stdout\n  , stderr\n  , readBlobsFromHandle\n  , readPathsFromHandle\n  , readBlobPairsFromHandle\n  , readFromHandle\n  , openFileForReading\n  , InvalidJSONException (..)\n  ) where\n\nimport           Control.Exception (Exception, throw)\nimport           Control.Monad.IO.Class\nimport           Data.Aeson\nimport           Data.Blob\nimport qualified Data.ByteString.Lazy as BL\nimport qualified Data.ByteString.Lazy.Char8 as BLC\nimport qualified System.IO as IO\n\ndata Handle mode where\n  ReadHandle  :: IO.Handle -> Handle 'IO.ReadMode\n  WriteHandle :: IO.Handle -> Handle 'IO.WriteMode\n\nderiving instance Eq   (Handle mode)\nderiving instance Show (Handle mode)\n\ngetHandle :: Handle mode -> IO.Handle\ngetHandle (ReadHandle  handle) = handle\ngetHandle (WriteHandle handle) = handle\n\nstdin :: Handle 'IO.ReadMode\nstdin = ReadHandle IO.stdin\n\nstdout :: Handle 'IO.WriteMode\nstdout = WriteHandle IO.stdout\n\nstderr :: Handle 'IO.WriteMode\nstderr = WriteHandle IO.stderr\n\nopenFileForReading :: FilePath -> IO (Handle 'IO.ReadMode)\nopenFileForReading path = ReadHandle <$> IO.openFile path IO.ReadMode\n\n-- | Read JSON encoded blobs from a handle.\nreadBlobsFromHandle :: MonadIO m => Handle 'IO.ReadMode -> m [Blob]\nreadBlobsFromHandle = fmap blobs <$> readFromHandle\n\n-- | Read line delimited paths from a handle\nreadPathsFromHandle :: MonadIO m => Handle 'IO.ReadMode -> m [FilePath]\nreadPathsFromHandle (ReadHandle h) = liftIO $ fmap BLC.unpack . BLC.lines <$> BL.hGetContents h\n\n-- | Read JSON encoded blob pairs from a handle.\nreadBlobPairsFromHandle :: MonadIO m => Handle 'IO.ReadMode -> m [BlobPair]\nreadBlobPairsFromHandle = fmap blobs <$> readFromHandle\n\nnewtype InvalidJSONException = InvalidJSONException String\n  deriving (Eq, Show, Exception)\n\n-- | Read JSON-encoded data from a 'Handle'. Throws\n-- 'InvalidJSONException' on parse failure.\nreadFromHandle :: (FromJSON a, MonadIO m) => Handle 'IO.ReadMode -> m a\nreadFromHandle (ReadHandle h) = do\n  input <- liftIO $ BL.hGetContents h\n  case eitherDecode input of\n    Left e  -> throw (InvalidJSONException e)\n    Right d -> pure d\n"
  },
  {
    "path": "semantic/src/Data/Maybe/Exts.hs",
    "content": "module Data.Maybe.Exts\n( module Data.Maybe\n, maybeLast\n, fromMaybeLast\n, maybeM\n) where\n\nimport Data.Maybe\nimport Data.Monoid\n\nmaybeLast :: Foldable t => b -> (a -> b) -> t a -> b\nmaybeLast b f = maybe b f . getLast . foldMap (Last . Just)\n\nfromMaybeLast :: Foldable t => a -> t a -> a\nfromMaybeLast b = fromMaybe b . getLast . foldMap (Last . Just)\n\n-- | Extract the 'Just' of a 'Maybe' in an 'Applicative' context or, given 'Nothing', run the provided action.\nmaybeM :: Applicative f => f a -> Maybe a -> f a\nmaybeM f = maybe f pure\n{-# INLINE maybeM #-}\n"
  },
  {
    "path": "semantic/src/Data/Semigroup/App.hs",
    "content": "{-# LANGUAGE DeriveTraversable, GeneralizedNewtypeDeriving #-}\nmodule Data.Semigroup.App\n( App(..)\n, AppMerge(..)\n) where\n\nimport Control.Applicative\n\n-- | 'Semigroup' under '*>'.\nnewtype App f a = App { runApp :: f a }\n  deriving (Alternative, Applicative, Bounded, Enum, Eq, Foldable, Functor, Monad, Ord, Show, Traversable)\n\ninstance Applicative f => Semigroup (App f a) where\n  App a <> App b = App (a *> b)\n\n-- | 'Semigroup' and 'Monoid' under '<*>' and '<>'.\nnewtype AppMerge f a = AppMerge { runAppMerge :: f a }\n  deriving (Alternative, Applicative, Bounded, Enum, Eq, Foldable, Functor, Monad, Ord, Show, Traversable)\n\ninstance (Applicative f, Semigroup a) => Semigroup (AppMerge f a) where\n  AppMerge a <> AppMerge b = AppMerge ((<>) <$> a <*> b)\n\ninstance (Applicative f, Monoid a, Semigroup a) => Monoid (AppMerge f a) where\n  mempty = AppMerge (pure mempty)\n  mappend = (<>)\n"
  },
  {
    "path": "semantic/src/Parsing/Parser.hs",
    "content": "{-# LANGUAGE ConstraintKinds #-}\n{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeFamilies #-}\n\n-- TODO: Now that a la carte syntax has been removed, this whole abstraction is of perhaps questionable utility\n\nmodule Parsing.Parser\n( Parser(..)\n  -- * Parsers\n  -- $abstract\n, SomeParser(..)\n, goParser\n, javaParser\n, javascriptParser\n, jsonParser\n, jsxParser\n, phpParserPrecise\n, pythonParser\n, codeQLParserPrecise\n, rubyParser\n, tsxParser\n, typescriptParser\n  -- * Canonical sets of parsers\n, preciseParsers\n) where\n\nimport           AST.Unmarshal\nimport           Data.Map (Map)\nimport qualified Data.Map as Map\nimport           Foreign.Ptr\nimport qualified Language.CodeQL as CodeQLPrecise\nimport qualified Language.Go as GoPrecise\nimport qualified Language.Java as Java\nimport qualified Language.JSON as JSON\nimport qualified Language.PHP as PHPPrecise\nimport qualified Language.Python as PythonPrecise\nimport qualified Language.Ruby as RubyPrecise\nimport qualified Language.TSX as TSXPrecise\nimport qualified Language.TypeScript as TypeScriptPrecise\nimport           Prelude hiding (fail)\nimport           Source.Language (Language (..))\nimport           Source.Loc\nimport qualified TreeSitter.Language as TS (Language)\n\n-- | A parser from 'Source' onto some term type.\ndata Parser term where\n  -- | A parser 'Unmarshal'ing to a precise AST type using a 'TS.Language'.\n  UnmarshalParser :: Unmarshal t => Ptr TS.Language -> Parser (t Loc)\n\n-- $abstract\n-- Most of our features are intended to operate over multiple languages, each represented by disjoint term types. Thus, we typically implement them using typeclasses, allowing us to share a single interface to invoke the feature, while specializing the implementation(s) as appropriate for each distinct term type.\n--\n-- In order to accomplish this, we employ 'SomeParser', which abstracts over parsers of various term types, while ensuring that some desired constraint holds. Constructing a @'SomeParser' c@ requires satisfiyng the constraint @c@ against the underlying 'Parser'’s term type, and so it can be used to parse with any of a map of parsers whose terms support @c@.\n--\n-- In practice, this means using 'Control.Effect.Parse.parseWith', and passing in a map of parsers to select from for your feature. It is recommended to define the map as a concrete top-level binding using the abstract parsers or ideally the canonical maps of parsers, below; using the abstracted parsers or canonical maps directly with 'Control.Effect.Parse.parseWith' will lead to significantly slower compiles.\n--\n-- Bad:\n--\n-- @\n-- isFancy :: (Carrier sig m, Member Parse sig) => Blob -> m Bool\n-- isFancy = parseWith (preciseParsers @Fancy) (pure . isTermFancy) -- slow compiles!\n-- @\n--\n-- Good:\n--\n-- @\n-- fancyParsers :: 'Map' 'Language' ('SomeParser' Fancy 'Loc')\n-- fancyParsers = preciseParsers\n--\n-- isFancy :: (Carrier sig m, Member Parse sig) => Blob -> m Bool\n-- isFancy = parseWith fancyParsers (pure . isTermFancy) -- much faster compiles\n-- @\n\n\n-- | A parser producing terms of existentially-quantified type under some constraint @c@.\n--\n--   This can be used to perform actions on terms supporting some feature abstracted using a typeclass, without knowing (or caring) what the specific term types are.\ndata SomeParser c a where\n  SomeParser :: c t => Parser (t a) -> SomeParser c a\n\ngoParser :: c GoPrecise.Term => (Language, SomeParser c Loc)\ngoParser = (Go, SomeParser (UnmarshalParser @GoPrecise.Term GoPrecise.tree_sitter_go))\n\njavaParser :: c Java.Term => (Language, SomeParser c Loc)\njavaParser = (Java, SomeParser (UnmarshalParser @Java.Term Java.tree_sitter_java))\n\njavascriptParser :: c TSXPrecise.Term => (Language, SomeParser c Loc)\njavascriptParser = (JavaScript, SomeParser (UnmarshalParser @TSXPrecise.Term TSXPrecise.tree_sitter_tsx))\n\njsonParser :: c JSON.Term => (Language, SomeParser c Loc)\njsonParser = (JSON, SomeParser (UnmarshalParser @JSON.Term JSON.tree_sitter_json))\n\njsxParser :: c TSXPrecise.Term => (Language, SomeParser c Loc)\njsxParser = (JSX, SomeParser (UnmarshalParser @TSXPrecise.Term TSXPrecise.tree_sitter_tsx))\n\nphpParserPrecise :: c PHPPrecise.Term => (Language, SomeParser c Loc)\nphpParserPrecise = (PHP, SomeParser (UnmarshalParser @PHPPrecise.Term PHPPrecise.tree_sitter_php))\n\npythonParser :: c PythonPrecise.Term => (Language, SomeParser c Loc)\npythonParser = (Python, SomeParser (UnmarshalParser @PythonPrecise.Term PythonPrecise.tree_sitter_python))\n\ncodeQLParserPrecise :: c CodeQLPrecise.Term => (Language, SomeParser c Loc)\ncodeQLParserPrecise = (CodeQL, SomeParser (UnmarshalParser @CodeQLPrecise.Term CodeQLPrecise.tree_sitter_ql))\n\nrubyParser :: c RubyPrecise.Term => (Language, SomeParser c Loc)\nrubyParser = (Ruby, SomeParser (UnmarshalParser @RubyPrecise.Term RubyPrecise.tree_sitter_ruby))\n\ntsxParser :: c TSXPrecise.Term => (Language, SomeParser c Loc)\ntsxParser = (TSX, SomeParser (UnmarshalParser @TSXPrecise.Term TSXPrecise.tree_sitter_tsx))\n\ntypescriptParser :: c TypeScriptPrecise.Term => (Language, SomeParser c Loc)\ntypescriptParser = (TypeScript, SomeParser (UnmarshalParser @TypeScriptPrecise.Term TypeScriptPrecise.tree_sitter_typescript))\n\n-- | The canonical set of parsers producing precise terms.\npreciseParsers\n  :: ( c Java.Term\n     , c JSON.Term\n     , c PythonPrecise.Term\n     , c CodeQLPrecise.Term\n     , c RubyPrecise.Term\n     , c GoPrecise.Term\n     , c PHPPrecise.Term\n     , c TypeScriptPrecise.Term\n     , c TSXPrecise.Term\n     )\n  => Map Language (SomeParser c Loc)\npreciseParsers = Map.fromList\n  [ goParser\n  , javascriptParser\n  , jsonParser\n  , jsxParser\n  , pythonParser\n  , phpParserPrecise\n  , codeQLParserPrecise\n  , rubyParser\n  , tsxParser\n  , typescriptParser\n  , javaParser\n  ]\n"
  },
  {
    "path": "semantic/src/Parsing/TreeSitter.hs",
    "content": "{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE LambdaCase #-}\n{-# LANGUAGE RecordWildCards #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TypeOperators #-}\nmodule Parsing.TreeSitter\n( TSParseException (..)\n, Duration(..)\n, parseToPreciseAST\n) where\n\nimport Control.Carrier.Reader\nimport Control.Exception as Exc\nimport Control.Monad.IO.Class\nimport Foreign\nimport GHC.Generics\n\nimport           Data.Blob\nimport           Data.Duration\nimport           Data.Maybe.Exts\nimport           Source.Loc\nimport qualified Source.Source as Source\nimport qualified System.Timeout as System\n\nimport qualified TreeSitter.Cursor as TS\nimport qualified TreeSitter.Language as TS\nimport qualified TreeSitter.Node as TS\nimport qualified TreeSitter.Parser as TS\nimport qualified TreeSitter.Tree as TS\nimport qualified AST.Unmarshal as TS\n\ndata TSParseException\n  = ParserTimedOut\n  | IncompatibleVersions\n  | UnmarshalTimedOut\n  | UnmarshalFailure String\n    deriving (Eq, Show, Generic)\n\nparseToPreciseAST\n  :: ( MonadIO m\n     , TS.Unmarshal t\n     )\n  => Duration\n  -> Duration\n  -> Ptr TS.Language\n  -> Blob\n  -> m (Either TSParseException (t Loc))\nparseToPreciseAST parseTimeout unmarshalTimeout language blob = runParse parseTimeout language blob $ \\ rootPtr ->\n  withTimeout $\n    TS.withCursor (castPtr rootPtr) $ \\ cursor ->\n      runReader (TS.UnmarshalState (Source.bytes (blobSource blob)) cursor) (liftIO (peek rootPtr) >>= TS.unmarshalNode)\n        `Exc.catch` (Exc.throw . UnmarshalFailure . TS.getUnmarshalError)\n  where\n    withTimeout :: IO a -> IO a\n    withTimeout action = System.timeout (toMicroseconds unmarshalTimeout) action >>= maybeM (Exc.throw UnmarshalTimedOut)\n\ninstance Exc.Exception TSParseException where\n  displayException = \\case\n    ParserTimedOut -> \"tree-sitter: parser timed out\"\n    IncompatibleVersions -> \"tree-sitter: incompatible versions\"\n    UnmarshalTimedOut -> \"tree-sitter: unmarshal timed out\"\n    UnmarshalFailure s -> \"tree-sitter: unmarshal failure: \" <> s\n\nrunParse\n  :: MonadIO m\n  => Duration\n  -> Ptr TS.Language\n  -> Blob\n  -> (Ptr TS.Node -> IO a)\n  -> m (Either TSParseException a)\nrunParse parseTimeout language Blob{..} action =\n  liftIO . Exc.tryJust fromException . TS.withParser language $ \\ parser -> do\n    let timeoutMicros = fromIntegral $ toMicroseconds parseTimeout\n    TS.ts_parser_set_timeout_micros parser timeoutMicros\n    compatible <- TS.ts_parser_set_language parser language\n    if compatible then\n      TS.withParseTree parser (Source.bytes blobSource) $ \\ treePtr -> do\n        if treePtr == nullPtr then\n          Exc.throw ParserTimedOut\n        else\n          TS.withRootNode treePtr action\n    else\n      Exc.throw IncompatibleVersions\n"
  },
  {
    "path": "semantic/src/Semantic/Api/Bridge.hs",
    "content": "{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE FunctionalDependencies #-}\n{-# LANGUAGE RecordWildCards #-}\nmodule Semantic.Api.Bridge\n  ( APIBridge (..)\n  , APIConvert (..)\n  , (#?)\n  ) where\n\nimport           Analysis.File\nimport           Analysis.Reference\nimport           Control.Lens\nimport qualified Data.Blob as Data\nimport           Data.ProtoLens (defMessage)\nimport qualified Data.Text as T\nimport           Data.Text.Lens\nimport qualified Proto.Semantic as API\nimport           Proto.Semantic_Fields as P hiding (to)\nimport qualified Source.Language as Data\nimport qualified Source.Range as Source\nimport qualified Source.Source as Source (fromText, toText, totalSpan)\nimport qualified Source.Span as Source\n\n-- | An @APIBridge x y@ instance describes an isomorphism between @x@ and @y@.\n-- This is suitable for types such as 'Pos' which are representationally equivalent\n-- in their API, legacy, and native forms. All 'Lens' laws apply.\n--\n-- Foreign to native: @x ^. bridging@\n-- Native to foreign: @bridging # x@\n-- Native to 'Just' foreign: @bridging #? x@.\n-- 'Maybe' foreign to 'Maybe' native: @x >>= preview bridging@\nclass APIBridge api native | api -> native where\n  bridging :: Iso' api native\n\n-- | An @APIConvert x y@ instance describes a partial isomorphism between @x@ and @y@.\n-- This is suitable for types containing nested records therein, such as 'Span'.\n-- (The isomorphism must be partial, given that a protobuf record can have Nothing\n-- for all its fields, which means we cannot convert to a native format.)\n--\n-- Foreign to native: this is a type error, unless the native is a Monoid\n-- Foreign to 'Maybe' native: @x^?converting@\n-- Native to foreign: @converting # x@\n-- Native to 'Just' foreign: @converting #? x@\nclass APIConvert api native | api -> native where\n  converting :: Prism' api native\n\n-- | A helper function for turning 'bridging' around and\n-- extracting 'Just' values from it.\n(#?) :: AReview t s -> s -> Maybe t\nrev #? item = item ^? re rev\ninfixr 8 #?\n\ninstance APIBridge API.Position Source.Pos where\n  bridging = iso fromAPI toAPI where\n    toAPI Source.Pos{..}     = defMessage & P.line .~ fromIntegral line & P.column .~ fromIntegral column\n    fromAPI position = Source.Pos (fromIntegral (position ^. line)) (fromIntegral (position ^. column))\n\ninstance APIConvert API.Span Source.Span where\n  converting = prism' toAPI fromAPI where\n    toAPI Source.Span{..} = defMessage & P.maybe'start .~ (bridging #? start) & P.maybe'end .~ (bridging #? end)\n    fromAPI span = Source.Span <$> (span ^. maybe'start >>= preview bridging) <*> (span ^. maybe'end >>= preview bridging)\n\ninstance APIBridge API.ByteRange Source.Range where\n  bridging = iso fromAPI toAPI where\n    toAPI Source.Range{..} = defMessage & P.start .~ fromIntegral start & P.end .~ fromIntegral end\n    fromAPI range = Source.Range (fromIntegral (range ^. start)) (fromIntegral (range ^. end))\n\ninstance APIBridge T.Text Data.Language where\n  bridging = iso Data.textToLanguage Data.languageToText\n\ninstance APIBridge API.Blob Data.Blob where\n  bridging = iso apiBlobToBlob blobToApiBlob where\n    blobToApiBlob b\n      = defMessage\n      & P.content .~ Source.toText (Data.blobSource b)\n      & P.path .~ T.pack (Data.blobFilePath b)\n      & P.language .~ (bridging # Data.blobLanguage b)\n    apiBlobToBlob blob =\n      let src = blob ^. content.to Source.fromText\n          pth = blob ^. path._Text\n      in Data.Blob\n      { blobSource = src\n      , blobFile = File (Reference pth (Source.totalSpan src)) (blob ^. language.bridging)\n      }\n"
  },
  {
    "path": "semantic/src/Semantic/Api/StackGraph.hs",
    "content": "{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE LambdaCase #-}\nmodule Semantic.Api.StackGraph\n  ( parseStackGraph\n  , TempStackGraph(..)\n  , SGNode(..)\n  , SGPath(..)\n  ) where\n\n\nimport           Control.Effect.Error\nimport           Control.Effect.Parse\nimport           Control.Exception\nimport           Control.Lens\nimport           Data.Blob\nimport           Data.Foldable\nimport           Data.Int\nimport           Data.Map.Strict (Map)\nimport           Data.ProtoLens (defMessage)\nimport           Data.Text (Text, pack)\nimport qualified Parsing.Parser as Parser\nimport           Proto.Semantic as P hiding (Blob)\nimport           Proto.Semantic_Fields as P\nimport           Proto.Semantic_JSON ()\nimport           Semantic.Api.Bridge\nimport           Source.Language\nimport           Source.Loc as Loc\n\nparseStackGraph :: ( Has (Error SomeException) sig m\n                   , Has Parse sig m\n                   , Traversable t\n                   )\n  => t Blob\n  -> m StackGraphResponse\nparseStackGraph blobs = do\n  terms <- traverse go blobs\n  pure $ defMessage & P.files .~ toList terms\n  where\n    go :: ( Has (Error SomeException) sig m\n          , Has Parse sig m\n          )\n      => Blob\n      -> m StackGraphFile\n    go blob = catching $ graphToFile <$> graphForBlob blob\n      where\n        catching m = m `catchError` (\\(SomeException e) -> pure $ errorFile (show e))\n        blobLanguage' = blobLanguage blob\n        blobPath' = pack $ blobFilePath blob\n        errorFile e = defMessage\n          & P.path .~ blobPath'\n          & P.language .~ (bridging # blobLanguage')\n          & P.nodes .~ mempty\n          & P.paths .~ mempty\n          & P.errors .~ [defMessage & P.error .~ pack e]\n\n        graphToFile :: TempStackGraph -> StackGraphFile\n        graphToFile graph\n          = defMessage\n          & P.path .~ blobPath'\n          & P.language .~ (bridging # blobLanguage')\n          & P.nodes .~ fmap nodeToNode (scopeGraphNodes graph)\n          & P.paths .~ fmap pathToPath (scopeGraphPaths graph)\n\n        nodeToNode :: SGNode -> StackGraphNode\n        nodeToNode node\n          = defMessage\n          & P.id .~ nodeId node\n          & P.name .~ nodeName node\n          & P.line .~ nodeLine node\n          & P.maybe'span ?~ converting # nodeSpan node\n          & P.syntaxType .~ nodeSyntaxType node\n          & P.nodeType .~ nodeNodeType node\n\n        pathToPath :: SGPath -> StackGraphPath\n        pathToPath path\n          = defMessage\n          & P.startingSymbolStack .~ pathStartingSymbolStack path\n          & P.startingScopeStackSize .~ pathStartingScopeStackSize path\n          & P.from .~ pathFrom path\n          & P.edges .~ pathEdges path\n          & P.to .~ pathTo path\n          & P.endingScopeStack .~ pathEndingScopeStack path\n          & P.endingSymbolStack .~ pathEndingSymbolStack path\n\n-- TODO: These are temporary, will replace with proper datatypes from the scope graph work.\ndata TempStackGraph\n  = TempStackGraph\n  { scopeGraphNodes :: [SGNode]\n  , scopeGraphPaths :: [SGPath]\n  }\n\ndata SGPath\n  = SGPath\n  { pathStartingSymbolStack :: [Text]\n  , pathStartingScopeStackSize :: Int64\n  , pathFrom :: Int64\n  , pathEdges :: Text\n  , pathTo :: Int64\n  , pathEndingScopeStack :: [Int64]\n  , pathEndingSymbolStack :: [Text]\n  }\n  deriving (Eq, Show)\n\ndata SGNode\n  = SGNode\n      { nodeId :: Int64,\n        nodeName :: Text,\n        nodeLine :: Text,\n        nodeSpan :: Loc.Span,\n        nodeSyntaxType :: P.SyntaxType,\n        nodeNodeType :: P.NodeType\n      }\n  deriving (Eq, Show)\n\ngraphForBlob :: (Has (Error SomeException) sig m, Has Parse sig m) => Blob -> m TempStackGraph\ngraphForBlob blob = parseWith toStackGraphParsers (pure . toStackGraph blob) blob\n  where\n    toStackGraphParsers :: Map Language (Parser.SomeParser ToStackGraph Loc)\n    toStackGraphParsers = Parser.preciseParsers\n\nclass ToStackGraph term where\n  toStackGraph :: Blob -> term Loc -> TempStackGraph\n\ninstance ToStackGraph term where\n  -- TODO: Need to produce the graph here\n  toStackGraph _ _ = TempStackGraph mempty mempty\n"
  },
  {
    "path": "semantic/src/Semantic/Api/Symbols.hs",
    "content": "{-# LANGUAGE AllowAmbiguousTypes #-}\n{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TypeFamilies #-}\n{-# LANGUAGE UndecidableInstances #-}\n\nmodule Semantic.Api.Symbols\n  ( parseSymbols,\n    parseSymbolsBuilder,\n    tagsForBlob,\n  )\nwhere\n\nimport           Control.Effect.Error\nimport           Control.Effect.Parse\nimport           Control.Effect.Reader\nimport           Control.Exception\nimport           Control.Lens\nimport           Data.Blob\nimport           Data.ByteString.Builder\nimport           Data.Foldable\nimport           Data.Map.Strict (Map)\nimport           Data.ProtoLens (defMessage)\nimport           Data.Text (pack, toTitle)\nimport qualified Parsing.Parser as Parser\nimport           Proto.Semantic as P hiding (Blob)\nimport           Proto.Semantic_Fields as P\nimport           Proto.Semantic_JSON ()\nimport           Semantic.Api.Bridge\nimport           Semantic.Config\nimport           Semantic.Task\nimport           Serializing.Format (Format)\nimport           Source.Language\nimport           Source.Loc as Loc\nimport           Tags.Tagging.Precise\n\nparseSymbolsBuilder :: (Has (Error SomeException) sig m, Has Parse sig m, Has (Reader Config) sig m, Traversable t) => Format ParseTreeSymbolResponse -> t Blob -> m Builder\nparseSymbolsBuilder format blobs = parseSymbols blobs >>= serialize format\n\nparseSymbols :: (Has (Error SomeException) sig m, Has Parse sig m, Traversable t) => t Blob -> m ParseTreeSymbolResponse\nparseSymbols blobs = do\n  terms <- traverse go blobs\n  pure $ defMessage & P.files .~ toList terms\n  where\n    go :: (Has (Error SomeException) sig m, Has Parse sig m) => Blob -> m File\n    go blob = catching $ tagsToFile <$> tagsForBlob blob\n      where\n        catching m = m `catchError` (\\(SomeException e) -> pure $ errorFile (show e))\n        blobLanguage' = blobLanguage blob\n        blobPath' = pack $ blobFilePath blob\n        errorFile e =\n          defMessage\n            & P.path .~ blobPath'\n            & P.language .~ (bridging # blobLanguage')\n            & P.symbols .~ mempty\n            & P.errors .~ [defMessage & P.error .~ pack e]\n        tagsToFile :: [Tag] -> File\n        tagsToFile tags =\n          defMessage\n            & P.path .~ blobPath'\n            & P.language .~ (bridging # blobLanguage')\n            & P.symbols .~ fmap tagToSymbol tags\n            & P.errors .~ mempty\n        tagToSymbol :: Tag -> Symbol\n        tagToSymbol tag =\n          defMessage\n            & P.symbol .~ tagName tag\n            & P.kind .~ toKind tag\n            & P.nodeType .~ tagNodeType tag\n            & P.syntaxType .~ tagSyntaxType tag\n            & P.line .~ tagLine tag\n            & P.maybe'span ?~ converting # unOneIndexedSpan (tagOneIndexedSpan tag)\n            & P.maybe'utf16CodeUnitSpan ?~ converting # unUTF16CodeUnitSpan (tagUTF16CodeUnitSpan tag)\n            & P.byteRange .~ bridging # tagByteRange tag\n          where\n            toKind = toTitle . pack . show . tagSyntaxType\n\ntagsForBlob :: (Has (Error SomeException) sig m, Has Parse sig m) => Blob -> m [Tag]\ntagsForBlob blob = parseWith toTagsParsers (pure . tags (blobSource blob)) blob\n  where\n    toTagsParsers :: Map Language (Parser.SomeParser ToTags Loc)\n    toTagsParsers = Parser.preciseParsers\n"
  },
  {
    "path": "semantic/src/Semantic/Api/Terms.hs",
    "content": "{-# LANGUAGE AllowAmbiguousTypes #-}\n{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE RankNTypes #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeFamilies #-}\n{-# LANGUAGE UndecidableInstances #-}\n{-# OPTIONS_GHC -freduction-depth=0 #-}\nmodule Semantic.Api.Terms\n  ( parseTermBuilder\n  , TermOutputFormat(..)\n  ) where\n\nimport           Control.Effect.Error\nimport           Control.Effect.Parse\nimport           Control.Effect.Reader\nimport           Control.Monad\nimport           Control.Monad.IO.Class\nimport           Data.Blob\nimport           Data.ByteString.Builder\nimport           Data.Either\nimport           Data.Foldable (fold)\nimport           Data.Map.Strict (Map)\nimport qualified Language.CodeQL as CodeQL\nimport qualified Language.Go as Go\nimport qualified Language.Java as Java\nimport qualified Language.JSON as JSON\nimport qualified Language.PHP as PHP\nimport qualified Language.Python as Python\nimport qualified Language.Ruby as Ruby\nimport qualified Language.TSX as TSX\nimport qualified Language.TypeScript as TypeScript\nimport           Parsing.Parser\nimport           Semantic.Config\nimport           Semantic.Task\nimport           Serializing.Format hiding (JSON)\nimport qualified Serializing.SExpression.Precise as SExpr.Precise (serializeSExpression)\nimport           Source.Language\nimport           Source.Loc\n\n\ndata TermOutputFormat\n  = TermSExpression\n  | TermShow\n  | TermJSON\n  | TermQuiet\n  deriving (Eq, Show)\n\nparseTermBuilder :: (Traversable t, Has (Error SomeException) sig m, Has Parse sig m, Has (Reader Config) sig m, MonadIO m)\n  => TermOutputFormat -> t Blob -> m Builder\nparseTermBuilder TermSExpression = foldMapM (parseWith sexprTermParsers (pure . sexprTerm))\nparseTermBuilder TermShow        = foldMapM (parseWith showTermParsers showTerm)\nparseTermBuilder TermJSON        = foldMapM (parseWith jsonTermParsers jsonTerm)\nparseTermBuilder TermQuiet       = foldMapM quietTerm\n\nfoldMapM :: (Traversable t, Monoid out, Applicative m) => (a -> m out) -> t a -> m out\nfoldMapM f = fmap fold . traverse f\n\nquietTerm :: (Has (Error SomeException) sig m, Has Parse sig m, Has (Reader Config) sig m, MonadIO m) => Blob -> m Builder\nquietTerm blob = showTiming <$> time' (parseWith showTermParsers (fmap (const (Right ())) . showTerm) blob `catchError` timingError)\n  where\n    timingError (SomeException e) = pure (Left (show e))\n    showTiming (res, duration) =\n      let status = if isLeft res then \"ERR\" else \"OK\"\n      in stringUtf8 (status <> \"\\t\" <> show (blobLanguage blob) <> \"\\t\" <> blobFilePath blob <> \"\\t\" <> show duration <> \" ms\\n\")\n\n\nshowTermParsers :: Map Language (SomeParser ShowTerm Loc)\nshowTermParsers = preciseParsers\n\nclass ShowTerm term where\n  showTerm :: (Has (Reader Config) sig m) => term Loc -> m Builder\n\ninstance ShowTerm Go.Term where\n  showTerm = serialize Show . void . Go.getTerm\n\ninstance ShowTerm Java.Term where\n  showTerm = serialize Show . void . Java.getTerm\n\ninstance ShowTerm JSON.Term where\n  showTerm = serialize Show . void . JSON.getTerm\n\ninstance ShowTerm PHP.Term where\n  showTerm = serialize Show . void . PHP.getTerm\n\ninstance ShowTerm Python.Term where\n  showTerm = serialize Show . void . Python.getTerm\n\ninstance ShowTerm CodeQL.Term where\n  showTerm = serialize Show . void . CodeQL.getTerm\n\ninstance ShowTerm Ruby.Term where\n  showTerm = serialize Show . void . Ruby.getTerm\n\ninstance ShowTerm TSX.Term where\n  showTerm = serialize Show . void . TSX.getTerm\n\ninstance ShowTerm TypeScript.Term where\n  showTerm = serialize Show . void . TypeScript.getTerm\n\njsonTermParsers :: Map Language (SomeParser JSONTerm Loc)\njsonTermParsers = preciseParsers\n\nclass JSONTerm term where\n  jsonTerm :: (Has (Reader Config) sig m) => term Loc -> m Builder\n\ninstance JSONTerm Go.Term where\n  jsonTerm = serialize Marshal . Go.getTerm\n\ninstance JSONTerm Java.Term where\n  jsonTerm = serialize Marshal . Java.getTerm\n\ninstance JSONTerm JSON.Term where\n  jsonTerm = serialize Marshal . JSON.getTerm\n\ninstance JSONTerm PHP.Term where\n  jsonTerm = serialize Marshal . PHP.getTerm\n\ninstance JSONTerm Python.Term where\n  jsonTerm = serialize Marshal . Python.getTerm\n\ninstance JSONTerm CodeQL.Term where\n  jsonTerm = serialize Marshal . CodeQL.getTerm\n\ninstance JSONTerm Ruby.Term where\n  jsonTerm = serialize Marshal . Ruby.getTerm\n\ninstance JSONTerm TSX.Term where\n  jsonTerm = serialize Marshal . TSX.getTerm\n\ninstance JSONTerm TypeScript.Term where\n  jsonTerm = serialize Marshal . TypeScript.getTerm\n\nsexprTermParsers :: Map Language (SomeParser SExprTerm Loc)\nsexprTermParsers = preciseParsers\n\nclass SExprTerm term where\n  sexprTerm :: term Loc -> Builder\n\ninstance SExprTerm Go.Term where\n  sexprTerm = SExpr.Precise.serializeSExpression . Go.getTerm\n\ninstance SExprTerm Java.Term where\n  sexprTerm = SExpr.Precise.serializeSExpression . Java.getTerm\n\ninstance SExprTerm JSON.Term where\n  sexprTerm = SExpr.Precise.serializeSExpression . JSON.getTerm\n\ninstance SExprTerm PHP.Term where\n  sexprTerm = SExpr.Precise.serializeSExpression . PHP.getTerm\n\ninstance SExprTerm Python.Term where\n  sexprTerm = SExpr.Precise.serializeSExpression . Python.getTerm\n\ninstance SExprTerm CodeQL.Term where\n  sexprTerm = SExpr.Precise.serializeSExpression . CodeQL.getTerm\n\ninstance SExprTerm Ruby.Term where\n  sexprTerm = SExpr.Precise.serializeSExpression . Ruby.getTerm\n\ninstance SExprTerm TSX.Term where\n  sexprTerm = SExpr.Precise.serializeSExpression . TSX.getTerm\n\ninstance SExprTerm TypeScript.Term where\n  sexprTerm = SExpr.Precise.serializeSExpression . TypeScript.getTerm\n"
  },
  {
    "path": "semantic/src/Semantic/Api.hs",
    "content": "module Semantic.Api\n  ( module SymbolsAPI\n  , module StackGraphAPI\n  , module TermsAPI\n  , module Types\n  ) where\n\nimport Semantic.Api.Symbols as SymbolsAPI\nimport Semantic.Api.StackGraph as StackGraphAPI\nimport Semantic.Api.Terms as TermsAPI\nimport Proto.Semantic as Types\n"
  },
  {
    "path": "semantic/src/Semantic/CLI.hs",
    "content": "{-# LANGUAGE ApplicativeDo #-}\n{-# LANGUAGE FlexibleContexts #-}\nmodule Semantic.CLI (main) where\n\nimport qualified Analysis.File as File\nimport qualified Control.Carrier.Parse.Measured as Parse\nimport           Control.Exception\nimport qualified Data.Flag as Flag\nimport           Data.Foldable\nimport           Data.Handle\nimport           Data.List (intercalate)\nimport           Options.Applicative hiding (style)\nimport           Semantic.Api hiding (File)\nimport           Semantic.Config\nimport qualified Semantic.Task as Task\nimport           Semantic.Task.Files\nimport           Semantic.Telemetry\nimport qualified Semantic.Telemetry.Log as Log\nimport           Semantic.Version\nimport           Serializing.Format\nimport qualified Source.Language as Language\nimport           System.Exit (die)\n\nimport Control.Concurrent (mkWeakThreadId, myThreadId)\nimport Proto.Semantic_JSON ()\nimport System.Mem.Weak (deRefWeak)\nimport System.Posix.Signals\n\nnewtype SignalException = SignalException Signal\n  deriving (Show)\ninstance Exception SignalException\n\ninstallSignalHandlers :: IO ()\ninstallSignalHandlers = do\n  mainThreadId <- myThreadId\n  weakTid <- mkWeakThreadId mainThreadId\n  for_ [ sigABRT, sigBUS, sigHUP, sigILL, sigQUIT, sigSEGV,\n          sigSYS, sigTERM, sigUSR1, sigUSR2, sigXCPU, sigXFSZ ] $ \\sig ->\n    installHandler sig (Catch $ sendException weakTid sig) Nothing\n  where\n    sendException weakTid sig = do\n      m <- deRefWeak weakTid\n      case m of\n        Nothing  -> pure ()\n        Just tid -> throwTo tid (toException $ SignalException sig)\n\nmain :: IO ()\nmain = do\n  installSignalHandlers\n  (options, task) <- customExecParser (prefs showHelpOnEmpty) arguments\n  config <- defaultConfig options\n  res <- withTelemetry config $ \\ (TelemetryQueues logger statter _) ->\n    Task.runTask (Task.TaskSession config \"-\" (optionsLogPathsOnError options) logger statter) (Parse.runParse task)\n  either (die . displayException) pure res\n\n-- | A parser for the application's command-line arguments.\n--\n--   Returns a 'Task' to read the input, run the requested operation, and write the output to the specified output path or stdout.\narguments :: ParserInfo (Options, Parse.ParseC Task.TaskC ())\narguments = info (version <*> helper <*> ((,) <$> optionsParser <*> argumentsParser)) description\n  where\n    version = infoOption versionString (long \"version\" <> short 'v' <> help \"Output the version of the program\")\n    versionString = \"semantic version \" <> buildVersion <> \" (\" <> buildSHA <> \")\"\n    description = fullDesc <> header \"semantic -- Semantic (syntax-aware) diffs, program analysis toolkit\"\n\noptionsParser :: Parser Options\noptionsParser = do\n  logLevel <- options [ (\"error\", Just Log.Error) , (\"warning\", Just Log.Warning) , (\"info\", Just Log.Info) , (\"debug\", Just Log.Debug) , (\"none\", Nothing)]\n                      (long \"log-level\" <> value (Just Log.Warning) <> help \"Log messages at or above this level, or disable logging entirely.\")\n  failOnWarning <- switch (long \"fail-on-warning\" <> help \"Fail on assignment warnings.\")\n  failOnParseError <- switch (long \"fail-on-parse-error\" <> help \"Fail on tree-sitter parse errors.\")\n  logPathsOnError <- switch (long \"log-paths\" <> help \"Log source paths on parse and assignment error.\")\n  pure $ Options logLevel logPathsOnError (Flag.flag FailOnWarning failOnWarning) (Flag.flag FailOnParseError failOnParseError)\n\nargumentsParser :: Parser (Parse.ParseC Task.TaskC ())\nargumentsParser = do\n  subparser <- hsubparser parseCommand\n  output <- ToPath <$> pathOption (long \"output\" <> short 'o' <> help \"Output path, defaults to stdout\") <|> pure (ToHandle stdout)\n  pure $ subparser >>= Task.write output\n\nparseCommand :: Mod CommandFields (Parse.ParseC Task.TaskC Builder)\nparseCommand = command \"parse\" (info parseArgumentsParser (progDesc \"Generate parse trees for path(s)\"))\n  where\n    parseArgumentsParser = do\n      renderer\n        <-  flag  (parseTermBuilder TermSExpression)\n                  (parseTermBuilder TermSExpression)\n                  (  long \"sexpression\"\n                  <> help \"Output s-expression parse trees (default)\")\n        <|> flag' (parseSymbolsBuilder JSON)\n                  (  long \"symbols\"\n                  <> long \"json-symbols\"\n                  <> help \"Output JSON symbol list\")\n        <|> flag' (parseSymbolsBuilder Proto)\n                  (  long \"proto-symbols\"\n                  <> help \"Output protobufs symbol list\")\n        <|> flag' (parseTermBuilder TermJSON)\n                  (  long \"json\"\n                  <> help \"Output JSON AST dump\")\n        <|> flag' (parseTermBuilder TermShow)\n                  (  long \"show\"\n                  <> help \"Output using the Show instance (debug only, format subject to change without notice)\")\n        <|> flag' (parseTermBuilder TermQuiet)\n                  (  long \"quiet\"\n                  <> help \"Don't produce output, but show timing stats\")\n      filesOrStdin <- FilesFromPaths <$> some (argument filePathReader (metavar \"FILES...\"))\n                  <|> pure (FilesFromHandle stdin)\n      pure $ Task.readBlobs filesOrStdin >>= renderer\n\nfilePathReader :: ReadM (File.File Language.Language)\nfilePathReader = File.fromPath <$> path\n\npath :: ReadM FilePath\npath = eitherReader Right\n\npathOption :: Mod OptionFields FilePath -> Parser FilePath\npathOption = option path\n\noptions :: Eq a => [(String, a)] -> Mod OptionFields a -> Parser a\noptions options fields = option (optionsReader options) (fields <> showDefaultWith (findOption options) <> metavar (intercalate \"|\" (fmap fst options)))\n  where\n    optionsReader options = eitherReader $ \\ str -> maybe (Left (\"expected one of: \" <> intercalate \", \" (fmap fst options))) (Right . snd) (find ((== str) . fst) options)\n    findOption options value = maybe \"\" fst (find ((== value) . snd) options)\n"
  },
  {
    "path": "semantic/src/Semantic/Config.hs",
    "content": "{-# LANGUAGE RecordWildCards #-}\nmodule Semantic.Config\n  ( Config (..)\n  , defaultConfig\n  , Options (..)\n  , defaultOptions\n  , debugOptions\n  , infoOptions\n  , lookupStatsAddr\n  , withErrorReporterFromConfig\n  , logOptionsFromConfig\n  , withLoggerFromConfig\n  , withStatterFromConfig\n  , withTelemetry\n  -- * Flags\n  , IsTerminal      (..)\n  , LogPrintSource  (..)\n  , FailTestParsing (..)\n  , FailOnWarning   (..)\n  , FailOnParseError (..)\n  ) where\n\nimport           Data.Duration\nimport           Data.Error (LogPrintSource (..))\nimport           Data.Flag\nimport           Data.Maybe\nimport           Network.HostName\nimport           Network.URI\nimport           Semantic.Env\nimport           Semantic.Telemetry\nimport qualified Semantic.Telemetry.Error as Error\nimport qualified Semantic.Telemetry.Stat as Stat\nimport           Semantic.Version (buildSHA)\nimport           System.Environment\nimport           System.IO (hIsTerminalDevice, stdout)\nimport           System.Posix.Process\nimport           System.Posix.Types\n\ndata IsTerminal       = IsTerminal\ndata FailTestParsing  = FailTestParsing\ndata FailOnWarning    = FailOnWarning\ndata FailOnParseError = FailOnParseError\n\ndata Config\n  = Config\n  { configAppName                    :: String               -- ^ Application name (\"semantic\")\n  , configHostName                   :: String               -- ^ HostName from getHostName\n  , configProcessID                  :: ProcessID            -- ^ ProcessID from getProcessID\n  , configStatsHost                  :: Stat.Host            -- ^ Host of statsd/datadog (default: \"127.0.0.1\")\n  , configStatsPort                  :: Stat.Port            -- ^ Port of statsd/datadog (default: \"28125\")\n  , configTreeSitterParseTimeout     :: Duration             -- ^ Timeout in milliseconds before canceling tree-sitter parsing (default: 6000).\n  , configTreeSitterUnmarshalTimeout :: Duration             -- ^ Timeout in milliseconds before canceling tree-sitter unmarshalling (default: 4000).\n  , configAssignmentTimeout          :: Duration             -- ^ Millisecond timeout for assignment (default: 4000)\n  , configMaxTelemetyQueueSize       :: Int                  -- ^ Max size of telemetry queues before messages are dropped (default: 1000).\n  , configIsTerminal                 :: Flag IsTerminal      -- ^ Whether a terminal is attached (set automaticaly at runtime).\n  , configLogPrintSource             :: Flag LogPrintSource  -- ^ Whether to print the source reference when logging errors (set automatically at runtime).\n  , configLogFormatter               :: LogFormatter         -- ^ Log formatter to use (set automatically at runtime).\n  , configSHA                        :: String               -- ^ SHA to include in log messages (set automatically).\n  , configFailParsingForTesting      :: Flag FailTestParsing -- ^ Simulate internal parse failure for testing (default: False).\n  , configOptions                    :: Options              -- ^ Options configurable via command line arguments.\n  }\n\n-- Options configurable via command line arguments.\ndata Options\n  = Options\n  { optionsLogLevel         :: Maybe Level           -- ^ What level of messages to log. 'Nothing' disables logging.\n  , optionsLogPathsOnError  :: Bool                  -- ^ Should semantic log source path on parse or assignment errors (default: False).\n  , optionsFailOnWarning    :: Flag FailOnWarning    -- ^ Should semantic fail fast on assignment warnings (for testing)\n  , optionsFailOnParseError :: Flag FailOnParseError -- ^ Should semantic fail fast on tree-sitter parser errors (for testing)\n  }\n\ndefaultOptions :: Options\ndefaultOptions = Options (Just Warning) False (flag FailOnWarning False) (flag FailOnParseError False)\n\ndebugOptions :: Options\ndebugOptions = defaultOptions { optionsLogLevel = Just Debug }\n\ninfoOptions :: Options\ninfoOptions = defaultOptions { optionsLogLevel = Just Info }\n\ndefaultConfig :: Options -> IO Config\ndefaultConfig options = do\n  pid <- getProcessID\n  hostName <- getHostName\n  isTerminal <- hIsTerminalDevice stdout\n  (statsHost, statsPort) <- lookupStatsAddr\n  size <- envLookupNum 1000 \"MAX_TELEMETRY_QUEUE_SIZE\"\n  parseTimeout <- envLookupNum 6000 \"TREE_SITTER_PARSE_TIMEOUT\"\n  unmarshalTimeout <- envLookupNum 4000 \"TREE_SITTER_UNMARSHAL_TIMEOUT\"\n  assignTimeout <- envLookupNum 4000 \"SEMANTIC_ASSIGNMENT_TIMEOUT\"\n  pure Config\n    { configAppName = \"semantic\"\n    , configHostName = hostName\n    , configProcessID = pid\n    , configStatsHost = statsHost\n    , configStatsPort = statsPort\n\n    , configTreeSitterParseTimeout = fromMilliseconds parseTimeout\n    , configTreeSitterUnmarshalTimeout = fromMilliseconds unmarshalTimeout\n    , configAssignmentTimeout = fromMilliseconds assignTimeout\n    , configMaxTelemetyQueueSize = size\n    , configIsTerminal = flag IsTerminal isTerminal\n    , configLogPrintSource = flag LogPrintSource isTerminal\n    , configLogFormatter = if isTerminal then terminalFormatter else logfmtFormatter\n    , configSHA = buildSHA\n    , configFailParsingForTesting = flag FailTestParsing False\n\n    , configOptions = options\n    }\n\nwithTelemetry :: Config -> (TelemetryQueues -> IO c) -> IO c\nwithTelemetry config action =\n  withLoggerFromConfig config $ \\logger ->\n  withErrorReporterFromConfig config (queueLogMessage logger Error) $ \\errorReporter ->\n  withStatterFromConfig config $ \\statter ->\n    action (TelemetryQueues logger statter errorReporter)\n\nlogOptionsFromConfig :: Config -> LogOptions\nlogOptionsFromConfig Config{..} = LogOptions\n  { logOptionsLevel     = optionsLogLevel configOptions\n  , logOptionsFormatter = configLogFormatter\n  , logOptionsContext   = logOptionsContext'\n  }\n  where logOptionsContext'\n          | toBool IsTerminal configIsTerminal = []\n          | otherwise = [ (\"app\", configAppName)\n                        , (\"pid\", show configProcessID)\n                        , (\"hostname\", configHostName)\n                        , (\"sha\", configSHA)\n                        ]\n\n\nwithLoggerFromConfig :: Config -> (LogQueue -> IO c) -> IO c\nwithLoggerFromConfig config = withLogger (logOptionsFromConfig config) (configMaxTelemetyQueueSize config)\n\n\nwithErrorReporterFromConfig :: Config -> Error.ErrorLogger -> (ErrorQueue -> IO c) -> IO c\nwithErrorReporterFromConfig Config{..} errorLogger =\n  withErrorReporter (nullErrorReporter errorLogger) configMaxTelemetyQueueSize\n\nwithStatterFromConfig :: Config -> (StatQueue -> IO c) -> IO c\nwithStatterFromConfig Config{..} =\n  withStatter configStatsHost configStatsPort configAppName configMaxTelemetyQueueSize\n\nlookupStatsAddr :: IO (Stat.Host, Stat.Port)\nlookupStatsAddr = do\n  addr <- lookupEnv \"STATS_ADDR\"\n  let (host', port) = parseAddr (fmap (\"statsd://\" <>) addr)\n\n  -- When running in Kubes, DOGSTATSD_HOST is set with the dogstatsd host.\n  kubesHost <- lookupEnv \"DOGSTATSD_HOST\"\n  let host = fromMaybe host' kubesHost\n\n  pure (host, port)\n  where\n    defaultHost = \"127.0.0.1\"\n    defaultPort = \"28125\"\n    parseAddr a | Just s <- a\n                , Just (Just (URIAuth _ host port)) <- uriAuthority <$> parseURI s\n                = (parseHost host, parsePort port)\n                | otherwise = (defaultHost, defaultPort)\n    parseHost s = if null s then defaultHost else s\n    parsePort s = if null s then defaultPort else dropWhile (':' ==) s\n"
  },
  {
    "path": "semantic/src/Semantic/Env.hs",
    "content": "{-# OPTIONS_GHC -Wno-redundant-constraints #-}\nmodule Semantic.Env\n  ( envLookupNum\n  , envLookupString\n  ) where\n\nimport Control.Monad.IO.Class\nimport Data.Maybe\nimport System.Environment\nimport Text.Read (readMaybe)\n\nenvLookupString :: MonadIO io => String -> String -> io String\nenvLookupString defaultVal k = liftIO $ fromMaybe defaultVal <$> lookupEnv k\n\n-- | Although the `Num a` constraint is redundant (hence -Wno-redundant-constraints), we use this constraint to communicate this function is meant to read Num values.\nenvLookupNum :: (MonadIO io, Num a, Read a) => a -> String -> io a\nenvLookupNum defaultVal k = liftIO $ parse <$> lookupEnv k\n  where parse x | Just s <- x, Just p <- readMaybe s = p\n                | otherwise = defaultVal\n"
  },
  {
    "path": "semantic/src/Semantic/IO.hs",
    "content": "{-# LANGUAGE DuplicateRecordFields #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\nmodule Semantic.IO\n  ( findFilesInDir\n  ) where\n\nimport Prelude hiding (readFile)\n\nimport           Control.Monad.IO.Class\nimport           System.Directory.Tree (AnchoredDirTree (..))\nimport qualified System.Directory.Tree as Tree\nimport           System.FilePath\n\npathIsMinified :: FilePath -> Bool\npathIsMinified = isExtensionOf \".min.js\"\n\n-- Recursively find files in a directory.\nfindFilesInDir :: MonadIO m => FilePath -> [String] -> [FilePath] -> m [FilePath]\nfindFilesInDir path exts excludeDirs = do\n  _:/dir <- liftIO $ Tree.build path\n  pure $ (onlyFiles . Tree.filterDir (withExtensions exts) . Tree.filterDir (notIn excludeDirs)) dir\n  where\n    -- Build a list of only FilePath's (remove directories and failures)\n    onlyFiles (Tree.Dir _ fs)   = concatMap onlyFiles fs\n    onlyFiles (Tree.Failed _ _) = []\n    onlyFiles (Tree.File _ f)   = [f]\n\n    -- Predicate for Files with one of the extensions in 'exts'.\n    withExtensions exts (Tree.File n _)\n      | pathIsMinified n            = False\n      | takeExtension n `elem` exts = True\n      | otherwise                   = False\n    withExtensions _ _              = True\n\n    -- Predicate for contents NOT in a directory\n    notIn dirs (Tree.Dir n _)\n      | (x:_) <- n, x == '.' = False -- Don't include directories that start with '.'.\n      | n `elem` dirs = False\n      | otherwise = True\n    notIn _ _ = True\n"
  },
  {
    "path": "semantic/src/Semantic/Task/Files.hs",
    "content": "{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\n\nmodule Semantic.Task.Files\n  ( Files\n  , Destination (..)\n  , Source (..)\n  , readBlob\n  , readBlobs\n  , readBlobPairs\n  , readProject\n  , findFiles\n  , write\n  , Handle (..)\n  , FilesC(..)\n  , FilesArg(..)\n  ) where\n\nimport           Analysis.File\nimport           Analysis.Project\nimport           Control.Algebra\nimport           Control.Effect.Error\nimport           Control.Exception\nimport           Control.Monad.IO.Class\nimport           Data.Blob\nimport           Data.Blob.IO\nimport qualified Data.ByteString.Builder as B\nimport           Data.Handle\nimport           Prelude hiding (readFile)\nimport           Semantic.IO\nimport           Source.Language (Language)\nimport qualified System.IO as IO\n\ndata Source blob where\n  FromPath       :: File Language                   -> Source Blob\n  FromHandle     :: Handle 'IO.ReadMode             -> Source [Blob]\n  FromPathPair   :: File Language -> File Language  -> Source BlobPair\n  FromPairHandle :: Handle 'IO.ReadMode             -> Source [BlobPair]\n\ndata Destination = ToPath FilePath | ToHandle (Handle 'IO.WriteMode)\n\n-- | An effect to read/write 'Blob's from 'Handle's or 'FilePath's.\ndata Files (m :: * -> *) k where\n  Read :: Source a -> Files m a\n  ReadProject :: Maybe FilePath -> FilePath -> Language -> [FilePath] -> Files m Project\n  FindFiles :: FilePath -> [String] -> [FilePath] -> Files m [FilePath]\n  Write :: Destination -> B.Builder -> Files m ()\n\n\nnewtype FilesC m a = FilesC\n  { -- | Run a 'Files' effect in 'IO'\n    runFiles :: m a\n  }\n  deriving (Functor, Applicative, Monad, MonadFail, MonadIO)\n\ninstance (Has (Error SomeException) sig m, MonadFail m, MonadIO m) => Algebra (Files :+: sig) (FilesC m) where\n  alg hdl sig ctx = case sig of\n    L op -> (<$ ctx) <$> case op of\n      Read (FromPath path)                                    -> readBlobFromFile' path\n      Read (FromHandle handle)                                -> readBlobsFromHandle handle\n      Read (FromPathPair p1 p2)                               -> readFilePair p1 p2\n      Read (FromPairHandle handle)                            -> readBlobPairsFromHandle handle\n      ReadProject rootDir dir language excludeDirs            -> readProjectFromPaths rootDir dir language excludeDirs\n      FindFiles dir exts excludeDirs                          -> findFilesInDir dir exts excludeDirs\n      Write (ToPath path) builder                             -> liftIO (IO.withBinaryFile path IO.WriteMode (`B.hPutBuilder` builder))\n      Write (ToHandle (WriteHandle handle)) builder           -> liftIO (B.hPutBuilder handle builder)\n    R other -> FilesC (alg (runFiles . hdl) other ctx)\n\nreadBlob :: Has Files sig m => File Language -> m Blob\nreadBlob file = send (Read (FromPath file))\n\n-- Various ways to read in files\ndata FilesArg\n  = FilesFromHandle (Handle 'IO.ReadMode)\n  | FilesFromPaths [File Language]\n\n-- | A task which reads a list of 'Blob's from a 'Handle' or a list of 'FilePath's optionally paired with 'Language's.\nreadBlobs :: Has Files sig m => FilesArg -> m [Blob]\nreadBlobs (FilesFromHandle handle) = send (Read (FromHandle handle))\nreadBlobs (FilesFromPaths paths)   = traverse (send . Read . FromPath) paths\n\n-- | A task which reads a list of pairs of 'Blob's from a 'Handle' or a list of pairs of 'FilePath's optionally paired with 'Language's.\nreadBlobPairs :: Has Files sig m => Either (Handle 'IO.ReadMode) [(File Language, File Language)] -> m [BlobPair]\nreadBlobPairs (Left handle) = send (Read (FromPairHandle handle))\nreadBlobPairs (Right paths) = traverse (send . Read . uncurry FromPathPair) paths\n\nreadProject :: Has Files sig m => Maybe FilePath -> FilePath -> Language -> [FilePath] -> m Project\nreadProject rootDir dir lang excludeDirs = send (ReadProject rootDir dir lang excludeDirs)\n\nfindFiles :: Has Files sig m => FilePath -> [String] -> [FilePath] -> m [FilePath]\nfindFiles dir exts paths = send (FindFiles dir exts paths)\n\n-- | A task which writes a 'B.Builder' to a 'Handle' or a 'FilePath'.\nwrite :: Has Files sig m => Destination -> B.Builder -> m ()\nwrite dest builder = send (Write dest builder)\n"
  },
  {
    "path": "semantic/src/Semantic/Task.hs",
    "content": "{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE RecordWildCards #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\nmodule Semantic.Task\n( TaskC\n, Level(..)\n-- * I/O\n, Files.readBlob\n, Files.readBlobs\n, Files.readBlobPairs\n, Files.readProject\n, Files.findFiles\n, Files.write\n, Files.FilesArg(..)\n-- * Telemetry\n, writeLog\n, writeStat\n, time\n, time'\n-- * High-level flow\n, serialize\n-- * Configuration\n, debugOptions\n, defaultOptions\n, defaultConfig\n, terminalFormatter\n, logfmtFormatter\n-- * Interpreting\n, runTask\n, runTaskWithOptions\n, withOptions\n, TaskSession(..)\n, runTraceInTelemetry\n, Error\n, Lift\n, throwError\n, SomeException(..)\n, Telemetry\n) where\n\nimport           Control.Algebra\nimport           Control.Carrier.Error.Either\nimport           Control.Carrier.Lift\nimport           Control.Carrier.Reader\nimport           Control.Effect.Trace\nimport           Control.Exception\nimport           Control.Monad.IO.Class\nimport           Data.ByteString.Builder\nimport qualified Data.Flag as Flag\nimport           Semantic.Config\nimport qualified Semantic.Task.Files as Files\nimport           Semantic.Telemetry\nimport           Serializing.Format\n\n-- | A high-level task producing some result, e.g. parsing, diffing, rendering.\ntype TaskC\n  = Files.FilesC\n  ( ReaderC Config\n  ( ReaderC TaskSession\n  ( TraceInTelemetryC\n  ( TelemetryC\n  ( ErrorC SomeException\n  ( LiftC IO))))))\n\nserialize :: Has (Reader Config) sig m\n          => Format input\n          -> input\n          -> m Builder\nserialize format input = do\n  formatStyle <- asks (Flag.choose IsTerminal Plain Colourful . configIsTerminal)\n  pure (runSerialize formatStyle format input)\n\ndata TaskSession\n  = TaskSession\n  { config    :: Config\n  , requestID :: String\n  , isPublic  :: Bool\n  , logger    :: LogQueue\n  , statter   :: StatQueue\n  }\n\n-- | Execute a 'TaskC' yielding its result value in 'IO'.\nrunTask :: TaskSession -> TaskC a -> IO (Either SomeException a)\nrunTask taskSession@TaskSession{..} task = do\n  (result, stat) <- withTiming \"run\" [] $ do\n    let run :: TaskC a -> IO (Either SomeException a)\n        run\n          = runM\n          . runError\n          . runTelemetry logger statter\n          . runTraceInTelemetry\n          . runReader taskSession\n          . runReader config\n          . Files.runFiles\n    run task\n  queueStat statter stat\n  pure result\n\n-- | Execute a 'TaskC' yielding its result value in 'IO' using all default options and configuration.\nrunTaskWithOptions :: Options -> TaskC a -> IO (Either SomeException a)\nrunTaskWithOptions options task = withOptions options $ \\ config logger statter ->\n  runTask (TaskSession config \"-\" False logger statter) task\n\n-- | Yield config and telemetry queues for options.\nwithOptions :: Options -> (Config -> LogQueue -> StatQueue -> IO a) -> IO a\nwithOptions options with = do\n  config <- defaultConfig options\n  withTelemetry config (\\ (TelemetryQueues logger statter _) -> with config logger statter)\n\nnewtype TraceInTelemetryC m a = TraceInTelemetryC { runTraceInTelemetry :: m a }\n  deriving (Applicative, Functor, Monad, MonadFail, MonadIO)\n\ninstance Has Telemetry sig m => Algebra (Trace :+: sig) (TraceInTelemetryC m) where\n  alg hdl sig ctx = case sig of\n    L (Trace str) -> ctx <$ writeLog Debug str []\n    R other       -> TraceInTelemetryC (alg (runTraceInTelemetry . hdl) other ctx)\n"
  },
  {
    "path": "semantic/src/Semantic/Telemetry/AsyncQueue.hs",
    "content": "{-# LANGUAGE RecordWildCards #-}\nmodule Semantic.Telemetry.AsyncQueue\n(\n  AsyncQueue(..)\n, newAsyncQueue\n, newAsyncQueue'\n, writeAsyncQueue\n, closeAsyncQueue\n)\nwhere\n\nimport Control.Concurrent.Async as Async\nimport Control.Concurrent.STM.TBMQueue\nimport Control.Monad\nimport GHC.Conc\n\n-- | 'AsyncQueue' represents a 'TBMQueue' that's drained from a separate thread.\n-- It is intended to be used to queue data from a pure function and then process\n-- that data in IO on a separate thread. 'AsyncQueue' is parameterized by:\n--   * 'a'     - the type of message stored on the queue.\n--   * 'extra' - any other type needed to process messages on the queue.\ndata AsyncQueue a extra\n  = AsyncQueue\n  { asyncQueue      :: TBMQueue a -- ^ The underlying 'TBMQueue'.\n  , asyncQueueSink  :: Async ()   -- ^ A sink that will drain the queue.\n  , asyncQueueExtra :: extra      -- ^ Any exta data the queue needs to use.\n  }\n\n-- | Create a new AsyncQueue with the given capacity using the defaultSink.\nnewAsyncQueue :: Int -> (extra -> a -> IO ()) -> extra -> IO (AsyncQueue a extra)\nnewAsyncQueue i = newAsyncQueue' i . defaultSink\n\n-- | Create a new AsyncQueue with the given capacity, specifying a custom sink.\nnewAsyncQueue' :: Int -> (extra -> TBMQueue a -> IO ()) -> extra -> IO (AsyncQueue a extra)\nnewAsyncQueue' i f extra = do\n  q <- newTBMQueueIO i\n  s <- Async.async (f extra q)\n  pure (AsyncQueue q s extra)\n\n-- | Write a message to the queue.\nwriteAsyncQueue :: AsyncQueue a extra -> a -> IO ()\nwriteAsyncQueue AsyncQueue{..} = void . atomically . tryWriteTBMQueue asyncQueue\n\n-- | Drain messages from the queue, calling the specified function for each message.\ndefaultSink :: (extra -> a -> IO ()) -> extra -> TBMQueue a -> IO ()\ndefaultSink f extra q = do\n  msg <- atomically (readTBMQueue q)\n  maybe (pure ()) go msg\n  where go msg = f extra msg >> defaultSink f extra q\n\n-- | Close the queue.\ncloseAsyncQueue :: AsyncQueue a extra -> IO ()\ncloseAsyncQueue AsyncQueue{..} = do\n  atomically (closeTBMQueue asyncQueue)\n  Async.wait asyncQueueSink\n"
  },
  {
    "path": "semantic/src/Semantic/Telemetry/Error.hs",
    "content": "{-# LANGUAGE RecordWildCards #-}\nmodule Semantic.Telemetry.Error\n  ( ErrorLogger\n  , ErrorReport (..)\n  , ErrorReporter\n  , nullErrorReporter\n  ) where\n\nimport           Control.Exception\n\ndata ErrorReport\n  = ErrorReport\n  { errorReportException :: SomeException\n  , errorReportContext   :: [(String, String)]\n  } deriving (Show)\n\n-- | Function to log if there are errors reporting an error.\ntype ErrorLogger = String -> [(String, String)] -> IO ()\n\ntype ErrorReporter = ErrorReport -> IO ()\n\n-- | Doesn't send error reports anywhere.  Useful in tests or for basic command-line usage.\nnullErrorReporter :: ErrorLogger -> IO ErrorReporter\nnullErrorReporter logger = pure reportError\n  where\n    reportError ErrorReport{..} = let\n      msg = takeWhile (/= '\\n') (displayException errorReportException)\n      in logger msg errorReportContext\n"
  },
  {
    "path": "semantic/src/Semantic/Telemetry/Log.hs",
    "content": "{-# LANGUAGE RecordWildCards #-}\nmodule Semantic.Telemetry.Log\n  ( Level (..)\n  , LogOptions (..)\n  , Message (..)\n  , LogFormatter\n  , logfmtFormatter\n  , terminalFormatter\n  , writeLogMessage\n  ) where\n\nimport           Control.Monad.IO.Class\nimport           Data.Bifunctor\nimport           Data.Error (Colourize (..), withSGRCode)\nimport           Data.Flag as Flag\nimport           Data.List (intersperse)\nimport qualified Data.Time.Format as Time\nimport qualified Data.Time.LocalTime as LocalTime\nimport           System.Console.ANSI\nimport           System.IO\nimport           Text.Printf\n\n-- | A log message at a specific level.\ndata Message = Message Level String [(String, String)] LocalTime.ZonedTime\n  deriving (Show)\n\n-- | A formatter function for crafting log messages.\ntype LogFormatter = LogOptions -> Message -> String\n\n-- | Logging level\ndata Level\n  = Error\n  | Warning\n  | Info\n  | Debug\n  deriving (Eq, Ord, Show)\n\n-- | Options for controlling logging\ndata LogOptions = LogOptions\n  { logOptionsLevel     :: Maybe Level  -- ^ What level of messages to log. 'Nothing' disabled logging.\n  , logOptionsFormatter :: LogFormatter -- ^ Log formatter to use.\n  , logOptionsContext   :: [(String, String)]\n  }\n\n-- | Write a log a message to stderr.\nwriteLogMessage :: MonadIO io => LogOptions -> Message -> io ()\nwriteLogMessage options@LogOptions{..} = liftIO . hPutStr stderr . logOptionsFormatter options\n\n-- | Format log messaging using \"logfmt\".\n--\n-- Logfmt is a loosely defined logging format (see https://brandur.org/logfmt)\n-- for structured data, which plays very well with indexing tools like Splunk.\n--\n-- Example:\n--    time=2006-01-02T15:04:05Z07:00 msg=\"this is a message\" key=val int=42 key2=\"val with word\" float=33.33\nlogfmtFormatter :: LogFormatter\nlogfmtFormatter LogOptions{..} (Message level message pairs time) =\n    showPairs\n      ( kv \"time\" (showTime time)\n      : kv \"msg\" (shows message)\n      : kv \"level\" (shows level)\n      : (uncurry kv . second shows <$> (pairs <> logOptionsContext)))\n  . showChar '\\n' $ \"\"\n  where\n    kv k v = showString k . showChar '=' . v\n    showPairs = foldr (.) id . intersperse (showChar ' ')\n    showTime = showString . Time.formatTime Time.defaultTimeLocale \"%FT%XZ%z\"\n\n-- | Format log messages to a terminal. Suitable for local development.\n--\n-- Example:\n--     [16:52:41]  INFO this is a message     key=val language=Ruby time=0.000098s\nterminalFormatter :: LogFormatter\nterminalFormatter LogOptions{..} (Message level message pairs time) =\n    showChar '[' . showTime time . showString \"] \"\n  . showLevel level . showChar ' '\n  . showString (printf \"%-20s \" message)\n  . showPairs (pairs <> logOptionsContext)\n  . showChar '\\n' $ \"\"\n  where\n    colourize = flag Colourize True\n    showLevel Error = withSGRCode colourize [SetColor Foreground Vivid Red, SetConsoleIntensity BoldIntensity] (showString \"ERROR\")\n    showLevel Warning = withSGRCode colourize [SetColor Foreground Vivid Yellow, SetConsoleIntensity BoldIntensity] (showString \" WARN\")\n    showLevel Info = withSGRCode colourize [SetColor Foreground Vivid Cyan, SetConsoleIntensity BoldIntensity] (showString \" INFO\")\n    showLevel Debug = withSGRCode colourize [SetColor Foreground Vivid White, SetConsoleIntensity BoldIntensity] (showString \"DEBUG\")\n    showPairs pairs = foldr (.) id $ intersperse (showChar ' ') (showPair <$> pairs)\n    showPair (k, v) = showString k . showChar '=' . withSGRCode colourize [SetConsoleIntensity BoldIntensity] (showString v)\n    showTime = showString . Time.formatTime Time.defaultTimeLocale \"%X\"\n"
  },
  {
    "path": "semantic/src/Semantic/Telemetry/Stat.hs",
    "content": "{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE RecordWildCards #-}\nmodule Semantic.Telemetry.Stat\n(\n-- Primary API for creating stats.\n  increment\n, decrement\n, count\n, gauge\n, timing\n, withTiming\n, withTiming'\n, histogram\n, set\n, Stat\n, Tags\n, Host\n, Port\n, Namespace\n\n-- Client\n, statsClient\n, StatsClient(..)\n, closeStatClient\n\n-- Internal, exposed for testing\n, renderDatagram\n, sendStat\n) where\n\n\nimport           Control.Monad\nimport           Control.Monad.IO.Class\nimport qualified Data.ByteString.Char8 as B\nimport           Data.List (intercalate)\nimport           Data.List.Split (splitOneOf)\nimport qualified Data.Time.Clock as Time\nimport           Network.Socket\n    (Socket, SocketType (..), addrAddress, addrFamily, close, connect, defaultProtocol, getAddrInfo, socket)\nimport           Network.Socket.ByteString\nimport           Numeric\nimport           System.IO.Error\n\n-- | A named piece of data you wish to record a specific 'Metric' for.\n-- See https://docs.datadoghq.com/guides/dogstatsd/ for more details.\ndata Stat\n  = Stat\n  { statName  :: String  -- ^ Stat name, usually separated by '.' (e.g. \"system.metric.name\")\n  , statValue :: Metric -- ^ 'Metric' value.\n  , statTags  :: Tags    -- ^ Key/value 'Tags' (optional).\n  }\n\n-- | The various supported metric types in Datadog.\ndata Metric\n  = Counter Int       -- ^ Counters track how many times something happens per second.\n  | Gauge Double      -- ^ Gauges track the ebb and flow of a particular metric value over time.\n  | Histogram Double  -- ^ Histograms calculate the statistical distribution of any kind of value.\n  | Set Double        -- ^ Sets count the number of unique elements in a group\n  | Timer Double      -- ^ Timers measure the amount of time a section of code takes to execute.\n\n-- | Tags are key/value annotations. Values can blank.\ntype Tags = [(String, String)]\n\n\n-- | Increment a counter.\nincrement :: String -> Tags -> Stat\nincrement n = count n 1\n\n-- | Decrement a counter.\ndecrement :: String -> Tags -> Stat\ndecrement n = count n (-1)\n\n-- | Arbitrary count.\ncount :: String -> Int -> Tags -> Stat\ncount n v = Stat n (Counter v)\n\n-- | Arbitrary gauge value.\ngauge :: String -> Double -> Tags -> Stat\ngauge n v = Stat n (Gauge v)\n\n-- | Timing in milliseconds.\ntiming :: String -> Double -> Tags -> Stat\ntiming n v = Stat n (Timer v)\n\n-- | Run an IO Action and record timing in a Stat.\nwithTiming :: MonadIO io => String -> Tags -> io a -> io (a, Stat)\nwithTiming name tags action = do\n  (res, duration) <- withTiming' action\n  pure (res, timing name duration tags)\n\n-- | Run an IO Action and record timing.\nwithTiming' :: MonadIO io => io a -> io (a, Double)\nwithTiming' action = do\n  start <- liftIO Time.getCurrentTime\n  result <- action\n  end <- liftIO Time.getCurrentTime\n  let duration = realToFrac (Time.diffUTCTime end start * 1000)\n  pure (result, duration)\n\n-- | Histogram measurement.\nhistogram :: String -> Double -> Tags -> Stat\nhistogram n v = Stat n (Histogram v)\n\n-- | Set counter.\nset :: String -> Double -> Tags -> Stat\nset n v = Stat n (Set v)\n\n-- | Client for sending stats on a UDP socket.\ndata StatsClient\n  = StatsClient\n  { statsClientUDPSocket :: Socket\n  , statsClientNamespace :: String\n  , statsClientUDPHost   :: Host\n  , statsClientUDPPort   :: Port\n  }\n\ntype Host = String\ntype Port = String\ntype Namespace = String\n\n-- | Create a StatsClient at the specified host and port with a namespace prefix.\nstatsClient :: MonadIO io => Host -> Port -> Namespace -> io StatsClient\nstatsClient host port ns = liftIO $ do\n  (addr:_) <- getAddrInfo Nothing (Just host) (Just port)\n  sock <- socket (addrFamily addr) Datagram defaultProtocol\n  connect sock (addrAddress addr)\n  pure (StatsClient sock ns host port)\n\n-- | Close the client's underlying socket.\ncloseStatClient :: MonadIO io => StatsClient -> io ()\ncloseStatClient StatsClient{..} = liftIO (close statsClientUDPSocket)\n\n-- | Send a stat over the StatsClient's socket.\nsendStat :: MonadIO io => StatsClient -> Stat -> io ()\nsendStat StatsClient{..} = liftIO . void . tryIOError . sendAll statsClientUDPSocket . B.pack . renderDatagram statsClientNamespace\n\n\n-- Datagram Rendering\n\n-- | Rendering of stats to their datagrams representations, which are packed and\n-- sent over a socket.\nclass Render a where\n  renders :: a -> RenderS\n\n-- | A Function that prepends the output 'String' to an existing 'String'.\n-- Analogous to 'ShowS'.\ntype RenderS = String -> String\n\n-- | Utility function to prepend the string unchanged.\nrenderString :: String -> RenderS\nrenderString = (<>)\n\n-- | Internal: Clean a stat name of reserved chars `|, @, :`\nclean :: String -> String\nclean = intercalate \"_\" . splitOneOf \"|@:\"\n\n-- | Render a Stat (with namespace prefix) to a datagram String.\nrenderDatagram :: String -> Stat -> String\nrenderDatagram namespace stat = renderString prefix (renders stat \"\")\n  where prefix | null namespace = \"\"\n               | otherwise = clean namespace <> \".\"\n\n\n-- Instances\n\ninstance Render Stat where\n  renders Stat{..}\n    = renderString (clean statName)\n    . renderString \":\"\n    . renders statValue\n    . renders statTags\n\ninstance Render Metric where\n  renders (Counter x)   = renders x . renderString \"|c\"\n  renders (Gauge x)     = renders x . renderString \"|g\"\n  renders (Histogram x) = renders x . renderString \"|h\"\n  renders (Set x)       = renders x . renderString \"|s\"\n  renders (Timer x)     = renders x . renderString \"|ms\"\n\ninstance Render Tags where\n  renders [] = renderString \"\"\n  renders xs = renderString \"|#\" . (\\x -> x <> intercalate \",\" (renderTag <$> xs))\n    where\n      renderTag (k, \"\") = k\n      renderTag (k, v)  = k <> \":\" <> v\n\ninstance Render Int where\n  renders = shows\n\ninstance Render Double where\n  renders = showFFloat (Just 5)\n"
  },
  {
    "path": "semantic/src/Semantic/Telemetry.hs",
    "content": "{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE RankNTypes #-}\n{-# LANGUAGE RecordWildCards #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\nmodule Semantic.Telemetry\n(\n  -- Async telemetry interface\n  withLogger\n, withErrorReporter\n, withStatter\n, LogQueue\n, StatQueue\n, ErrorQueue\n, TelemetryQueues(..)\n, queueLogMessage\n, queueErrorReport\n, queueStat\n\n-- Create stats\n, Stat.increment\n, Stat.decrement\n, Stat.count\n, Stat.gauge\n, Stat.timing\n, Stat.withTiming\n, Stat.histogram\n, Stat.set\n\n-- Statsd client\n, statsClient\n, StatsClient\n\n-- Error reporters\n, nullErrorReporter\n\n-- Logging options and formatters\n, Level(..)\n, LogOptions(..)\n, logfmtFormatter\n, terminalFormatter\n, LogFormatter\n\n-- Eff interface for telemetry\n, writeLog\n, writeStat\n, time\n, time'\n, Telemetry(..)\n, runTelemetry\n, TelemetryC(..)\n, ignoreTelemetry\n, IgnoreTelemetryC(..)\n) where\n\nimport           Control.Algebra\nimport           Control.Carrier.Reader\nimport           Control.Exception\nimport           Control.Monad.IO.Class\nimport qualified Data.Time.Clock.POSIX as Time (getCurrentTime)\nimport qualified Data.Time.LocalTime as LocalTime\nimport           Semantic.Telemetry.AsyncQueue\nimport           Semantic.Telemetry.Error\nimport           Semantic.Telemetry.Log\nimport           Semantic.Telemetry.Stat as Stat\n\ntype LogQueue = AsyncQueue Message LogOptions\ntype StatQueue = AsyncQueue Stat StatsClient\ntype ErrorQueue = AsyncQueue ErrorReport ErrorReporter\n\ndata TelemetryQueues\n  = TelemetryQueues\n  { telemetryLogger        :: LogQueue\n  , telemetryStatter       :: StatQueue\n  , telemetryErrorReporter :: ErrorQueue\n  }\n\n-- | Execute an action in IO with access to a logger (async log queue).\nwithLogger :: LogOptions         -- ^ Log options\n           -> Int                -- ^ Max stats queue size before dropping stats\n           -> (LogQueue -> IO c) -- ^ Action in IO\n           -> IO c\nwithLogger options size = bracket setup closeAsyncQueue\n  where setup = newAsyncQueue size writeLogMessage options\n\n-- | Execute an action in IO with access to an error reporter (async error reporting queue).\nwithErrorReporter :: IO ErrorReporter -> Int -> (ErrorQueue -> IO c) -> IO c\nwithErrorReporter errorReporter size = bracket setup closeAsyncQueue\n  where setup = errorReporter >>= newAsyncQueue size ($)\n\n-- | Execute an action in IO with access to a statter (async stat queue).\n-- Handles the bracketed setup and teardown of the underlying 'AsyncQueue' and\n-- 'StatsClient'.\nwithStatter :: Host                -- ^ Statsd host\n            -> Port                -- ^ Statsd port\n            -> Namespace           -- ^ Namespace prefix for stats\n            -> Int                 -- ^ Max stats queue size before dropping stats\n            -> (StatQueue -> IO c) -- ^ Action in IO\n            -> IO c\nwithStatter host port ns size = bracket setup teardown\n  where setup = statsClient host port ns >>= newAsyncQueue size sendStat\n        teardown statter = closeAsyncQueue statter >> Stat.closeStatClient (asyncQueueExtra statter)\n\n-- | Queue a message to be logged.\nqueueLogMessage :: MonadIO io => LogQueue -> Level -> String -> [(String, String)] -> io ()\nqueueLogMessage q@AsyncQueue{..} level message pairs\n  | Just logLevel <- logOptionsLevel asyncQueueExtra\n  , level <= logLevel = liftIO Time.getCurrentTime >>= liftIO . LocalTime.utcToLocalZonedTime >>= liftIO . writeAsyncQueue q . Message level message pairs\n  | otherwise = pure ()\n\n-- | Queue an error to be reported.\nqueueErrorReport :: MonadIO io => ErrorQueue -> SomeException -> [(String, String)] -> io ()\nqueueErrorReport q message = liftIO . writeAsyncQueue q . ErrorReport message\n\n-- | Queue a stat to be sent to statsd.\nqueueStat :: MonadIO io => StatQueue -> Stat -> io ()\nqueueStat q = liftIO . writeAsyncQueue q\n\n\n-- Eff interface\n\n-- | A task which logs a message at a specific log level to stderr.\nwriteLog :: Has Telemetry sig m => Level -> String -> [(String, String)] -> m ()\nwriteLog level message pairs = send (WriteLog level message pairs)\n\n-- | A task which writes a stat.\nwriteStat :: Has Telemetry sig m => Stat -> m ()\nwriteStat stat = send (WriteStat stat)\n\n-- | A task which measures and stats the timing of another task.\ntime :: (Has Telemetry sig m, MonadIO m) => String -> [(String, String)] -> m output -> m output\ntime statName tags task = do\n  (a, stat) <- withTiming statName tags task\n  a <$ writeStat stat\n\n-- | A task which measures and returns the timing of another task.\ntime' :: MonadIO m => m output -> m (output, Double)\ntime' = withTiming'\n\n-- | Statting and logging effects.\ndata Telemetry (m :: * -> *) k where\n  WriteStat :: Stat -> Telemetry m ()\n  WriteLog :: Level -> String -> [(String, String)] -> Telemetry m ()\n\n-- | Run a 'Telemetry' effect by expecting a 'Reader' of 'Queue's to write stats and logs to.\nrunTelemetry :: LogQueue -> StatQueue -> TelemetryC m a -> m a\nrunTelemetry logger statter = runReader (logger, statter) . runTelemetryC\n\nnewtype TelemetryC m a = TelemetryC { runTelemetryC :: ReaderC (LogQueue, StatQueue) m a }\n  deriving (Applicative, Functor, Monad, MonadFail, MonadIO)\n\ninstance (Algebra sig m, MonadIO m) => Algebra (Telemetry :+: sig) (TelemetryC m) where\n  alg hdl sig ctx = case sig of\n    L op -> do\n      queues <- TelemetryC (ask @(LogQueue, StatQueue))\n      case op of\n        WriteStat stat               -> ctx <$ queueStat (snd queues) stat\n        WriteLog level message pairs -> ctx <$ queueLogMessage (fst queues) level message pairs\n    R other -> TelemetryC (alg (runTelemetryC . hdl) (R other) ctx)\n\n-- | Run a 'Telemetry' effect by ignoring statting/logging.\nignoreTelemetry :: IgnoreTelemetryC m a -> m a\nignoreTelemetry = runIgnoreTelemetryC\n\nnewtype IgnoreTelemetryC m a = IgnoreTelemetryC { runIgnoreTelemetryC :: m a }\n  deriving (Applicative, Functor, Monad)\n\ninstance Algebra sig m => Algebra (Telemetry :+: sig) (IgnoreTelemetryC m) where\n  alg hdl sig ctx = case sig of\n    L WriteStat{} -> pure ctx\n    L WriteLog{}  -> pure ctx\n    R other       -> IgnoreTelemetryC (alg (runIgnoreTelemetryC . hdl) other ctx)\n"
  },
  {
    "path": "semantic/src/Semantic/Util/Pretty.hs",
    "content": "module Semantic.Util.Pretty (prettyShow) where\n\nimport Language.Haskell.HsColour\nimport Language.Haskell.HsColour.Colourise\nimport Text.Show.Pretty (ppShow)\n\nprettyShow :: Show a => a -> IO ()\nprettyShow = putStrLn . hscolour TTY defaultColourPrefs False False \"\" False . ppShow\n"
  },
  {
    "path": "semantic/src/Semantic/Util.hs",
    "content": "{-# LANGUAGE AllowAmbiguousTypes #-}\n{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE PartialTypeSignatures #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# OPTIONS_GHC -Wno-missing-signatures -Wno-missing-exported-signatures -Wno-partial-type-signatures -O0 #-}\nmodule Semantic.Util\n  ( parseFile\n  , parseFileQuiet\n  ) where\n\nimport Prelude hiding (readFile)\n\nimport           Analysis.File\nimport           Analysis.Reference\nimport           Control.Carrier.Parse.Simple\nimport           Control.Effect.Reader\nimport           Control.Exception hiding (evaluate)\nimport           Control.Monad\nimport           Parsing.Parser\nimport           Semantic.Config\nimport           Semantic.Task\nimport qualified Source.Language as Language\nimport           Source.Span (Pos (..), point)\nimport           System.Exit (die)\n\nparseFile, parseFileQuiet :: Parser term -> FilePath -> IO term\nparseFile      parser = runTask'     . (parse parser <=< readBlob . fileForPath)\nparseFileQuiet parser = runTaskQuiet . (parse parser <=< readBlob . fileForPath)\n\nfileForPath :: FilePath -> File Language.Language\nfileForPath p = File (Reference p (point (Pos 1 1))) (Language.forPath p)\n\nrunTask', runTaskQuiet :: ParseC TaskC a -> IO a\nrunTask'     task = runTaskWithOptions debugOptions   (asks configTreeSitterParseTimeout >>= \\ timeout -> runParse timeout task) >>= either (die . displayException) pure\nrunTaskQuiet task = runTaskWithOptions defaultOptions (asks configTreeSitterParseTimeout >>= \\ timeout -> runParse timeout task) >>= either (die . displayException) pure\n"
  },
  {
    "path": "semantic/src/Semantic/Version.hs",
    "content": "{-# LANGUAGE CPP #-}\nmodule Semantic.Version\n  ( buildSHA\n  , buildVersion\n  ) where\n\n\n#if !BAZEL_BUILD\nimport Data.Version (showVersion)\nimport Paths_semantic (version)\n#endif\n\n-- The version string of this build of semantic.\nbuildVersion :: String\n#if BAZEL_BUILD\nbuildVersion = \"0.11.0.0\"\n#else\nbuildVersion = showVersion version\n#endif\n\n-- The SHA1 hash of this build of semantic.\n-- If compiled as a development build, this will be @<development>@.\nbuildSHA :: String\nbuildSHA = \"<development>\"\n"
  },
  {
    "path": "semantic/src/Serializing/Format.hs",
    "content": "{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE OverloadedStrings #-}\n\nmodule Serializing.Format\n  ( Format (..),\n    FormatStyle (..),\n    Builder,\n    runSerialize,\n  )\nwhere\n\nimport AST.Marshal.JSON\nimport Algebra.Graph.Export.Dot\nimport Algebra.Graph.ToGraph\nimport Data.Aeson (ToJSON (..), fromEncoding)\nimport Data.ByteString.Builder\nimport Data.ProtoLens.Encoding as Proto\nimport Data.ProtoLens.Message (Message)\nimport Language.Haskell.HsColour\nimport Language.Haskell.HsColour.Colourise\nimport Source.Loc\nimport Text.Show.Pretty\n\ndata Format input where\n  DOT :: (Ord vertex, ToGraph graph, ToVertex graph ~ vertex) => Style vertex Builder -> Format graph\n  JSON :: ToJSON input => Format input\n  Marshal :: MarshalJSON input => Format (input Loc)\n  Show :: Show input => Format input\n  Proto :: Message input => Format input\n\ndata FormatStyle = Colourful | Plain\n\nrunSerialize :: FormatStyle -> Format input -> input -> Builder\nrunSerialize _ (DOT style) = export style\nrunSerialize _ JSON = (<> \"\\n\") . fromEncoding . toEncoding\nrunSerialize _ Marshal = fromEncoding . toEncoding . marshal\nrunSerialize Colourful Show = (<> \"\\n\") . stringUtf8 . hscolour TTY defaultColourPrefs False False \"\" False . ppShow\nrunSerialize Plain Show = (<> \"\\n\") . stringUtf8 . show\nrunSerialize _ Proto = Proto.buildMessage\n"
  },
  {
    "path": "semantic/src/Serializing/SExpression/Precise.hs",
    "content": "{-# LANGUAGE AllowAmbiguousTypes, DataKinds, FlexibleContexts, FlexibleInstances, MultiParamTypeClasses, OverloadedStrings, ScopedTypeVariables, TypeApplications, TypeFamilies, TypeOperators, UndecidableInstances #-}\nmodule Serializing.SExpression.Precise\n( serializeSExpression\n, ToSExpression(..)\n) where\n\nimport Data.ByteString.Builder\nimport Data.Foldable (fold)\nimport Data.List (intersperse)\nimport GHC.Generics\n\nserializeSExpression :: ToSExpression t => t ann -> Builder\nserializeSExpression t = toSExpression t 0 <> \"\\n\"\n\n\nnl :: Int -> Builder\nnl n | n <= 0    = \"\"\n     | otherwise = \"\\n\"\n\npad :: Int -> Builder\npad n = stringUtf8 (replicate (2 * n) ' ')\n\n\nclass ToSExpression (t :: * -> *) where\n  toSExpression :: t ann -> Int -> Builder\n\ninstance (ToSExpressionBy strategy t, strategy ~ ToSExpressionStrategy t) => ToSExpression t where\n  toSExpression = toSExpression' @strategy\n\n\ndata Strategy = Generic | Custom\n\ntype family ToSExpressionStrategy (t :: * -> *) :: Strategy where\n  ToSExpressionStrategy (_ :+: _) = 'Custom\n  ToSExpressionStrategy _         = 'Generic\n\nclass ToSExpressionBy (strategy :: Strategy) t where\n  toSExpression' :: t ann -> Int -> Builder\n\ninstance (ToSExpression l, ToSExpression r) => ToSExpressionBy 'Custom (l :+: r) where\n  toSExpression' (L1 l) = toSExpression l\n  toSExpression' (R1 r) = toSExpression r\n\ninstance (Generic1 t, GToSExpression (Rep1 t)) => ToSExpressionBy 'Generic t where\n  toSExpression' t n = nl n <> pad n <> \"(\" <> fold (intersperse \" \" (gtoSExpression (from1 t) n)) <> \")\"\n\n\nclass GToSExpression f where\n  gtoSExpression :: f ann -> Int -> [Builder]\n\ninstance GToSExpression f => GToSExpression (M1 D d f) where\n  gtoSExpression = gtoSExpression . unM1\n\ninstance (GToSExpression f, GToSExpression g) => GToSExpression (f :+: g) where\n  gtoSExpression (L1 l) = gtoSExpression l\n  gtoSExpression (R1 r) = gtoSExpression r\n\ninstance (Constructor c, GToSExpression f) => GToSExpression (M1 C c f) where\n  gtoSExpression m n = stringUtf8 (conName m) : gtoSExpression (unM1 m) (n + 1)\n\ninstance (GToSExpression f, GToSExpression g) => GToSExpression (f :*: g) where\n  gtoSExpression (l :*: r) = gtoSExpression l <> gtoSExpression r\n\ninstance GToSExpression U1 where\n  gtoSExpression _ _ = []\n\ninstance GToSExpression f => GToSExpression (M1 S s f) where\n  gtoSExpression = gtoSExpression . unM1 -- FIXME: show the selector name, if any\n\ninstance Show k => GToSExpression (K1 R k) where\n  gtoSExpression k _ = [stringUtf8 (show (unK1 k))]\n\ninstance GToSExpression Par1 where\n  gtoSExpression _ _ = []\n\ninstance ToSExpression t => GToSExpression (Rec1 t) where\n  gtoSExpression (Rec1 t) = pure . toSExpression t\n\ninstance (Foldable f, GToSExpression g) => GToSExpression (f :.: g) where\n  gtoSExpression (Comp1 fs) n\n    | null fs   = mempty\n    | otherwise = foldMap gtoSExpression fs n\n"
  },
  {
    "path": "semantic/test/Data/Graph/Spec.hs",
    "content": "module Data.Graph.Spec (spec) where\n\nimport SpecHelpers\n\nimport Data.Graph.Algebraic\nimport qualified Algebra.Graph.Class as Class\n\nspec :: Spec\nspec = describe \"Data.Graph\" $\n  it \"has a valid topological sort\" $ do\n    let topo = topologicalSort\n    topo (Class.path \"ab\") `shouldBe` \"ba\"\n    topo (Class.path \"abc\") `shouldBe` \"cba\"\n    topo ((vertex 'a' `connect` vertex 'b') `connect` vertex 'c') `shouldBe` \"cba\"\n    topo (vertex 'a' `connect` (vertex 'b' `connect` vertex 'c')) `shouldBe` \"cba\"\n    topo ((vertex 'a' `connect` vertex 'b') <> (vertex 'a' `connect` vertex 'c')) `shouldBe` \"cba\"\n    topo (Class.path \"abd\" <> Class.path \"acd\") `shouldBe` \"dcba\"\n    topo (Class.path \"aba\") `shouldBe` \"ab\"\n"
  },
  {
    "path": "semantic/test/Data/Language/Spec.hs",
    "content": "module Data.Language.Spec (testTree) where\n\nimport Source.Language as Language\nimport Test.Tasty\nimport Test.Tasty.HUnit\n\ntestTree :: TestTree\ntestTree = testGroup \"Data.Language\"\n  [ testCase \"languageForFilePath works for languages with ambiguous lingo extensions\" $ do\n      Language.forPath \"foo.php\" @=? PHP\n      Language.forPath \"foo.md\"  @=? Markdown\n      Language.forPath \"foo.tsx\" @=? TSX\n  ]\n"
  },
  {
    "path": "semantic/test/Data/Semigroup/App/Spec.hs",
    "content": "{-# LANGUAGE OverloadedStrings #-}\nmodule Data.Semigroup.App.Spec (testTree) where\n\nimport           Data.Semigroup.App\nimport           Hedgehog\nimport qualified Hedgehog.Gen as Gen\nimport qualified Hedgehog.Range as Range\nimport           Properties\nimport qualified Test.Tasty as Tasty\nimport qualified Test.Tasty.Hedgehog as Tasty\n\napp :: MonadGen m => m (App Maybe Integer)\napp = App <$> Gen.maybe (Gen.integral (Range.linear 0 10000))\n\nmerge :: MonadGen m => m (AppMerge Maybe String)\nmerge = AppMerge <$> Gen.maybe (Gen.string (Range.linear 0 10) Gen.ascii)\n\ntestTree :: Tasty.TestTree\ntestTree = Tasty.testGroup \"Data.Semigroup.App\"\n  [ Tasty.testGroup \"App\"\n    [ Tasty.testPropertyNamed \"is associative\" \"App_is_associative\" (associative (<>) app)\n    ]\n  , Tasty.testGroup \"AppMerge\"\n    [ Tasty.testPropertyNamed \"is associative\" \"AppMerge_is_associative\" (associative (<>) merge)\n    , Tasty.testPropertyNamed \"is monoidal\" \"AppMerge_is_monoidal\" (monoidal merge)\n    ]\n  ]\n"
  },
  {
    "path": "semantic/test/Examples.hs",
    "content": "{-# LANGUAGE AllowAmbiguousTypes #-}\n{-# LANGUAGE CPP #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE ImplicitParams #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE TypeApplications #-}\n\n{-# OPTIONS_GHC -O1 #-}\n{-# OPTIONS_GHC -Wno-unused-top-binds -Wno-unused-imports #-}\nmodule Main (main) where\n\nimport qualified Analysis.File as File\nimport           Control.Carrier.Parse.Measured\nimport           Control.Carrier.Reader\nimport           Control.Concurrent.Async (forConcurrently)\nimport           Control.Exception (displayException)\nimport           Control.Lens\nimport           Control.Monad\nimport           Data.Blob\nimport           Data.Flag\nimport           Data.Foldable\nimport           Data.Int\nimport qualified Data.Text as Text\nimport           Data.Traversable\nimport           Proto.Semantic as P hiding (Blob)\nimport           Proto.Semantic_Fields as P\nimport           Semantic.Api.Symbols (parseSymbols)\nimport           Semantic.Config as Config\nimport           Semantic.Task\nimport           Semantic.Task.Files\nimport           System.FilePath\nimport           System.FilePath.Glob\nimport qualified System.Path.Fixture as Fixture\nimport qualified System.Process as Process\nimport qualified Test.Tasty as Tasty\nimport qualified Test.Tasty.HUnit as HUnit\n\ndata LanguageExample =\n  LanguageExample\n    { languageName      :: String\n    , languageExtension :: String\n    , languageSkips     :: [FilePath]\n    , languageDirSkips  :: [FilePath]\n    }\n  deriving (Eq, Show)\n\nle :: String -> String -> [FilePath] -> [FilePath] -> LanguageExample\nle = LanguageExample\n\nexamples :: [LanguageExample]\nexamples =\n  [ le \"go\" \"**/*.go\" goFileSkips goDirSkips\n  , le \"python\" \"**/*.py\" pythonFileSkips mempty\n  , le \"ruby\" \"**/*.rb\" rubySkips mempty\n  , le \"typescript\" \"**/*.[jt]s\" typescriptSkips mempty\n  -- , le \"typescript\" \"**/*.[jt]sx\" tsxSkips mempty\n  ]\n\ngoFileSkips :: [FilePath]\ngoFileSkips =\n  [\n  -- Super slow\n    \"go/src/vendor/golang_org/x/text/unicode/norm/tables.go\"\n  , \"go/src/vendor/golang_org/x/text/unicode/bidi/tables.go\"\n  , \"go/src/vendor/golang_org/x/net/idna/tables.go\"\n  , \"go/src/cmd/vendor/golang.org/x/arch/x86/x86asm/tables.go\"\n  , \"moby/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go\"\n  , \"moby/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go\"\n\n  -- Parser timeouts\n  , \"moby/vendor/github.com/ugorji/go/codec/fast-path.generated.go\"\n\n  -- Parse errors\n  , \"go/src/math/big/arith.go\" -- Unhandled identifier character: 'ŝ'\n  , \"go/src/cmd/go/testdata/src/badpkg/x.go\"\n  , \"go/src/cmd/go/testdata/src/notest/hello.go\"\n  , \"go/src/cmd/vet/testdata/deadcode.go\"\n  , \"go/src/cmd/vet/testdata/testingpkg/tests_test.go\"\n  , \"moby/vendor/github.com/beorn7/perks/quantile/stream.go\" -- Unhandled identifier character: 'ƒ'\n\n  ]\n\ngoDirSkips :: [FilePath]\ngoDirSkips =\n  [ \"go/src/cmd/compile/internal/ssa\"\n  , \"go/test/fixedbugs\"\n  , \"go/test/syntax\"\n  , \"go/test/method4.dir\"\n  , \"go/test\"\n  ]\n\npythonFileSkips :: [FilePath]\npythonFileSkips = []\n\nrubySkips :: [FilePath]\nrubySkips =\n  [\n  -- Doesn't parse b/c of issue with r<<i\n    \"ruby_spec/core/enumerable/shared/inject.rb\"\n  -- Doesn't parse\n  , \"ruby_spec/language/string_spec.rb\"\n  , \"ruby_spec/language/fixtures/freeze_magic_comment_required_diff_enc.rb\"\n  , \"ruby_spec/command_line/fixtures/freeze_flag_required_diff_enc.rb\"\n  , \"ruby_spec/command_line/fixtures/bad_syntax.rb\"\n\n  -- Can't detect method calls inside heredoc bodies with precise ASTs\n  , \"ruby_spec/core/argf/readpartial_spec.rb\"\n  , \"ruby_spec/core/process/exec_spec.rb\"\n\n  -- These are known differences between precise and a la carte (usually precise is producing better data) that we aren't going to fix.\n  , \"ruby_spec/language/def_spec.rb\"\n  , \"ruby_spec/language/block_spec.rb\"\n  , \"ruby_spec/language/method_spec.rb\"\n  , \"ruby_spec/language/lambda_spec.rb\"\n  ]\n\ntsxSkips :: [FilePath]\ntsxSkips =\n  [\n  ]\n\ntypescriptSkips :: [FilePath]\ntypescriptSkips =\n  [ \"npm/node_modules/slide/lib/async-map-ordered.js\"\n  , \"npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/regenerator.min.js\"\n  ]\n\n\n\nbuildExamples :: Fixture.HasFixture => TaskSession -> LanguageExample -> FilePath -> IO Tasty.TestTree\nbuildExamples session lang tsDir = do\n  let fileSkips = fmap (tsDir </>) (languageSkips lang)\n      dirSkips  = fmap (tsDir </>) (languageDirSkips lang)\n\n  files <- globDir1 (compile (languageExtension lang)) tsDir\n  when (null files)\n    (fail (\"Nothing in dir \" <> tsDir))\n\n  let paths = filter (\\x -> takeDirectory x `notElem` dirSkips) . filter (`notElem` fileSkips) $ files\n  trees <- for paths $ \\file -> do\n    pure . HUnit.testCase file $ do\n      precise <- runTask session (runParse (parseSymbolsFilePath file))\n      assertOK \"precise\" precise\n  pure (Tasty.testGroup (languageName lang) trees)\n\n  where\n    assertOK msg = either (\\e -> HUnit.assertFailure (msg <> \" failed to parse\" <> show e)) (refuteErrors msg)\n    refuteErrors msg a = case toList (a^.files) of\n      [x] | (e:_) <- toList (x^.errors) -> HUnit.assertFailure (msg <> \" parse errors \" <> show e)\n      _                                 -> pure ()\n\ndata SortableSymbol = SortableSymbol Text.Text Int32 Int32 Int32 Int32\n  deriving (Eq, Show, Ord)\n\n\ntestOptions :: Config.Options\ntestOptions = defaultOptions\n  { optionsFailOnWarning = flag FailOnWarning True\n  , optionsLogLevel = Nothing\n  }\n\nmain :: IO ()\n-- main = putStrLn \"nothing\"\nmain = withOptions testOptions $ \\ config logger statter -> do\n  -- void $ Process.system \"script/clone-example-repos\"\n\n#if BAZEL_BUILD\n  rf <- Fixture.create\n  let ?runfiles = rf\n  let ?project = FilePath \"semantic\"\n#endif\n\n  let session = TaskSession config \"-\" False logger statter\n\n  allTests <- forConcurrently examples $ \\lang -> do\n    let tsDir = Fixture.absRelDir \"..\"\n    buildExamples session lang tsDir\n\n  Tasty.defaultMain $ Tasty.testGroup \"parse-examples\" allTests\n\nparseSymbolsFilePath ::\n  ( Has (Error SomeException) sig m\n  , Has Parse sig m\n  , Has Files sig m\n  )\n  => FilePath\n  -> m ParseTreeSymbolResponse\nparseSymbolsFilePath path = readBlob (File.fromPath path) >>= parseSymbols . pure @[]\n"
  },
  {
    "path": "semantic/test/Generators.hs",
    "content": "{-# LANGUAGE OverloadedStrings #-}\nmodule Generators\n  ( source\n  ) where\n\nimport           Hedgehog\nimport qualified Hedgehog.Gen as Gen\nimport qualified Source.Source\n\nsource :: MonadGen m => Hedgehog.Range Int -> m Source.Source.Source\nsource r = Gen.frequency [ (1, empty), (20, nonEmpty) ]\n  where empty    = pure mempty\n        nonEmpty = Source.Source.fromUTF8 <$> Gen.utf8 r (Gen.frequency [ (1, pure '\\r'), (1, pure '\\n'), (20, Gen.unicode) ])\n"
  },
  {
    "path": "semantic/test/Integration/Spec.hs",
    "content": "{-# LANGUAGE ImplicitParams #-}\n{-# LANGUAGE LambdaCase #-}\nmodule Integration.Spec (testTree) where\n\nimport           Control.Exception (throw)\nimport qualified Data.ByteString.Lazy as BL\nimport           Data.Foldable (find)\nimport           Data.List (transpose, union)\nimport           SpecHelpers\nimport           System.FilePath\nimport           System.FilePath.Glob\nimport           System.IO.Unsafe\nimport           Test.Tasty\nimport           Test.Tasty.Golden\n\nlanguages :: [FilePath]\nlanguages = [\"go\", \"javascript\", \"json\", \"python\", \"ruby\", \"typescript\", \"tsx\"]\n\ntestTree :: (?session :: TaskSession) => TestTree\ntestTree = testGroup \"Integration (golden tests)\" $ fmap testsForLanguage languages\n\ntestsForLanguage :: (?session :: TaskSession) => FilePath -> TestTree\ntestsForLanguage language = do\n  let dir = \"test/fixtures\" </> language </> \"corpus\"\n  let items = unsafePerformIO (examples dir)\n  localOption (mkTimeout 3000000) $ testGroup language $ fmap testForExample items\n{-# NOINLINE testsForLanguage #-}\n\ndata Example = ParseExample FilePath FilePath\n             deriving (Eq, Show)\n\ntestForExample :: (?session :: TaskSession) => Example -> TestTree\ntestForExample (ParseExample file parseOutput) =\n    goldenVsStringDiff\n      (\"parses \" <> parseOutput)\n      (\\ref new -> [\"git\", \"diff\", ref, new])\n      parseOutput\n      (parseFilePath ?session file >>= either throw (pure . BL.fromStrict))\n\n\n-- | Return all the examples from the given directory. Examples are expected to\n-- | have the form:\n-- |\n-- | example-name.A.rb - The left hand side of the diff.\n-- | example-name.B.rb - The right hand side of the diff.\n-- |\n-- | example-name.diffA-B.txt - The expected sexpression diff output for A -> B.\n-- | example-name.diffB-A.txt - The expected sexpression diff output for B -> A.\n-- |\n-- | example-name.parseA.txt - The expected sexpression parse tree for example-name.A.rb\n-- | example-name.parseB.txt - The expected sexpression parse tree for example-name.B.rb\nexamples :: FilePath -> IO [Example]\nexamples directory = do\n  as <- globFor \"*.A.*\"\n  bs <- globFor \"*.B.*\"\n  sExpAs <- globFor \"*.parseA.txt\"\n  sExpBs <- globFor \"*.parseB.txt\"\n\n  let exampleParse files out name = ParseExample (lookupNormalized name files) out\n\n  let keys = (normalizeName <$> as) `union` (normalizeName <$> bs)\n  pure $ merge [ getExamples (exampleParse as) sExpAs keys\n               , getExamples (exampleParse bs) sExpBs keys ]\n  where\n    merge = concat . transpose\n    -- Only returns examples if they exist\n    getExamples f list = foldr (go f list) []\n      where go f list name acc = case lookupNormalized' name list of\n              Just out -> f out name : acc\n              Nothing  -> acc\n\n    lookupNormalized :: FilePath -> [FilePath] -> FilePath\n    lookupNormalized name xs = fromMaybe\n      (error (\"cannot find \" <> name <> \" make sure .A, .B and exist.\"))\n      (lookupNormalized' name xs)\n\n    lookupNormalized' :: FilePath -> [FilePath] -> Maybe FilePath\n    lookupNormalized' name = find ((== name) . normalizeName)\n\n    globFor :: String -> IO [FilePath]\n    globFor p = globDir1 (compile p) directory\n\n-- | Given a test name like \"foo.A.js\", return \"foo\".\nnormalizeName :: FilePath -> FilePath\nnormalizeName = dropExtension . dropExtension\n"
  },
  {
    "path": "semantic/test/Properties.hs",
    "content": "-- | Defines useful Hedgehog checkers based around the properties of\n-- standard typeclasses (associativity, reflexivity, etc.) This module\n-- is similar to the hedgehog-checkers package on Hackage, but said\n-- package doesn't work with hedgehog-1.0, so we reproduce these\n-- (largely-trivial) functions here.\n\nmodule Properties\n  ( associative\n  , monoidal\n  ) where\n\nimport GHC.Stack\nimport Hedgehog\n\nassociative :: (Eq a, Show a) => (a -> a -> a) -> Gen a -> Property\nassociative fn gen = property $ withFrozenCallStack $ do\n  (a, b, c) <- forAll ((,,) <$> gen <*> gen <*> gen)\n  fn a (fn b c) === fn (fn a b) c\n\nmonoidal :: (Eq a, Show a, Monoid a) => Gen a -> Property\nmonoidal gen = property $ withFrozenCallStack $ do\n  it <- forAll gen\n  mempty <> it === it\n  it <> mempty === it\n"
  },
  {
    "path": "semantic/test/Semantic/CLI/Spec.hs",
    "content": "{-# OPTIONS_GHC -Wno-unused-imports #-}\n\nmodule Semantic.CLI.Spec (testTree) where\n\nimport           Analysis.File\nimport           Analysis.Reference\nimport           Control.Carrier.Parse.Simple\nimport           Control.Carrier.Reader\nimport           Control.Exception\nimport           Data.ByteString.Builder\nimport           Semantic.Api hiding (Blob, File)\nimport           Semantic.Task\nimport           Serializing.Format\nimport           Source.Language\nimport           SpecHelpers\nimport           System.Directory\nimport           System.FilePath\nimport           System.IO.Unsafe\nimport qualified System.Path.Fixture as Fixture\nimport           Test.Tasty\nimport           Test.Tasty.Golden\n\ntestTree :: TestTree\ntestTree = testGroup \"Semantic.CLI\"\n  [ testGroup \"parseTermBuilder\" $ fmap testForParseFixture parseFixtures\n  ]\n\n-- We provide this function to the golden tests so as to have better\n-- output when diffing JSON outputs. If you're investigating these\n-- tests and find this output hard to read, install the `jd` CLI tool\n-- (https://github.com/josephburnett/jd), which will print a detailed\n-- summary of the differences between these JSON files.\nrenderDiff :: String -> String -> [String]\nrenderDiff ref new = unsafePerformIO $ do\n  let check p = do\n        exists <- doesFileExist p\n        unless exists (throwIO (userError (\"Can't find path \" <> p)))\n\n  check ref\n  check new\n  useJD <- (takeExtension ref == \".json\" &&) <$> fmap isJust (findExecutable \"jd\")\n  pure $ if useJD\n    then [\"jd\", \"-set\", ref, new]\n    else [\"diff\", ref, new]\n{-# NOINLINE renderDiff #-}\n\n\ntestForParseFixture :: (String, [Blob] -> ParseC TaskC Builder, [File Language], FilePath) -> TestTree\ntestForParseFixture (format, runParse, files, expected) =\n  goldenVsStringDiff\n    (\"parse fixture renders to \" <> format)\n    renderDiff\n    expected\n    (fmap toLazyByteString . runTaskOrDie $ readBlobs (FilesFromPaths files) >>= runParse)\n\nparseFixtures :: [(String, [Blob] -> ParseC TaskC Builder, [File Language], FilePath)]\nparseFixtures =\n  [ (\"s-expression\", parseTermBuilder TermSExpression, path, \"semantic/test/fixtures/ruby/corpus/and-or.parseA.txt\")\n  , (\"symbols\", parseSymbolsBuilder Serializing.Format.JSON, path'', \"semantic/test/fixtures/cli/parse-tree.symbols.json\")\n  , (\"protobuf symbols\", parseSymbolsBuilder Serializing.Format.Proto, path'', \"semantic/test/fixtures/cli/parse-tree.symbols.protobuf.bin\")\n  ]\n  where path = [File (Reference \"semantic/test/fixtures/ruby/corpus/and-or.A.rb\" lowerBound) Ruby]\n        path'' = [File (Reference \"semantic/test/fixtures/ruby/corpus/method-declaration.A.rb\" lowerBound) Ruby]\n"
  },
  {
    "path": "semantic/test/Semantic/IO/Spec.hs",
    "content": "{-# LANGUAGE CPP #-}\n{-# LANGUAGE ImplicitParams #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# OPTIONS_GHC -Wno-unused-imports #-}\n{-# OPTIONS_GHC -Wno-redundant-constraints #-}\n\nmodule Semantic.IO.Spec (spec) where\n\nimport Prelude hiding (readFile)\n\nimport           Analysis.File as File\nimport           Analysis.Reference as Ref\nimport           Data.Blob as Blob\nimport           Data.Handle\nimport           SpecHelpers\nimport qualified System.Path.Fixture as Fixture\n\nspec :: Fixture.HasFixture => Spec\nspec = do\n#if BAZEL_BUILD\n  rf <- runIO Fixture.create\n  let ?project = \"semantic\"\n      ?runfiles = rf\n#endif\n  let blobsFromFilePath path = do\n        h <- openFileForReading (Fixture.absRelFile path)\n        blobs <- readBlobPairsFromHandle h\n        pure blobs\n  describe \"readFile\" $ do\n\n    it \"returns a blob for extant files\" $ do\n      let path = Fixture.absRelFile \"test/fixtures/cli/diff.json\"\n      Just blob <- readBlobFromFile (File (Reference path lowerBound) Unknown)\n      blobFilePath blob `shouldBe` path\n\n    it \"throws for absent files\" $ do\n      readBlobFromFile (File (Reference \"/dev/doesnotexist\" lowerBound) Unknown) `shouldThrow` anyIOException\n\n  describe \"readBlobPairsFromHandle\" $ do\n    let a = Blob.fromSource \"method.rb\" Ruby \"def foo; end\"\n    let b = Blob.fromSource \"method.rb\" Ruby \"def bar(x); end\"\n    it \"returns blobs for valid JSON encoded diff input\" $ do\n      blobs <- blobsFromFilePath \"test/fixtures/cli/diff.json\"\n      blobs `shouldBe` [Compare a b]\n\n    it \"returns blobs when there's no before\" $ do\n      blobs <- blobsFromFilePath \"test/fixtures/cli/diff-no-before.json\"\n      blobs `shouldBe` [Insert b]\n\n    it \"returns blobs when there's null before\" $ do\n      blobs <- blobsFromFilePath \"test/fixtures/cli/diff-null-before.json\"\n      blobs `shouldBe` [Insert b]\n\n    it \"returns blobs when there's no after\" $ do\n      blobs <- blobsFromFilePath \"test/fixtures/cli/diff-no-after.json\"\n      blobs `shouldBe` [Delete a]\n\n    it \"returns blobs when there's null after\" $ do\n      blobs <- blobsFromFilePath \"test/fixtures/cli/diff-null-after.json\"\n      blobs `shouldBe` [Delete a]\n\n\n    it \"returns blobs for unsupported language\" $ do\n      h <- openFileForReading (Fixture.absRelFile \"test/fixtures/cli/diff-unsupported-language.json\")\n      blobs <- readBlobPairsFromHandle h\n      let b' = Blob.fromSource \"test.kt\" Unknown \"fun main(args: Array<String>) {\\nprintln(\\\"hi\\\")\\n}\\n\"\n      blobs `shouldBe` [Insert b']\n\n    it \"detects language based on filepath for empty language\" $ do\n      blobs <- blobsFromFilePath \"test/fixtures/cli/diff-empty-language.json\"\n      blobs `shouldBe` [Compare a b]\n\n    it \"throws on blank input\" $ do\n      h <- openFileForReading (Fixture.absRelFile \"test/fixtures/cli/blank.json\")\n      readBlobPairsFromHandle h `shouldThrow` jsonException\n\n    it \"throws if language field not given\" $ do\n      h <- openFileForReading (Fixture.absRelFile \"test/fixtures/cli/diff-no-language.json\")\n      readBlobsFromHandle h `shouldThrow` jsonException\n\n    it \"throws if null on before and after\" $ do\n      h <- openFileForReading (Fixture.absRelFile \"test/fixtures/cli/diff-null-both-sides.json\")\n      readBlobPairsFromHandle h `shouldThrow` jsonException\n\n  describe \"readBlobsFromHandle\" $ do\n    it \"returns blobs for valid JSON encoded parse input\" $ do\n      h <- openFileForReading (Fixture.absRelFile \"test/fixtures/cli/parse.json\")\n      blobs <- readBlobsFromHandle h\n      let a = Blob.fromSource \"method.rb\" Ruby \"def foo; end\"\n      blobs `shouldBe` [a]\n\n    it \"throws on blank input\" $ do\n      h <- openFileForReading (Fixture.absRelFile \"test/fixtures/cli/blank.json\")\n      readBlobsFromHandle h `shouldThrow` jsonException\n\njsonException :: Selector InvalidJSONException\njsonException = const True\n"
  },
  {
    "path": "semantic/test/Semantic/Spec.hs",
    "content": "{-# LANGUAGE OverloadedStrings #-}\nmodule Semantic.Spec (spec) where\n\nimport           Analysis.File\nimport           Control.Exception (fromException)\nimport qualified Data.Blob as Blob\nimport           SpecHelpers\n\nimport Semantic.Api hiding (Blob)\n\n -- we need some lenses here, oof\nsetBlobLanguage :: Language -> Blob -> Blob\nsetBlobLanguage lang b = b { blobFile = (blobFile b) { fileBody = lang }}\n\nspec :: Spec\nspec = do\n  describe \"parseBlob\" $ do\n    let methodsBlob = Blob.fromSource \"methods.rb\" Ruby \"def foo\\nend\\n\"\n\n    it \"throws if given an unknown language for sexpression output\" $ do\n      res <- runTaskWithOptions defaultOptions (runParseWithConfig (parseTermBuilder TermSExpression [setBlobLanguage Unknown methodsBlob]))\n      case res of\n        Left exc   -> fromException exc `shouldBe` Just (NoLanguageForBlob \"methods.rb\")\n        Right _bad -> fail \"Expected parseTermBuilder to fail for an unknown language\"\n\n    it \"renders with the specified renderer\" $ do\n      output <- fmap runBuilder . runTaskOrDie  $ parseTermBuilder TermSExpression [methodsBlob]\n      output `shouldBe` \"(Program \\n  (Statement \\n    (Arg \\n      (Primary \\n        (Method \\n          (MethodName \\n            (Identifier \\\"foo\\\")))))))\\n\"\n"
  },
  {
    "path": "semantic/test/Semantic/Stat/Spec.hs",
    "content": "{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE RecordWildCards #-}\n\nmodule Semantic.Stat.Spec (testTree) where\n\nimport Control.Exception\nimport Network.Socket (Family (..), Socket, SocketType (..), close, defaultProtocol, socketPair)\nimport Network.Socket.ByteString\nimport Semantic.Config\nimport Semantic.Telemetry.Stat\nimport System.Environment\n\nimport Test.Tasty\nimport Test.Tasty.HUnit\n\nwithSocketPair :: ((Socket, Socket) -> IO c) -> IO c\nwithSocketPair = bracket create release\n  where create = socketPair AF_UNIX Datagram defaultProtocol\n        release (client, server) = close client >> close server\n\nwithEnvironment :: String -> String -> IO () -> IO ()\nwithEnvironment key value = bracket_ (setEnv key value) (unsetEnv key)\n\n-- NOTE: These cannot easily run in parallel because we test things like\n-- setting/unsetting the environment.\ntestTree :: TestTree\ntestTree = testCaseSteps \"Semantic.Stat.Spec\" $ \\step -> do\n  step \"Sets appropriate defaults\"\n  case_sets_appropriate_defaults\n  step \"Takes stats addr from environment\"\n  case_takes_stats_addr_from_environment\n  step \"Handles stats addr with just hostname\"\n  case_handles_stats_addr_with_just_hostname\n  step \"takes dogstats host from environment\"\n  case_takes_dogstats_host_from_environment\n  step \"rendering\"\n  case_render_counters *> case_render_tags\n  step \"stats deliver datagram\"\n  case_sendstat_delivers_datagram\n\n\ncase_sets_appropriate_defaults :: Assertion\ncase_sets_appropriate_defaults = do\n  StatsClient{..} <- defaultStatsClient\n  statsClientNamespace @?= \"semantic\"\n  statsClientUDPHost   @?= \"127.0.0.1\"\n  statsClientUDPPort   @?= \"28125\"\n\ncase_takes_stats_addr_from_environment :: Assertion\ncase_takes_stats_addr_from_environment =\n  withEnvironment \"STATS_ADDR\" \"localhost:8125\" $ do\n    StatsClient{..} <- defaultStatsClient\n    statsClientUDPHost @?= \"localhost\"\n    statsClientUDPPort @?= \"8125\"\n\ncase_handles_stats_addr_with_just_hostname :: Assertion\ncase_handles_stats_addr_with_just_hostname =\n  withEnvironment \"STATS_ADDR\" \"localhost\" $ do\n    StatsClient{..} <- defaultStatsClient\n    statsClientUDPHost @?= \"localhost\"\n    statsClientUDPPort @?= \"28125\"\n\ncase_takes_dogstats_host_from_environment :: Assertion\ncase_takes_dogstats_host_from_environment =\n  withEnvironment \"DOGSTATSD_HOST\" \"0.0.0.0\" $ do\n    StatsClient{..} <- defaultStatsClient\n    statsClientUDPHost @?= \"0.0.0.0\"\n    statsClientUDPPort @?= \"28125\"\n\nkey :: String\nkey = \"app.metric\"\n\ncase_render_counters :: Assertion\ncase_render_counters = do\n  renderDatagram \"\" (increment key []) @?= \"app.metric:1|c\"\n  renderDatagram \"\" (decrement key []) @?= \"app.metric:-1|c\"\n  renderDatagram \"\" (count key 8 []) @?= \"app.metric:8|c\"\n  renderDatagram \"pre\" (increment key []) @?= \"pre.app.metric:1|c\"\n\ncase_render_tags :: Assertion\ncase_render_tags = do\n  let incTag = increment key [(\"key\", \"value\")]\n  renderDatagram \"\" incTag @?= \"app.metric:1|c|#key:value\"\n\n  let tagWithoutValue = increment key [(\"a\", \"\")]\n  renderDatagram \"\" tagWithoutValue @?= \"app.metric:1|c|#a\"\n\n  let tags = increment key [(\"key\", \"value\"), (\"a\", \"true\")]\n  renderDatagram \"\" tags @?= \"app.metric:1|c|#key:value,a:true\"\n\n  let tagsWithoutValue = increment key [(\"key\", \"value\"), (\"a\", \"\")]\n  renderDatagram \"\" tagsWithoutValue @?= \"app.metric:1|c|#key:value,a\"\n\ncase_sendstat_delivers_datagram :: Assertion\ncase_sendstat_delivers_datagram = do\n  client <- defaultStatsClient\n  withSocketPair $ \\(clientSoc, serverSoc) -> do\n    sendStat client { statsClientUDPSocket = clientSoc } (increment \"app.metric\" [])\n    info <- recv serverSoc 1024\n    info @?= \"semantic.app.metric:1|c\"\n\n-- Defaults are all driven by defaultConfig.\ndefaultStatsClient :: IO StatsClient\ndefaultStatsClient = defaultConfig defaultOptions >>= \\Config{..} -> statsClient configStatsHost configStatsPort configAppName\n"
  },
  {
    "path": "semantic/test/Spec.hs",
    "content": "{-# LANGUAGE ImplicitParams #-}\n{-# OPTIONS_GHC -Wno-redundant-constraints #-}\n\nmodule Main (allTests, legacySpecs, main, tests) where\n\nimport qualified Data.Graph.Spec\nimport qualified Data.Language.Spec\nimport qualified Data.Semigroup.App.Spec\nimport qualified Integration.Spec\nimport qualified Semantic.CLI.Spec\nimport           Semantic.Config (defaultOptions, optionsLogLevel)\nimport qualified Semantic.IO.Spec\nimport qualified Semantic.Spec\nimport qualified Semantic.Stat.Spec\nimport           Semantic.Task (TaskSession (..), withOptions)\nimport qualified System.Path.Fixture as Fixture\nimport qualified Tags.Spec\nimport           Test.Hspec\nimport           Test.Tasty as Tasty\nimport           Test.Tasty.Hspec as Tasty\n\ntests :: (?session :: TaskSession, Fixture.HasFixture) => [TestTree]\ntests =\n  [ Data.Language.Spec.testTree\n  , Data.Semigroup.App.Spec.testTree\n  , Integration.Spec.testTree\n  , Semantic.CLI.Spec.testTree\n  , Semantic.Stat.Spec.testTree\n  ]\n\n-- We can't bring this out of the IO monad until we divest\n-- from hspec, since testSpec operates in IO.\nallTests :: (?session :: TaskSession, Fixture.HasFixture) => IO TestTree\nallTests = do\n  asTastySpecs <- Tasty.testSpecs legacySpecs\n  let allSpecs = tests <> asTastySpecs\n  pure (testGroup \"semantic\" allSpecs)\n\n-- If you're writing new test modules, please don't add to this\n-- stanza: it is only there to prevent massive rewrites, and is\n-- converted into a Tasty TestTree in 'main'. (Quoth the tasty-hspec\n-- documentation: \"hspec and tasty serve similar purposes; consider\n-- using one or the other.\") Instead, create a new TestTree value\n-- in your spec module and add it to the above 'tests' list.\nlegacySpecs :: Fixture.HasFixture => Spec\nlegacySpecs = parallel $ do\n  describe \"Data.Graph\" Data.Graph.Spec.spec\n  describe \"Tags.Spec\" Tags.Spec.spec\n  describe \"Semantic\" Semantic.Spec.spec\n  describe \"Semantic.IO\" Semantic.IO.Spec.spec\n\n\nmain :: IO ()\nmain = do\n  runfiles <- Fixture.create\n  let ?runfiles = runfiles\n      ?project = \"semantic\"\n\n  withOptions defaultOptions { optionsLogLevel = Nothing } $ \\ config logger statter ->\n    let ?session = TaskSession config \"-\" False logger statter\n\n    in allTests >>= defaultMain\n"
  },
  {
    "path": "semantic/test/SpecHelpers.hs",
    "content": "{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# OPTIONS_GHC -fno-warn-orphans #-}\n\nmodule SpecHelpers\n( module X\n, runBuilder\n, parseFilePath\n, readFilePathPair\n, runTaskOrDie\n, runParseWithConfig\n, TaskSession(..)\n, toList\n, Config\n, LogQueue\n, StatQueue\n) where\n\nimport qualified Analysis.File as File\nimport           Analysis.Name as X hiding (Level)\nimport           Analysis.Project as X\nimport           Control.Carrier.Fresh.Strict\nimport           Control.Carrier.Lift\nimport           Control.Carrier.Parse.Simple\nimport           Control.Carrier.Reader as X\nimport           Control.Exception (displayException)\nimport           Control.Monad as X\nimport           Data.Blob as X\nimport           Data.Blob.IO as X\nimport           Data.ByteString as X (ByteString)\nimport           Data.ByteString.Builder (Builder, toLazyByteString)\nimport           Data.ByteString.Lazy (toStrict)\nimport           Data.Edit as X\nimport           Data.Foldable (toList)\nimport           Data.List.NonEmpty as X (NonEmpty (..))\nimport           Data.Maybe as X\nimport           Data.Monoid as X (First (..), Last (..), Monoid (..))\nimport           Data.Proxy as X\nimport           Data.Semigroup as X (Semigroup (..))\nimport           Data.Semilattice.Lower as X\nimport           Data.Traversable as X (for)\nimport           Debug.Trace as X (traceM, traceShowM)\nimport           Parsing.Parser as X\nimport           Semantic.Api hiding (Blob, File)\nimport           Semantic.Config (Config (..), optionsLogLevel)\nimport           Semantic.Task as X\nimport           Semantic.Telemetry (LogQueue, StatQueue)\nimport           Semantic.Util as X\nimport           Source.Language as X\nimport           Source.Range as X hiding (end, point, start)\nimport           Source.Source as X (Source)\nimport           Source.Span as X hiding (HasSpan (..), end, point, start)\nimport qualified Source.Span\nimport           System.Exit (die)\nimport           Test.Hspec as X (Spec, SpecWith, around, context, describe, it, parallel, pendingWith, runIO, xit)\nimport           Test.Hspec.Expectations as X\n\ninstance Lower X.Span where\n  lowerBound = Source.Span.point (Pos 1 1)\n\nrunBuilder :: Builder -> ByteString\nrunBuilder = toStrict . toLazyByteString\n\n-- | Returns an s-expression parse tree for the specified path.\nparseFilePath :: TaskSession -> FilePath -> IO (Either SomeException ByteString)\nparseFilePath session path = do\n  blob <- readBlobFromFile (File.fromPath path)\n  res <- runTask session . runParse (configTreeSitterParseTimeout (config session)) $ parseTermBuilder TermSExpression (toList blob)\n  pure (runBuilder <$> res)\n\nrunParseWithConfig :: Has (Reader Config) sig m => ParseC m a -> m a\nrunParseWithConfig task = asks configTreeSitterParseTimeout >>= \\ timeout -> runParse timeout task\n\n-- | Read two files to a BlobPair.\nreadFilePathPair :: FilePath -> FilePath -> IO BlobPair\nreadFilePathPair p1 p2 = readFilePair (File.fromPath p1) (File.fromPath p2)\n\n-- Run a Task and call `die` if it returns an Exception.\nrunTaskOrDie :: ParseC TaskC a -> IO a\nrunTaskOrDie task = runTaskWithOptions defaultOptions { optionsLogLevel = Nothing } (runParseWithConfig task) >>= either (die . displayException) pure\n"
  },
  {
    "path": "semantic/test/Tags/Spec.hs",
    "content": "{-# LANGUAGE OverloadedStrings #-}\n\nmodule Tags.Spec\n  ( spec,\n  )\nwhere\n\nimport qualified Analysis.File as File\nimport           Proto.Semantic as P\nimport           Semantic.Api.Symbols\nimport           Source.Loc\nimport           SpecHelpers\nimport qualified System.Path.Fixture as Fixture\nimport           Tags.Tagging.Precise\n\nspec :: Fixture.HasFixture => Spec\nspec = do\n  describe \"go\" $ do\n    it \"produces tags for functions with docs (TODO)\" $\n      parseTestFile [P.FUNCTION] (Fixture.absRelFile \"test/fixtures/go/tags/simple_functions.go\")\n        `shouldReturn` [ Tag \"TestFromBits\" P.FUNCTION P.DEFINITION (Range 56 68) (OneIndexedSpan (Span (Pos 6 6) (Pos 6 18))) \"func TestFromBits(t *testing.T) {\" (UTF16CodeUnitSpan (Span (Pos 5 5) (Pos 5 17))),\n                         Tag \"Hi\" P.FUNCTION P.DEFINITION (Range 99 101) (OneIndexedSpan (Span (Pos 10 6) (Pos 10 8))) \"func Hi() {\" (UTF16CodeUnitSpan (Span (Pos 9 5) (Pos 9 7)))\n                       ]\n    it \"produces tags for methods\" $\n      parseTestFile [] (Fixture.absRelFile \"test/fixtures/go/tags/method.go\")\n        `shouldReturn` [ Tag \"CheckAuth\" P.METHOD P.DEFINITION (Range 39 48) (OneIndexedSpan (Span (Pos 3 21) (Pos 3 30))) \"func (c *apiClient) CheckAuth(req *http.Request, user, repo string) (*authenticatedActor, error) {}\" (UTF16CodeUnitSpan (Span (Pos 2 20) (Pos 2 29)))\n                       ]\n    it \"produces tags for calls\" $\n      parseTestFile [P.CALL] (Fixture.absRelFile \"test/fixtures/go/tags/simple_functions.go\")\n        `shouldReturn` [ Tag \"Hi\" P.CALL P.REFERENCE (Range 86 88) (OneIndexedSpan (Span (Pos 7 2) (Pos 7 4))) \"Hi()\" (UTF16CodeUnitSpan (Span (Pos 6 1) (Pos 6 3)))\n                       ]\n  describe \"javascript and typescript\" $ do\n    it \"produces tags for functions with docs (TODO)\" $\n      parseTestFile [] (Fixture.absRelFile \"test/fixtures/javascript/tags/simple_function_with_docs.js\")\n        `shouldReturn` [ Tag \"myFunction\" P.FUNCTION P.DEFINITION (Range 31 41) (OneIndexedSpan (Span (Pos 2 10) (Pos 2 20))) \"function myFunction() {\" (UTF16CodeUnitSpan (Span (Pos 1 9) (Pos 1 19)))\n                       ]\n    it \"produces tags for classes\" $\n      parseTestFile [] (Fixture.absRelFile \"test/fixtures/typescript/tags/class.ts\")\n        `shouldReturn` [ Tag \"FooBar\" P.CLASS P.DEFINITION (Range 6 12) (OneIndexedSpan (Span (Pos 1 7) (Pos 1 13))) \"class FooBar {}\" (UTF16CodeUnitSpan (Span (Pos 0 6) (Pos 0 12)))\n                       ]\n    it \"produces tags for modules\" $\n      parseTestFile [] (Fixture.absRelFile \"test/fixtures/typescript/tags/module.ts\")\n        `shouldReturn` [ Tag \"APromise\" P.MODULE P.DEFINITION (Range 7 15) (OneIndexedSpan (Span (Pos 1 8) (Pos 1 16))) \"module APromise { }\" (UTF16CodeUnitSpan (Span (Pos 0 7) (Pos 0 15)))\n                       ]\n  describe \"python\" $ do\n    it \"produces tags for functions\" $\n      parseTestFile [] (Fixture.absRelFile \"test/fixtures/python/tags/simple_functions.py\")\n        `shouldReturn` [ Tag \"Foo\" P.FUNCTION P.DEFINITION (Range 4 7) (OneIndexedSpan (Span (Pos 1 5) (Pos 1 8))) \"def Foo(x):\" (UTF16CodeUnitSpan (Span (Pos 0 4) (Pos 0 7))),\n                         Tag \"Bar\" P.FUNCTION P.DEFINITION (Range 74 77) (OneIndexedSpan (Span (Pos 7 5) (Pos 7 8))) \"def Bar():\" (UTF16CodeUnitSpan (Span (Pos 6 4) (Pos 6 7))),\n                         Tag \"local\" P.FUNCTION P.DEFINITION (Range 89 94) (OneIndexedSpan (Span (Pos 8 9) (Pos 8 14))) \"def local():\" (UTF16CodeUnitSpan (Span (Pos 7 8) (Pos 7 13)))\n                       ]\n    it \"produces tags for functions with docs\" $\n      parseTestFile [] (Fixture.absRelFile \"test/fixtures/python/tags/simple_function_with_docs.py\")\n        `shouldReturn` [ Tag \"Foo\" P.FUNCTION P.DEFINITION (Range 4 7) (OneIndexedSpan (Span (Pos 1 5) (Pos 1 8))) \"def Foo(x):\" (UTF16CodeUnitSpan (Span (Pos 0 4) (Pos 0 7)))\n                       ]\n    it \"produces tags for classes\" $\n      parseTestFile [] (Fixture.absRelFile \"test/fixtures/python/tags/class.py\")\n        `shouldReturn` [ Tag \"Foo\" P.CLASS P.DEFINITION (Range 6 9) (OneIndexedSpan (Span (Pos 1 7) (Pos 1 10))) \"class Foo:\" (UTF16CodeUnitSpan (Span (Pos 0 6) (Pos 0 9))),\n                         Tag \"f\" P.FUNCTION P.DEFINITION (Range 43 44 ) (OneIndexedSpan (Span (Pos 3 9) (Pos 3 10))) \"def f(self):\" (UTF16CodeUnitSpan (Span (Pos 2 8) (Pos 2 9)))\n                       ]\n    it \"produces tags for multi-line functions\" $\n      parseTestFile [P.FUNCTION] (Fixture.absRelFile \"test/fixtures/python/tags/multiline.py\")\n        `shouldReturn` [ Tag \"Foo\" P.FUNCTION P.DEFINITION (Range 4 7) (OneIndexedSpan (Span (Pos 1 5) (Pos 1 8))) \"def Foo(x,\" (UTF16CodeUnitSpan (Span (Pos 0 4) (Pos 0 7)))\n                       ]\n  describe \"ruby\" $ do\n    it \"produces tags for methods\" $\n      parseTestFile [P.METHOD] (Fixture.absRelFile \"test/fixtures/ruby/tags/simple_method.rb\")\n        `shouldReturn` [ Tag \"foo\" P.METHOD P.DEFINITION (Range 4 7) (OneIndexedSpan (Span (Pos 1 5) (Pos 1 8))) \"def foo\" (UTF16CodeUnitSpan (Span (Pos 0 4) (Pos 0 7)))\n                       ]\n    it \"produces tags for sends\" $\n      parseTestFile [P.CALL] (Fixture.absRelFile \"test/fixtures/ruby/tags/simple_method.rb\")\n        `shouldReturn` [ Tag \"puts\" P.CALL P.REFERENCE (Range 10 14) (OneIndexedSpan (Span (Pos 2 3) (Pos 2 7))) \"puts \\\"hi\\\"\" (UTF16CodeUnitSpan (Span (Pos 1 2) (Pos 1 6))),\n                         Tag \"bar\" P.CALL P.REFERENCE (Range 24 27) (OneIndexedSpan (Span (Pos 3 5) (Pos 3 8))) \"a.bar\" (UTF16CodeUnitSpan (Span (Pos 2 4) (Pos 2 7))),\n                         Tag \"a\" P.CALL P.REFERENCE (Range 22 23) (OneIndexedSpan (Span (Pos 3 3) (Pos 3 4))) \"a.bar\" (UTF16CodeUnitSpan (Span (Pos 2 2) (Pos 2 3)))\n                       ]\n    it \"produces tags for methods with docs (TODO)\" $\n      parseTestFile [] (Fixture.absRelFile \"test/fixtures/ruby/tags/simple_method_with_docs.rb\")\n        `shouldReturn` [ Tag \"foo\" P.METHOD P.DEFINITION (Range 18 21) (OneIndexedSpan (Span (Pos 2 5) (Pos 2 8))) \"def foo\" (UTF16CodeUnitSpan (Span (Pos 1 4) (Pos 1 7)))\n                       ]\n    it \"correctly tags files containing multibyte UTF-8 characters (TODO)\" $\n      parseTestFile [] (Fixture.absRelFile \"test/fixtures/ruby/tags/unicode_identifiers.rb\")\n        `shouldReturn` [ Tag \"日本語\" P.METHOD P.DEFINITION (Range 20 29) (OneIndexedSpan (Span (Pos 2 5) (Pos 2 14))) \"def 日本語\" (UTF16CodeUnitSpan (Span (Pos 1 4) (Pos 1 7)))\n                       ]\n    it \"produces tags for methods and classes with docs (TODO)\" $\n      parseTestFile [P.MODULE, P.CLASS, P.METHOD] (Fixture.absRelFile \"test/fixtures/ruby/tags/class_module.rb\")\n        `shouldReturn` [ Tag \"Foo\" P.MODULE P.DEFINITION (Range 21 24) (OneIndexedSpan (Span (Pos 2 8) (Pos 2 11))) \"module Foo\" (UTF16CodeUnitSpan (Span (Pos 1 7) (Pos 1 10))),\n                         Tag \"Bar\" P.CLASS P.DEFINITION (Range 50 53) (OneIndexedSpan (Span (Pos 5 9) (Pos 5 12))) \"class Bar\" (UTF16CodeUnitSpan (Span (Pos 4 8) (Pos 4 11))),\n                         Tag \"baz\" P.METHOD P.DEFINITION (Range 81 84) (OneIndexedSpan (Span (Pos 8 9) (Pos 8 12))) \"def baz(a)\" (UTF16CodeUnitSpan (Span (Pos 7 8) (Pos 7 11))),\n                         Tag \"C\" P.CLASS P.DEFINITION (Range 132 133) (OneIndexedSpan (Span (Pos 14 13) (Pos 14 14))) \"class A::B::C\" (UTF16CodeUnitSpan (Span (Pos 13 12) (Pos 13 13))),\n                         Tag \"foo\" P.METHOD P.DEFINITION (Range 140 143) (OneIndexedSpan (Span (Pos 15 7) (Pos 15 10))) \"def foo\" (UTF16CodeUnitSpan (Span (Pos 14 6) (Pos 14 9))),\n                         Tag \"foo\" P.METHOD P.DEFINITION (Range 175 178) (OneIndexedSpan (Span (Pos 18 12) (Pos 18 15))) \"def self.foo\" (UTF16CodeUnitSpan (Span (Pos 17 11) (Pos 17 14)))\n                       ]\n\nparseTestFile :: Foldable t => t P.SyntaxType -> FilePath -> IO [Tag]\nparseTestFile include path = runTaskOrDie $ readBlob (File.fromPath path) >>= fmap (filter only) . tagsForBlob\n  where\n    only t = null include || (`elem` include) (tagSyntaxType t)\n"
  },
  {
    "path": "semantic/test/fixtures/base.rb",
    "content": "# coding: utf-8\n# frozen_string_literal: true\n\n# external dependencies\nrequire 'rack'\nrequire 'tilt'\nrequire 'rack/protection'\nrequire 'mustermann'\nrequire 'mustermann/sinatra'\nrequire 'mustermann/regular'\n\n# stdlib dependencies\nrequire 'thread'\nrequire 'time'\nrequire 'uri'\n\n# other files we need\nrequire 'sinatra/indifferent_hash'\nrequire 'sinatra/show_exceptions'\nrequire 'sinatra/version'\n\nmodule Sinatra\n  # The request object. See Rack::Request for more info:\n  # http://rubydoc.info/github/rack/rack/master/Rack/Request\n  class Request < Rack::Request\n    HEADER_PARAM = /\\s*[\\w.]+=(?:[\\w.]+|\"(?:[^\"\\\\]|\\\\.)*\")?\\s*/\n    HEADER_VALUE_WITH_PARAMS = /(?:(?:\\w+|\\*)\\/(?:\\w+(?:\\.|\\-|\\+)?|\\*)*)\\s*(?:;#{HEADER_PARAM})*/\n\n    # Returns an array of acceptable media types for the response\n    def accept\n      @env['sinatra.accept'] ||= begin\n        if @env.include? 'HTTP_ACCEPT' and @env['HTTP_ACCEPT'].to_s != ''\n          @env['HTTP_ACCEPT'].to_s.scan(HEADER_VALUE_WITH_PARAMS).\n            map! { |e| AcceptEntry.new(e) }.sort\n        else\n          [AcceptEntry.new('*/*')]\n        end\n      end\n    end\n\n    def accept?(type)\n      preferred_type(type).to_s.include?(type)\n    end\n\n    def preferred_type(*types)\n      return accept.first if types.empty?\n      types.flatten!\n      return types.first if accept.empty?\n      accept.detect do |accept_header|\n        type = types.detect { |t| MimeTypeEntry.new(t).accepts?(accept_header) }\n        return type if type\n      end\n    end\n\n    alias secure? ssl?\n\n    def forwarded?\n      @env.include? \"HTTP_X_FORWARDED_HOST\"\n    end\n\n    def safe?\n      get? or head? or options? or trace?\n    end\n\n    def idempotent?\n      safe? or put? or delete? or link? or unlink?\n    end\n\n    def link?\n      request_method == \"LINK\"\n    end\n\n    def unlink?\n      request_method == \"UNLINK\"\n    end\n\n    def params\n      super\n    rescue Rack::Utils::ParameterTypeError, Rack::Utils::InvalidParameterError => e\n      raise BadRequest, \"Invalid query parameters: #{Rack::Utils.escape_html(e.message)}\"\n    end\n\n    class AcceptEntry\n      attr_accessor :params\n      attr_reader :entry\n\n      def initialize(entry)\n        params = entry.scan(HEADER_PARAM).map! do |s|\n          key, value = s.strip.split('=', 2)\n          value = value[1..-2].gsub(/\\\\(.)/, '\\1') if value.start_with?('\"')\n          [key, value]\n        end\n\n        @entry  = entry\n        @type   = entry[/[^;]+/].delete(' ')\n        @params = Hash[params]\n        @q      = @params.delete('q') { 1.0 }.to_f\n      end\n\n      def <=>(other)\n        other.priority <=> self.priority\n      end\n\n      def priority\n        # We sort in descending order; better matches should be higher.\n        [ @q, -@type.count('*'), @params.size ]\n      end\n\n      def to_str\n        @type\n      end\n\n      def to_s(full = false)\n        full ? entry : to_str\n      end\n\n      def respond_to?(*args)\n        super or to_str.respond_to?(*args)\n      end\n\n      def method_missing(*args, &block)\n        to_str.send(*args, &block)\n      end\n    end\n\n    class MimeTypeEntry\n      attr_reader :params\n\n      def initialize(entry)\n        params = entry.scan(HEADER_PARAM).map! do |s|\n          key, value = s.strip.split('=', 2)\n          value = value[1..-2].gsub(/\\\\(.)/, '\\1') if value.start_with?('\"')\n          [key, value]\n        end\n\n        @type   = entry[/[^;]+/].delete(' ')\n        @params = Hash[params]\n      end\n\n      def accepts?(entry)\n        File.fnmatch(entry, self) && matches_params?(entry.params)\n      end\n\n      def to_str\n        @type\n      end\n\n      def matches_params?(params)\n        return true if @params.empty?\n\n        params.all? { |k,v| !@params.has_key?(k) || @params[k] == v }\n      end\n    end\n  end\n\n  # The response object. See Rack::Response and Rack::Response::Helpers for\n  # more info:\n  # http://rubydoc.info/github/rack/rack/master/Rack/Response\n  # http://rubydoc.info/github/rack/rack/master/Rack/Response/Helpers\n  class Response < Rack::Response\n    DROP_BODY_RESPONSES = [204, 304]\n\n    def body=(value)\n      value = value.body while Rack::Response === value\n      @body = String === value ? [value.to_str] : value\n    end\n\n    def each\n      block_given? ? super : enum_for(:each)\n    end\n\n    def finish\n      result = body\n\n      if drop_content_info?\n        headers.delete \"Content-Length\"\n        headers.delete \"Content-Type\"\n      end\n\n      if drop_body?\n        close\n        result = []\n      end\n\n      if calculate_content_length?\n        # if some other code has already set Content-Length, don't muck with it\n        # currently, this would be the static file-handler\n        headers[\"Content-Length\"] = body.map(&:bytesize).reduce(0, :+).to_s\n      end\n\n      [status.to_i, headers, result]\n    end\n\n    private\n\n    def calculate_content_length?\n      headers[\"Content-Type\"] and not headers[\"Content-Length\"] and Array === body\n    end\n\n    def drop_content_info?\n      status.to_i / 100 == 1 or drop_body?\n    end\n\n    def drop_body?\n      DROP_BODY_RESPONSES.include?(status.to_i)\n    end\n  end\n\n  # Some Rack handlers (Thin, Rainbows!) implement an extended body object protocol, however,\n  # some middleware (namely Rack::Lint) will break it by not mirroring the methods in question.\n  # This middleware will detect an extended body object and will make sure it reaches the\n  # handler directly. We do this here, so our middleware and middleware set up by the app will\n  # still be able to run.\n  class ExtendedRack < Struct.new(:app)\n    def call(env)\n      result, callback = app.call(env), env['async.callback']\n      return result unless callback and async?(*result)\n      after_response { callback.call result }\n      setup_close(env, *result)\n      throw :async\n    end\n\n    private\n\n    def setup_close(env, status, headers, body)\n      return unless body.respond_to? :close and env.include? 'async.close'\n      env['async.close'].callback { body.close }\n      env['async.close'].errback { body.close }\n    end\n\n    def after_response(&block)\n      raise NotImplementedError, \"only supports EventMachine at the moment\" unless defined? EventMachine\n      EventMachine.next_tick(&block)\n    end\n\n    def async?(status, headers, body)\n      return true if status == -1\n      body.respond_to? :callback and body.respond_to? :errback\n    end\n  end\n\n  # Behaves exactly like Rack::CommonLogger with the notable exception that it does nothing,\n  # if another CommonLogger is already in the middleware chain.\n  class CommonLogger < Rack::CommonLogger\n    def call(env)\n      env['sinatra.commonlogger'] ? @app.call(env) : super\n    end\n\n    superclass.class_eval do\n      alias call_without_check call unless method_defined? :call_without_check\n      def call(env)\n        env['sinatra.commonlogger'] = true\n        call_without_check(env)\n      end\n    end\n  end\n\n  class BadRequest < TypeError #:nodoc:\n    def http_status; 400 end\n  end\n\n  class NotFound < NameError #:nodoc:\n    def http_status; 404 end\n  end\n\n  # Methods available to routes, before/after filters, and views.\n  module Helpers\n    # Set or retrieve the response status code.\n    def status(value = nil)\n      response.status = Rack::Utils.status_code(value) if value\n      response.status\n    end\n\n    # Set or retrieve the response body. When a block is given,\n    # evaluation is deferred until the body is read with #each.\n    def body(value = nil, &block)\n      if block_given?\n        def block.each; yield(call) end\n        response.body = block\n      elsif value\n        # Rack 2.0 returns a Rack::File::Iterator here instead of\n        # Rack::File as it was in the previous API.\n        unless request.head? || value.is_a?(Rack::File::Iterator) || value.is_a?(Stream)\n          headers.delete 'Content-Length'\n        end\n        response.body = value\n      else\n        response.body\n      end\n    end\n\n    # Halt processing and redirect to the URI provided.\n    def redirect(uri, *args)\n      if env['HTTP_VERSION'] == 'HTTP/1.1' and env[\"REQUEST_METHOD\"] != 'GET'\n        status 303\n      else\n        status 302\n      end\n\n      # According to RFC 2616 section 14.30, \"the field value consists of a\n      # single absolute URI\"\n      response['Location'] = uri(uri.to_s, settings.absolute_redirects?, settings.prefixed_redirects?)\n      halt(*args)\n    end\n\n    # Generates the absolute URI for a given path in the app.\n    # Takes Rack routers and reverse proxies into account.\n    def uri(addr = nil, absolute = true, add_script_name = true)\n      return addr if addr =~ /\\A[a-z][a-z0-9\\+\\.\\-]*:/i\n      uri = [host = String.new]\n      if absolute\n        host << \"http#{'s' if request.secure?}://\"\n        if request.forwarded? or request.port != (request.secure? ? 443 : 80)\n          host << request.host_with_port\n        else\n          host << request.host\n        end\n      end\n      uri << request.script_name.to_s if add_script_name\n      uri << (addr ? addr : request.path_info).to_s\n      File.join uri\n    end\n\n    alias url uri\n    alias to uri\n\n    # Halt processing and return the error status provided.\n    def error(code, body = nil)\n      code, body    = 500, code.to_str if code.respond_to? :to_str\n      response.body = body unless body.nil?\n      halt code\n    end\n\n    # Halt processing and return a 404 Not Found.\n    def not_found(body = nil)\n      error 404, body\n    end\n\n    # Set multiple response headers with Hash.\n    def headers(hash = nil)\n      response.headers.merge! hash if hash\n      response.headers\n    end\n\n    # Access the underlying Rack session.\n    def session\n      request.session\n    end\n\n    # Access shared logger object.\n    def logger\n      request.logger\n    end\n\n    # Look up a media type by file extension in Rack's mime registry.\n    def mime_type(type)\n      Base.mime_type(type)\n    end\n\n    # Set the Content-Type of the response body given a media type or file\n    # extension.\n    def content_type(type = nil, params = {})\n      return response['Content-Type'] unless type\n      default = params.delete :default\n      mime_type = mime_type(type) || default\n      fail \"Unknown media type: %p\" % type if mime_type.nil?\n      mime_type = mime_type.dup\n      unless params.include? :charset or settings.add_charset.all? { |p| not p === mime_type }\n        params[:charset] = params.delete('charset') || settings.default_encoding\n      end\n      params.delete :charset if mime_type.include? 'charset'\n      unless params.empty?\n        mime_type << (mime_type.include?(';') ? ', ' : ';')\n        mime_type << params.map do |key, val|\n          val = val.inspect if val =~ /[\";,]/\n          \"#{key}=#{val}\"\n        end.join(', ')\n      end\n      response['Content-Type'] = mime_type\n    end\n\n    # Set the Content-Disposition to \"attachment\" with the specified filename,\n    # instructing the user agents to prompt to save.\n    def attachment(filename = nil, disposition = :attachment)\n      response['Content-Disposition'] = disposition.to_s.dup\n      if filename\n        params = '; filename=\"%s\"' % File.basename(filename)\n        response['Content-Disposition'] << params\n        ext = File.extname(filename)\n        content_type(ext) unless response['Content-Type'] or ext.empty?\n      end\n    end\n\n    # Use the contents of the file at +path+ as the response body.\n    def send_file(path, opts = {})\n      if opts[:type] or not response['Content-Type']\n        content_type opts[:type] || File.extname(path), :default => 'application/octet-stream'\n      end\n\n      disposition = opts[:disposition]\n      filename    = opts[:filename]\n      disposition = :attachment if disposition.nil? and filename\n      filename    = path        if filename.nil?\n      attachment(filename, disposition) if disposition\n\n      last_modified opts[:last_modified] if opts[:last_modified]\n\n      file   = Rack::File.new(File.dirname(settings.app_file))\n      result = file.serving(request, path)\n\n      result[1].each { |k,v| headers[k] ||= v }\n      headers['Content-Length'] = result[1]['Content-Length']\n      opts[:status] &&= Integer(opts[:status])\n      halt (opts[:status] || result[0]), result[2]\n    rescue Errno::ENOENT\n      not_found\n    end\n\n    # Class of the response body in case you use #stream.\n    #\n    # Three things really matter: The front and back block (back being the\n    # block generating content, front the one sending it to the client) and\n    # the scheduler, integrating with whatever concurrency feature the Rack\n    # handler is using.\n    #\n    # Scheduler has to respond to defer and schedule.\n    class Stream\n      def self.schedule(*) yield end\n      def self.defer(*)    yield end\n\n      def initialize(scheduler = self.class, keep_open = false, &back)\n        @back, @scheduler, @keep_open = back.to_proc, scheduler, keep_open\n        @callbacks, @closed = [], false\n      end\n\n      def close\n        return if closed?\n        @closed = true\n        @scheduler.schedule { @callbacks.each { |c| c.call } }\n      end\n\n      def each(&front)\n        @front = front\n        @scheduler.defer do\n          begin\n            @back.call(self)\n          rescue Exception => e\n            @scheduler.schedule { raise e }\n          end\n          close unless @keep_open\n        end\n      end\n\n      def <<(data)\n        @scheduler.schedule { @front.call(data.to_s) }\n        self\n      end\n\n      def callback(&block)\n        return yield if closed?\n        @callbacks << block\n      end\n\n      alias errback callback\n\n      def closed?\n        @closed\n      end\n    end\n\n    # Allows to start sending data to the client even though later parts of\n    # the response body have not yet been generated.\n    #\n    # The close parameter specifies whether Stream#close should be called\n    # after the block has been executed. This is only relevant for evented\n    # servers like Thin or Rainbows.\n    def stream(keep_open = false)\n      scheduler = env['async.callback'] ? EventMachine : Stream\n      current   = @params.dup\n      body Stream.new(scheduler, keep_open) { |out| with_params(current) { yield(out) } }\n    end\n\n    # Specify response freshness policy for HTTP caches (Cache-Control header).\n    # Any number of non-value directives (:public, :private, :no_cache,\n    # :no_store, :must_revalidate, :proxy_revalidate) may be passed along with\n    # a Hash of value directives (:max_age, :s_maxage).\n    #\n    #   cache_control :public, :must_revalidate, :max_age => 60\n    #   => Cache-Control: public, must-revalidate, max-age=60\n    #\n    # See RFC 2616 / 14.9 for more on standard cache control directives:\n    # http://tools.ietf.org/html/rfc2616#section-14.9.1\n    def cache_control(*values)\n      if values.last.kind_of?(Hash)\n        hash = values.pop\n        hash.reject! { |k, v| v == false }\n        hash.reject! { |k, v| values << k if v == true }\n      else\n        hash = {}\n      end\n\n      values.map! { |value| value.to_s.tr('_','-') }\n      hash.each do |key, value|\n        key = key.to_s.tr('_', '-')\n        value = value.to_i if ['max-age', 's-maxage'].include? key\n        values << \"#{key}=#{value}\"\n      end\n\n      response['Cache-Control'] = values.join(', ') if values.any?\n    end\n\n    # Set the Expires header and Cache-Control/max-age directive. Amount\n    # can be an integer number of seconds in the future or a Time object\n    # indicating when the response should be considered \"stale\". The remaining\n    # \"values\" arguments are passed to the #cache_control helper:\n    #\n    #   expires 500, :public, :must_revalidate\n    #   => Cache-Control: public, must-revalidate, max-age=500\n    #   => Expires: Mon, 08 Jun 2009 08:50:17 GMT\n    #\n    def expires(amount, *values)\n      values << {} unless values.last.kind_of?(Hash)\n\n      if amount.is_a? Integer\n        time    = Time.now + amount.to_i\n        max_age = amount\n      else\n        time    = time_for amount\n        max_age = time - Time.now\n      end\n\n      values.last.merge!(:max_age => max_age)\n      cache_control(*values)\n\n      response['Expires'] = time.httpdate\n    end\n\n    # Set the last modified time of the resource (HTTP 'Last-Modified' header)\n    # and halt if conditional GET matches. The +time+ argument is a Time,\n    # DateTime, or other object that responds to +to_time+.\n    #\n    # When the current request includes an 'If-Modified-Since' header that is\n    # equal or later than the time specified, execution is immediately halted\n    # with a '304 Not Modified' response.\n    def last_modified(time)\n      return unless time\n      time = time_for time\n      response['Last-Modified'] = time.httpdate\n      return if env['HTTP_IF_NONE_MATCH']\n\n      if status == 200 and env['HTTP_IF_MODIFIED_SINCE']\n        # compare based on seconds since epoch\n        since = Time.httpdate(env['HTTP_IF_MODIFIED_SINCE']).to_i\n        halt 304 if since >= time.to_i\n      end\n\n      if (success? or status == 412) and env['HTTP_IF_UNMODIFIED_SINCE']\n        # compare based on seconds since epoch\n        since = Time.httpdate(env['HTTP_IF_UNMODIFIED_SINCE']).to_i\n        halt 412 if since < time.to_i\n      end\n    rescue ArgumentError\n    end\n\n    ETAG_KINDS = [:strong, :weak]\n    # Set the response entity tag (HTTP 'ETag' header) and halt if conditional\n    # GET matches. The +value+ argument is an identifier that uniquely\n    # identifies the current version of the resource. The +kind+ argument\n    # indicates whether the etag should be used as a :strong (default) or :weak\n    # cache validator.\n    #\n    # When the current request includes an 'If-None-Match' header with a\n    # matching etag, execution is immediately halted. If the request method is\n    # GET or HEAD, a '304 Not Modified' response is sent.\n    def etag(value, options = {})\n      # Before touching this code, please double check RFC 2616 14.24 and 14.26.\n      options      = {:kind => options} unless Hash === options\n      kind         = options[:kind] || :strong\n      new_resource = options.fetch(:new_resource) { request.post? }\n\n      unless ETAG_KINDS.include?(kind)\n        raise ArgumentError, \":strong or :weak expected\"\n      end\n\n      value = '\"%s\"' % value\n      value = \"W/#{value}\" if kind == :weak\n      response['ETag'] = value\n\n      if success? or status == 304\n        if etag_matches? env['HTTP_IF_NONE_MATCH'], new_resource\n          halt(request.safe? ? 304 : 412)\n        end\n\n        if env['HTTP_IF_MATCH']\n          halt 412 unless etag_matches? env['HTTP_IF_MATCH'], new_resource\n        end\n      end\n    end\n\n    # Sugar for redirect (example:  redirect back)\n    def back\n      request.referer\n    end\n\n    # whether or not the status is set to 1xx\n    def informational?\n      status.between? 100, 199\n    end\n\n    # whether or not the status is set to 2xx\n    def success?\n      status.between? 200, 299\n    end\n\n    # whether or not the status is set to 3xx\n    def redirect?\n      status.between? 300, 399\n    end\n\n    # whether or not the status is set to 4xx\n    def client_error?\n      status.between? 400, 499\n    end\n\n    # whether or not the status is set to 5xx\n    def server_error?\n      status.between? 500, 599\n    end\n\n    # whether or not the status is set to 404\n    def not_found?\n      status == 404\n    end\n\n    # whether or not the status is set to 400\n    def bad_request?\n      status == 400\n    end\n\n    # Generates a Time object from the given value.\n    # Used by #expires and #last_modified.\n    def time_for(value)\n      if value.is_a? Numeric\n        Time.at value\n      elsif value.respond_to? :to_s\n        Time.parse value.to_s\n      else\n        value.to_time\n      end\n    rescue ArgumentError => boom\n      raise boom\n    rescue Exception\n      raise ArgumentError, \"unable to convert #{value.inspect} to a Time object\"\n    end\n\n    private\n\n    # Helper method checking if a ETag value list includes the current ETag.\n    def etag_matches?(list, new_resource = request.post?)\n      return !new_resource if list == '*'\n      list.to_s.split(/\\s*,\\s*/).include? response['ETag']\n    end\n\n    def with_params(temp_params)\n      original, @params = @params, temp_params\n      yield\n    ensure\n      @params = original if original\n    end\n  end\n\n  # Template rendering methods. Each method takes the name of a template\n  # to render as a Symbol and returns a String with the rendered output,\n  # as well as an optional hash with additional options.\n  #\n  # `template` is either the name or path of the template as symbol\n  # (Use `:'subdir/myview'` for views in subdirectories), or a string\n  # that will be rendered.\n  #\n  # Possible options are:\n  #   :content_type   The content type to use, same arguments as content_type.\n  #   :layout         If set to something falsy, no layout is rendered, otherwise\n  #                   the specified layout is used (Ignored for `sass` and `less`)\n  #   :layout_engine  Engine to use for rendering the layout.\n  #   :locals         A hash with local variables that should be available\n  #                   in the template\n  #   :scope          If set, template is evaluate with the binding of the given\n  #                   object rather than the application instance.\n  #   :views          Views directory to use.\n  module Templates\n    module ContentTyped\n      attr_accessor :content_type\n    end\n\n    def initialize\n      super\n      @default_layout = :layout\n      @preferred_extension = nil\n    end\n\n    def erb(template, options = {}, locals = {}, &block)\n      render(:erb, template, options, locals, &block)\n    end\n\n    def erubis(template, options = {}, locals = {})\n      warn \"Sinatra::Templates#erubis is deprecated and will be removed, use #erb instead.\\n\" \\\n        \"If you have Erubis installed, it will be used automatically.\"\n      render :erubis, template, options, locals\n    end\n\n    def haml(template, options = {}, locals = {}, &block)\n      render(:haml, template, options, locals, &block)\n    end\n\n    def sass(template, options = {}, locals = {})\n      options.merge! :layout => false, :default_content_type => :css\n      render :sass, template, options, locals\n    end\n\n    def scss(template, options = {}, locals = {})\n      options.merge! :layout => false, :default_content_type => :css\n      render :scss, template, options, locals\n    end\n\n    def less(template, options = {}, locals = {})\n      options.merge! :layout => false, :default_content_type => :css\n      render :less, template, options, locals\n    end\n\n    def stylus(template, options = {}, locals = {})\n      options.merge! :layout => false, :default_content_type => :css\n      render :styl, template, options, locals\n    end\n\n    def builder(template = nil, options = {}, locals = {}, &block)\n      options[:default_content_type] = :xml\n      render_ruby(:builder, template, options, locals, &block)\n    end\n\n    def liquid(template, options = {}, locals = {}, &block)\n      render(:liquid, template, options, locals, &block)\n    end\n\n    def markdown(template, options = {}, locals = {})\n      options[:exclude_outvar] = true\n      render :markdown, template, options, locals\n    end\n\n    def textile(template, options = {}, locals = {})\n      render :textile, template, options, locals\n    end\n\n    def rdoc(template, options = {}, locals = {})\n      render :rdoc, template, options, locals\n    end\n\n    def asciidoc(template, options = {}, locals = {})\n      render :asciidoc, template, options, locals\n    end\n\n    def radius(template, options = {}, locals = {})\n      render :radius, template, options, locals\n    end\n\n    def markaby(template = nil, options = {}, locals = {}, &block)\n      render_ruby(:mab, template, options, locals, &block)\n    end\n\n    def coffee(template, options = {}, locals = {})\n      options.merge! :layout => false, :default_content_type => :js\n      render :coffee, template, options, locals\n    end\n\n    def nokogiri(template = nil, options = {}, locals = {}, &block)\n      options[:default_content_type] = :xml\n      render_ruby(:nokogiri, template, options, locals, &block)\n    end\n\n    def slim(template, options = {}, locals = {}, &block)\n      render(:slim, template, options, locals, &block)\n    end\n\n    def creole(template, options = {}, locals = {})\n      render :creole, template, options, locals\n    end\n\n    def mediawiki(template, options = {}, locals = {})\n      render :mediawiki, template, options, locals\n    end\n\n    def wlang(template, options = {}, locals = {}, &block)\n      render(:wlang, template, options, locals, &block)\n    end\n\n    def yajl(template, options = {}, locals = {})\n      options[:default_content_type] = :json\n      render :yajl, template, options, locals\n    end\n\n    def rabl(template, options = {}, locals = {})\n      Rabl.register!\n      render :rabl, template, options, locals\n    end\n\n    # Calls the given block for every possible template file in views,\n    # named name.ext, where ext is registered on engine.\n    def find_template(views, name, engine)\n      yield ::File.join(views, \"#{name}.#{@preferred_extension}\")\n\n      Tilt.default_mapping.extensions_for(engine).each do |ext|\n        yield ::File.join(views, \"#{name}.#{ext}\") unless ext == @preferred_extension\n      end\n    end\n\n    private\n\n    # logic shared between builder and nokogiri\n    def render_ruby(engine, template, options = {}, locals = {}, &block)\n      options, template = template, nil if template.is_a?(Hash)\n      template = Proc.new { block } if template.nil?\n      render engine, template, options, locals\n    end\n\n    def render(engine, data, options = {}, locals = {}, &block)\n      # merge app-level options\n      engine_options = settings.respond_to?(engine) ? settings.send(engine) : {}\n      options.merge!(engine_options) { |key, v1, v2| v1 }\n\n      # extract generic options\n      locals          = options.delete(:locals) || locals         || {}\n      views           = options.delete(:views)  || settings.views || \"./views\"\n      layout          = options[:layout]\n      layout          = false if layout.nil? && options.include?(:layout)\n      eat_errors      = layout.nil?\n      layout          = engine_options[:layout] if layout.nil? or (layout == true && engine_options[:layout] != false)\n      layout          = @default_layout         if layout.nil? or layout == true\n      layout_options  = options.delete(:layout_options) || {}\n      content_type    = options.delete(:default_content_type)\n      content_type    = options.delete(:content_type)   || content_type\n      layout_engine   = options.delete(:layout_engine)  || engine\n      scope           = options.delete(:scope)          || self\n      exclude_outvar  = options.delete(:exclude_outvar)\n      options.delete(:layout)\n\n      # set some defaults\n      options[:outvar] ||= '@_out_buf' unless exclude_outvar\n      options[:default_encoding] ||= settings.default_encoding\n\n      # compile and render template\n      begin\n        layout_was      = @default_layout\n        @default_layout = false\n        template        = compile_template(engine, data, options, views)\n        output          = template.render(scope, locals, &block)\n      ensure\n        @default_layout = layout_was\n      end\n\n      # render layout\n      if layout\n        options = options.merge(:views => views, :layout => false, :eat_errors => eat_errors, :scope => scope).\n                merge!(layout_options)\n        catch(:layout_missing) { return render(layout_engine, layout, options, locals) { output } }\n      end\n\n      output.extend(ContentTyped).content_type = content_type if content_type\n      output\n    end\n\n    def compile_template(engine, data, options, views)\n      eat_errors = options.delete :eat_errors\n      template_cache.fetch engine, data, options, views do\n        template = Tilt[engine]\n        raise \"Template engine not found: #{engine}\" if template.nil?\n\n        case data\n        when Symbol\n          body, path, line = settings.templates[data]\n          if body\n            body = body.call if body.respond_to?(:call)\n            template.new(path, line.to_i, options) { body }\n          else\n            found = false\n            @preferred_extension = engine.to_s\n            find_template(views, data, template) do |file|\n              path ||= file # keep the initial path rather than the last one\n              if found = File.exist?(file)\n                path = file\n                break\n              end\n            end\n            throw :layout_missing if eat_errors and not found\n            template.new(path, 1, options)\n          end\n        when Proc, String\n          body = data.is_a?(String) ? Proc.new { data } : data\n          caller = settings.caller_locations.first\n          path = options[:path] || caller[0]\n          line = options[:line] || caller[1]\n          template.new(path, line.to_i, options, &body)\n        else\n          raise ArgumentError, \"Sorry, don't know how to render #{data.inspect}.\"\n        end\n      end\n    end\n  end\n\n  # Base class for all Sinatra applications and middleware.\n  class Base\n    include Rack::Utils\n    include Helpers\n    include Templates\n\n    URI_INSTANCE = URI::Parser.new\n\n    attr_accessor :app, :env, :request, :response, :params\n    attr_reader   :template_cache\n\n    def initialize(app = nil)\n      super()\n      @app = app\n      @template_cache = Tilt::Cache.new\n      @pinned_response = nil # whether a before! filter pinned the content-type\n      yield self if block_given?\n    end\n\n    # Rack call interface.\n    def call(env)\n      dup.call!(env)\n    end\n\n    def call!(env) # :nodoc:\n      @env      = env\n      @params   = IndifferentHash.new\n      @request  = Request.new(env)\n      @response = Response.new\n      template_cache.clear if settings.reload_templates\n\n      invoke { dispatch! }\n      invoke { error_block!(response.status) } unless @env['sinatra.error']\n\n      unless @response['Content-Type']\n        if Array === body && body[0].respond_to?(:content_type)\n          content_type body[0].content_type\n        elsif default = settings.default_content_type\n          content_type default\n        end\n      end\n\n      @response.finish\n    end\n\n    # Access settings defined with Base.set.\n    def self.settings\n      self\n    end\n\n    # Access settings defined with Base.set.\n    def settings\n      self.class.settings\n    end\n\n    def options\n      warn \"Sinatra::Base#options is deprecated and will be removed, \" \\\n        \"use #settings instead.\"\n      settings\n    end\n\n    # Exit the current block, halts any further processing\n    # of the request, and returns the specified response.\n    def halt(*response)\n      response = response.first if response.length == 1\n      throw :halt, response\n    end\n\n    # Pass control to the next matching route.\n    # If there are no more matching routes, Sinatra will\n    # return a 404 response.\n    def pass(&block)\n      throw :pass, block\n    end\n\n    # Forward the request to the downstream app -- middleware only.\n    def forward\n      fail \"downstream app not set\" unless @app.respond_to? :call\n      status, headers, body = @app.call env\n      @response.status = status\n      @response.body = body\n      @response.headers.merge! headers\n      nil\n    end\n\n    private\n\n    # Run filters defined on the class and all superclasses.\n    # Accepts an optional block to call after each filter is applied.\n    def filter!(type, base = settings)\n      filter! type, base.superclass if base.superclass.respond_to?(:filters)\n      base.filters[type].each do |args|\n        result = process_route(*args)\n        yield result if block_given?\n      end\n    end\n\n    # Run routes defined on the class and all superclasses.\n    def route!(base = settings, pass_block = nil)\n      if routes = base.routes[@request.request_method]\n        routes.each do |pattern, conditions, block|\n          @response.delete_header('Content-Type') unless @pinned_response\n\n          returned_pass_block = process_route(pattern, conditions) do |*args|\n            env['sinatra.route'] = \"#{@request.request_method} #{pattern}\"\n            route_eval { block[*args] }\n          end\n\n          # don't wipe out pass_block in superclass\n          pass_block = returned_pass_block if returned_pass_block\n        end\n      end\n\n      # Run routes defined in superclass.\n      if base.superclass.respond_to?(:routes)\n        return route!(base.superclass, pass_block)\n      end\n\n      route_eval(&pass_block) if pass_block\n      route_missing\n    end\n\n    # Run a route block and throw :halt with the result.\n    def route_eval\n      throw :halt, yield\n    end\n\n    # If the current request matches pattern and conditions, fill params\n    # with keys and call the given block.\n    # Revert params afterwards.\n    #\n    # Returns pass block.\n    def process_route(pattern, conditions, block = nil, values = [])\n      route = @request.path_info\n      route = '/' if route.empty? and not settings.empty_path_info?\n      route = route[0..-2] if !settings.strict_paths? && route != '/' && route.end_with?('/')\n      return unless params = pattern.params(route)\n\n      params.delete(\"ignore\") # TODO: better params handling, maybe turn it into \"smart\" object or detect changes\n      force_encoding(params)\n      @params = @params.merge(params) if params.any?\n\n      regexp_exists = pattern.is_a?(Mustermann::Regular) || (pattern.respond_to?(:patterns) && pattern.patterns.any? {|subpattern| subpattern.is_a?(Mustermann::Regular)} )\n      if regexp_exists\n        captures           = pattern.match(route).captures.map { |c| URI_INSTANCE.unescape(c) if c }\n        values            += captures\n        @params[:captures] = force_encoding(captures) unless captures.nil? || captures.empty?\n      else\n        values += params.values.flatten\n      end\n\n      catch(:pass) do\n        conditions.each { |c| throw :pass if c.bind(self).call == false }\n        block ? block[self, values] : yield(self, values)\n      end\n    rescue\n      @env['sinatra.error.params'] = @params\n      raise\n    ensure\n      params ||= {}\n      params.each { |k, _| @params.delete(k) } unless @env['sinatra.error.params']\n    end\n\n    # No matching route was found or all routes passed. The default\n    # implementation is to forward the request downstream when running\n    # as middleware (@app is non-nil); when no downstream app is set, raise\n    # a NotFound exception. Subclasses can override this method to perform\n    # custom route miss logic.\n    def route_missing\n      if @app\n        forward\n      else\n        raise NotFound, \"#{request.request_method} #{request.path_info}\"\n      end\n    end\n\n    # Attempt to serve static files from public directory. Throws :halt when\n    # a matching file is found, returns nil otherwise.\n    def static!(options = {})\n      return if (public_dir = settings.public_folder).nil?\n      path = \"#{public_dir}#{URI_INSTANCE.unescape(request.path_info)}\"\n      return unless valid_path?(path)\n\n      path = File.expand_path(path)\n      return unless File.file?(path)\n\n      env['sinatra.static_file'] = path\n      cache_control(*settings.static_cache_control) if settings.static_cache_control?\n      send_file path, options.merge(:disposition => nil)\n    end\n\n    # Run the block with 'throw :halt' support and apply result to the response.\n    def invoke\n      res = catch(:halt) { yield }\n\n      res = [res] if Integer === res or String === res\n      if Array === res and Integer === res.first\n        res = res.dup\n        status(res.shift)\n        body(res.pop)\n        headers(*res)\n      elsif res.respond_to? :each\n        body res\n      end\n      nil # avoid double setting the same response tuple twice\n    end\n\n    # Dispatch a request with error handling.\n    def dispatch!\n      # Avoid passing frozen string in force_encoding\n      @params.merge!(@request.params).each do |key, val|\n        next unless val.respond_to?(:force_encoding)\n        val = val.dup if val.frozen?\n        @params[key] = force_encoding(val)\n      end\n\n      invoke do\n        static! if settings.static? && (request.get? || request.head?)\n        filter! :before do\n          @pinned_response = !@response['Content-Type'].nil?\n        end\n        route!\n      end\n    rescue ::Exception => boom\n      invoke { handle_exception!(boom) }\n    ensure\n      begin\n        filter! :after unless env['sinatra.static_file']\n      rescue ::Exception => boom\n        invoke { handle_exception!(boom) } unless @env['sinatra.error']\n      end\n    end\n\n    # Error handling during requests.\n    def handle_exception!(boom)\n      if error_params = @env['sinatra.error.params']\n        @params = @params.merge(error_params)\n      end\n      @env['sinatra.error'] = boom\n\n      if boom.respond_to? :http_status\n        status(boom.http_status)\n      elsif settings.use_code? and boom.respond_to? :code and boom.code.between? 400, 599\n        status(boom.code)\n      else\n        status(500)\n      end\n\n      status(500) unless status.between? 400, 599\n\n      if server_error?\n        dump_errors! boom if settings.dump_errors?\n        raise boom if settings.show_exceptions? and settings.show_exceptions != :after_handler\n      elsif not_found?\n        headers['X-Cascade'] = 'pass' if settings.x_cascade?\n      end\n\n      if res = error_block!(boom.class, boom) || error_block!(status, boom)\n        return res\n      end\n\n      if not_found? || bad_request?\n        if boom.message && boom.message != boom.class.name\n          body boom.message\n        else\n          content_type 'text/html'\n          body '<h1>' + (not_found? ? 'Not Found' : 'Bad Request') + '</h1>'\n        end\n      end\n\n      return unless server_error?\n      raise boom if settings.raise_errors? or settings.show_exceptions?\n      error_block! Exception, boom\n    end\n\n    # Find an custom error block for the key(s) specified.\n    def error_block!(key, *block_params)\n      base = settings\n      while base.respond_to?(:errors)\n        next base = base.superclass unless args_array = base.errors[key]\n        args_array.reverse_each do |args|\n          first = args == args_array.first\n          args += [block_params]\n          resp = process_route(*args)\n          return resp unless resp.nil? && !first\n        end\n      end\n      return false unless key.respond_to? :superclass and key.superclass < Exception\n      error_block!(key.superclass, *block_params)\n    end\n\n    def dump_errors!(boom)\n      msg = [\"#{Time.now.strftime(\"%Y-%m-%d %H:%M:%S\")} - #{boom.class} - #{boom.message}:\", *boom.backtrace].join(\"\\n\\t\")\n      @env['rack.errors'].puts(msg)\n    end\n\n    class << self\n      CALLERS_TO_IGNORE = [ # :nodoc:\n        /\\/sinatra(\\/(base|main|show_exceptions))?\\.rb$/,   # all sinatra code\n        /lib\\/tilt.*\\.rb$/,                                 # all tilt code\n        /^\\(.*\\)$/,                                         # generated code\n        /rubygems\\/(custom|core_ext\\/kernel)_require\\.rb$/, # rubygems require hacks\n        /active_support/,                                   # active_support require hacks\n        /bundler(\\/(?:runtime|inline))?\\.rb/,               # bundler require hacks\n        /<internal:/,                                       # internal in ruby >= 1.9.2\n        /src\\/kernel\\/bootstrap\\/[A-Z]/                     # maglev kernel files\n      ]\n\n      # contrary to what the comment said previously, rubinius never supported this\n      if defined?(RUBY_IGNORE_CALLERS)\n        warn \"RUBY_IGNORE_CALLERS is deprecated and will no longer be supported by Sinatra 2.0\"\n        CALLERS_TO_IGNORE.concat(RUBY_IGNORE_CALLERS)\n      end\n\n      attr_reader :routes, :filters, :templates, :errors\n\n      # Removes all routes, filters, middleware and extension hooks from the\n      # current class (not routes/filters/... defined by its superclass).\n      def reset!\n        @conditions     = []\n        @routes         = {}\n        @filters        = {:before => [], :after => []}\n        @errors         = {}\n        @middleware     = []\n        @prototype      = nil\n        @extensions     = []\n\n        if superclass.respond_to?(:templates)\n          @templates = Hash.new { |hash, key| superclass.templates[key] }\n        else\n          @templates = {}\n        end\n      end\n\n      # Extension modules registered on this class and all superclasses.\n      def extensions\n        if superclass.respond_to?(:extensions)\n          (@extensions + superclass.extensions).uniq\n        else\n          @extensions\n        end\n      end\n\n      # Middleware used in this class and all superclasses.\n      def middleware\n        if superclass.respond_to?(:middleware)\n          superclass.middleware + @middleware\n        else\n          @middleware\n        end\n      end\n\n      # Sets an option to the given value.  If the value is a proc,\n      # the proc will be called every time the option is accessed.\n      def set(option, value = (not_set = true), ignore_setter = false, &block)\n        raise ArgumentError if block and !not_set\n        value, not_set = block, false if block\n\n        if not_set\n          raise ArgumentError unless option.respond_to?(:each)\n          option.each { |k,v| set(k, v) }\n          return self\n        end\n\n        if respond_to?(\"#{option}=\") and not ignore_setter\n          return __send__(\"#{option}=\", value)\n        end\n\n        setter = proc { |val| set option, val, true }\n        getter = proc { value }\n\n        case value\n        when Proc\n          getter = value\n        when Symbol, Integer, FalseClass, TrueClass, NilClass\n          getter = value.inspect\n        when Hash\n          setter = proc do |val|\n            val = value.merge val if Hash === val\n            set option, val, true\n          end\n        end\n\n        define_singleton(\"#{option}=\", setter)\n        define_singleton(option, getter)\n        define_singleton(\"#{option}?\", \"!!#{option}\") unless method_defined? \"#{option}?\"\n        self\n      end\n\n      # Same as calling `set :option, true` for each of the given options.\n      def enable(*opts)\n        opts.each { |key| set(key, true) }\n      end\n\n      # Same as calling `set :option, false` for each of the given options.\n      def disable(*opts)\n        opts.each { |key| set(key, false) }\n      end\n\n      # Define a custom error handler. Optionally takes either an Exception\n      # class, or an HTTP status code to specify which errors should be\n      # handled.\n      def error(*codes, &block)\n        args  = compile! \"ERROR\", /.*/, block\n        codes = codes.flat_map(&method(:Array))\n        codes << Exception if codes.empty?\n        codes << Sinatra::NotFound if codes.include?(404)\n        codes.each { |c| (@errors[c] ||= []) << args }\n      end\n\n      # Sugar for `error(404) { ... }`\n      def not_found(&block)\n        error(404, &block)\n      end\n\n      # Define a named template. The block must return the template source.\n      def template(name, &block)\n        filename, line = caller_locations.first\n        templates[name] = [block, filename, line.to_i]\n      end\n\n      # Define the layout template. The block must return the template source.\n      def layout(name = :layout, &block)\n        template name, &block\n      end\n\n      # Load embedded templates from the file; uses the caller's __FILE__\n      # when no file is specified.\n      def inline_templates=(file = nil)\n        file = (file.nil? || file == true) ? (caller_files.first || File.expand_path($0)) : file\n\n        begin\n          io = ::IO.respond_to?(:binread) ? ::IO.binread(file) : ::IO.read(file)\n          app, data = io.gsub(\"\\r\\n\", \"\\n\").split(/^__END__$/, 2)\n        rescue Errno::ENOENT\n          app, data = nil\n        end\n\n        if data\n          if app and app =~ /([^\\n]*\\n)?#[^\\n]*coding: *(\\S+)/m\n            encoding = $2\n          else\n            encoding = settings.default_encoding\n          end\n          lines = app.count(\"\\n\") + 1\n          template = nil\n          force_encoding data, encoding\n          data.each_line do |line|\n            lines += 1\n            if line =~ /^@@\\s*(.*\\S)\\s*$/\n              template = force_encoding(String.new, encoding)\n              templates[$1.to_sym] = [template, file, lines]\n            elsif template\n              template << line\n            end\n          end\n        end\n      end\n\n      # Lookup or register a mime type in Rack's mime registry.\n      def mime_type(type, value = nil)\n        return type      if type.nil?\n        return type.to_s if type.to_s.include?('/')\n        type = \".#{type}\" unless type.to_s[0] == ?.\n        return Rack::Mime.mime_type(type, nil) unless value\n        Rack::Mime::MIME_TYPES[type] = value\n      end\n\n      # provides all mime types matching type, including deprecated types:\n      #   mime_types :html # => ['text/html']\n      #   mime_types :js   # => ['application/javascript', 'text/javascript']\n      def mime_types(type)\n        type = mime_type type\n        type =~ /^application\\/(xml|javascript)$/ ? [type, \"text/#$1\"] : [type]\n      end\n\n      # Define a before filter; runs before all requests within the same\n      # context as route handlers and may access/modify the request and\n      # response.\n      def before(path = /.*/, **options, &block)\n        add_filter(:before, path, **options, &block)\n      end\n\n      # Define an after filter; runs after all requests within the same\n      # context as route handlers and may access/modify the request and\n      # response.\n      def after(path = /.*/, **options, &block)\n        add_filter(:after, path, **options, &block)\n      end\n\n      # add a filter\n      def add_filter(type, path = /.*/, **options, &block)\n        filters[type] << compile!(type, path, block, **options)\n      end\n\n      # Add a route condition. The route is considered non-matching when the\n      # block returns false.\n      def condition(name = \"#{caller.first[/`.*'/]} condition\", &block)\n        @conditions << generate_method(name, &block)\n      end\n\n      def public=(value)\n        warn \":public is no longer used to avoid overloading Module#public, use :public_folder or :public_dir instead\"\n        set(:public_folder, value)\n      end\n\n      def public_dir=(value)\n        self.public_folder = value\n      end\n\n      def public_dir\n        public_folder\n      end\n\n      # Defining a `GET` handler also automatically defines\n      # a `HEAD` handler.\n      def get(path, opts = {}, &block)\n        conditions = @conditions.dup\n        route('GET', path, opts, &block)\n\n        @conditions = conditions\n        route('HEAD', path, opts, &block)\n      end\n\n      def put(path, opts = {}, &bk)     route 'PUT',     path, opts, &bk end\n      def post(path, opts = {}, &bk)    route 'POST',    path, opts, &bk end\n      def delete(path, opts = {}, &bk)  route 'DELETE',  path, opts, &bk end\n      def head(path, opts = {}, &bk)    route 'HEAD',    path, opts, &bk end\n      def options(path, opts = {}, &bk) route 'OPTIONS', path, opts, &bk end\n      def patch(path, opts = {}, &bk)   route 'PATCH',   path, opts, &bk end\n      def link(path, opts = {}, &bk)    route 'LINK',    path, opts, &bk end\n      def unlink(path, opts = {}, &bk)  route 'UNLINK',  path, opts, &bk end\n\n      # Makes the methods defined in the block and in the Modules given\n      # in `extensions` available to the handlers and templates\n      def helpers(*extensions, &block)\n        class_eval(&block)   if block_given?\n        prepend(*extensions) if extensions.any?\n      end\n\n      # Register an extension. Alternatively take a block from which an\n      # extension will be created and registered on the fly.\n      def register(*extensions, &block)\n        extensions << Module.new(&block) if block_given?\n        @extensions += extensions\n        extensions.each do |extension|\n          extend extension\n          extension.registered(self) if extension.respond_to?(:registered)\n        end\n      end\n\n      def development?; environment == :development end\n      def production?;  environment == :production  end\n      def test?;        environment == :test        end\n\n      # Set configuration options for Sinatra and/or the app.\n      # Allows scoping of settings for certain environments.\n      def configure(*envs)\n        yield self if envs.empty? || envs.include?(environment.to_sym)\n      end\n\n      # Use the specified Rack middleware\n      def use(middleware, *args, &block)\n        @prototype = nil\n        @middleware << [middleware, args, block]\n      end\n\n      # Stop the self-hosted server if running.\n      def quit!\n        return unless running?\n        # Use Thin's hard #stop! if available, otherwise just #stop.\n        running_server.respond_to?(:stop!) ? running_server.stop! : running_server.stop\n        $stderr.puts \"== Sinatra has ended his set (crowd applauds)\" unless suppress_messages?\n        set :running_server, nil\n        set :handler_name, nil\n      end\n\n      alias_method :stop!, :quit!\n\n      # Run the Sinatra app as a self-hosted server using\n      # Thin, Puma, Mongrel, or WEBrick (in that order). If given a block, will call\n      # with the constructed handler once we have taken the stage.\n      def run!(options = {}, &block)\n        return if running?\n        set options\n        handler         = detect_rack_handler\n        handler_name    = handler.name.gsub(/.*::/, '')\n        server_settings = settings.respond_to?(:server_settings) ? settings.server_settings : {}\n        server_settings.merge!(:Port => port, :Host => bind)\n\n        begin\n          start_server(handler, server_settings, handler_name, &block)\n        rescue Errno::EADDRINUSE\n          $stderr.puts \"== Someone is already performing on port #{port}!\"\n          raise\n        ensure\n          quit!\n        end\n      end\n\n      alias_method :start!, :run!\n\n      # Check whether the self-hosted server is running or not.\n      def running?\n        running_server?\n      end\n\n      # The prototype instance used to process requests.\n      def prototype\n        @prototype ||= new\n      end\n\n      # Create a new instance without middleware in front of it.\n      alias new! new unless method_defined? :new!\n\n      # Create a new instance of the class fronted by its middleware\n      # pipeline. The object is guaranteed to respond to #call but may not be\n      # an instance of the class new was called on.\n      def new(*args, &bk)\n        instance = new!(*args, &bk)\n        Wrapper.new(build(instance).to_app, instance)\n      end\n\n      # Creates a Rack::Builder instance with all the middleware set up and\n      # the given +app+ as end point.\n      def build(app)\n        builder = Rack::Builder.new\n        setup_default_middleware builder\n        setup_middleware builder\n        builder.run app\n        builder\n      end\n\n      def call(env)\n        synchronize { prototype.call(env) }\n      end\n\n      # Like Kernel#caller but excluding certain magic entries and without\n      # line / method information; the resulting array contains filenames only.\n      def caller_files\n        cleaned_caller(1).flatten\n      end\n\n      # Like caller_files, but containing Arrays rather than strings with the\n      # first element being the file, and the second being the line.\n      def caller_locations\n        cleaned_caller 2\n      end\n\n      private\n\n      # Starts the server by running the Rack Handler.\n      def start_server(handler, server_settings, handler_name)\n        # Ensure we initialize middleware before startup, to match standard Rack\n        # behavior, by ensuring an instance exists:\n        prototype\n        # Run the instance we created:\n        handler.run(self, **server_settings) do |server|\n          unless suppress_messages?\n            $stderr.puts \"== Sinatra (v#{Sinatra::VERSION}) has taken the stage on #{port} for #{environment} with backup from #{handler_name}\"\n          end\n\n          setup_traps\n          set :running_server, server\n          set :handler_name,   handler_name\n          server.threaded = settings.threaded if server.respond_to? :threaded=\n\n          yield server if block_given?\n        end\n      end\n\n      def suppress_messages?\n        handler_name =~ /cgi/i || quiet\n      end\n\n      def setup_traps\n        if traps?\n          at_exit { quit! }\n\n          [:INT, :TERM].each do |signal|\n            old_handler = trap(signal) do\n              quit!\n              old_handler.call if old_handler.respond_to?(:call)\n            end\n          end\n\n          set :traps, false\n        end\n      end\n\n      # Dynamically defines a method on settings.\n      def define_singleton(name, content = Proc.new)\n        singleton_class.class_eval do\n          undef_method(name) if method_defined? name\n          String === content ? class_eval(\"def #{name}() #{content}; end\") : define_method(name, &content)\n        end\n      end\n\n      # Condition for matching host name. Parameter might be String or Regexp.\n      def host_name(pattern)\n        condition { pattern === request.host }\n      end\n\n      # Condition for matching user agent. Parameter should be Regexp.\n      # Will set params[:agent].\n      def user_agent(pattern)\n        condition do\n          if request.user_agent.to_s =~ pattern\n            @params[:agent] = $~[1..-1]\n            true\n          else\n            false\n          end\n        end\n      end\n      alias_method :agent, :user_agent\n\n      # Condition for matching mimetypes. Accepts file extensions.\n      def provides(*types)\n        types.map! { |t| mime_types(t) }\n        types.flatten!\n        condition do\n          if type = response['Content-Type']\n            types.include? type or types.include? type[/^[^;]+/]\n          elsif type = request.preferred_type(types)\n            params = (type.respond_to?(:params) ? type.params : {})\n            content_type(type, params)\n            true\n          else\n            false\n          end\n        end\n      end\n\n      def route(verb, path, options = {}, &block)\n        enable :empty_path_info if path == \"\" and empty_path_info.nil?\n        signature = compile!(verb, path, block, **options)\n        (@routes[verb] ||= []) << signature\n        invoke_hook(:route_added, verb, path, block)\n        signature\n      end\n\n      def invoke_hook(name, *args)\n        extensions.each { |e| e.send(name, *args) if e.respond_to?(name) }\n      end\n\n      def generate_method(method_name, &block)\n        define_method(method_name, &block)\n        method = instance_method method_name\n        remove_method method_name\n        method\n      end\n\n      def compile!(verb, path, block, **options)\n        # Because of self.options.host\n        host_name(options.delete(:host)) if options.key?(:host)\n        # Pass Mustermann opts to compile()\n        route_mustermann_opts = options.key?(:mustermann_opts) ? options.delete(:mustermann_opts) : {}.freeze\n\n        options.each_pair { |option, args| send(option, *args) }\n\n        pattern                 = compile(path, route_mustermann_opts)\n        method_name             = \"#{verb} #{path}\"\n        unbound_method          = generate_method(method_name, &block)\n        conditions, @conditions = @conditions, []\n        wrapper                 = block.arity != 0 ?\n          proc { |a, p| unbound_method.bind(a).call(*p) } :\n          proc { |a, p| unbound_method.bind(a).call }\n\n        [ pattern, conditions, wrapper ]\n      end\n\n      def compile(path, route_mustermann_opts = {})\n        Mustermann.new(path, **mustermann_opts.merge(route_mustermann_opts))\n      end\n\n      def setup_default_middleware(builder)\n        builder.use ExtendedRack\n        builder.use ShowExceptions       if show_exceptions?\n        builder.use Rack::MethodOverride if method_override?\n        builder.use Rack::Head\n        setup_logging    builder\n        setup_sessions   builder\n        setup_protection builder\n      end\n\n      def setup_middleware(builder)\n        middleware.each { |c,a,b| builder.use(c, *a, &b) }\n      end\n\n      def setup_logging(builder)\n        if logging?\n          setup_common_logger(builder)\n          setup_custom_logger(builder)\n        elsif logging == false\n          setup_null_logger(builder)\n        end\n      end\n\n      def setup_null_logger(builder)\n        builder.use Rack::NullLogger\n      end\n\n      def setup_common_logger(builder)\n        builder.use Sinatra::CommonLogger\n      end\n\n      def setup_custom_logger(builder)\n        if logging.respond_to? :to_int\n          builder.use Rack::Logger, logging\n        else\n          builder.use Rack::Logger\n        end\n      end\n\n      def setup_protection(builder)\n        return unless protection?\n        options = Hash === protection ? protection.dup : {}\n        options = {\n          img_src:  \"'self' data:\",\n          font_src: \"'self'\"\n        }.merge options\n\n        protect_session = options.fetch(:session) { sessions? }\n        options[:without_session] = !protect_session\n\n        options[:reaction] ||= :drop_session\n\n        builder.use Rack::Protection, options\n      end\n\n      def setup_sessions(builder)\n        return unless sessions?\n        options = {}\n        options[:secret] = session_secret if session_secret?\n        options.merge! sessions.to_hash if sessions.respond_to? :to_hash\n        builder.use session_store, options\n      end\n\n      def detect_rack_handler\n        servers = Array(server)\n        servers.each do |server_name|\n          begin\n            return Rack::Handler.get(server_name.to_s)\n          rescue LoadError, NameError\n          end\n        end\n        fail \"Server handler (#{servers.join(',')}) not found.\"\n      end\n\n      def inherited(subclass)\n        subclass.reset!\n        subclass.set :app_file, caller_files.first unless subclass.app_file?\n        super\n      end\n\n      @@mutex = Mutex.new\n      def synchronize(&block)\n        if lock?\n          @@mutex.synchronize(&block)\n        else\n          yield\n        end\n      end\n\n      # used for deprecation warnings\n      def warn(message)\n        super message + \"\\n\\tfrom #{cleaned_caller.first.join(':')}\"\n      end\n\n      # Like Kernel#caller but excluding certain magic entries\n      def cleaned_caller(keep = 3)\n        caller(1).\n          map!    { |line| line.split(/:(?=\\d|in )/, 3)[0,keep] }.\n          reject { |file, *_| CALLERS_TO_IGNORE.any? { |pattern| file =~ pattern } }\n      end\n    end\n\n    # Force data to specified encoding. It defaults to settings.default_encoding\n    # which is UTF-8 by default\n    def self.force_encoding(data, encoding = default_encoding)\n      return if data == settings || data.is_a?(Tempfile)\n      if data.respond_to? :force_encoding\n        data.force_encoding(encoding).encode!\n      elsif data.respond_to? :each_value\n        data.each_value { |v| force_encoding(v, encoding) }\n      elsif data.respond_to? :each\n        data.each { |v| force_encoding(v, encoding) }\n      end\n      data\n    end\n\n    def force_encoding(*args) settings.force_encoding(*args) end\n\n    reset!\n\n    set :environment, (ENV['APP_ENV'] || ENV['RACK_ENV'] || :development).to_sym\n    set :raise_errors, Proc.new { test? }\n    set :dump_errors, Proc.new { !test? }\n    set :show_exceptions, Proc.new { development? }\n    set :sessions, false\n    set :session_store, Rack::Session::Cookie\n    set :logging, false\n    set :protection, true\n    set :method_override, false\n    set :use_code, false\n    set :default_encoding, \"utf-8\"\n    set :x_cascade, true\n    set :add_charset, %w[javascript xml xhtml+xml].map { |t| \"application/#{t}\" }\n    settings.add_charset << /^text\\//\n    set :mustermann_opts, {}\n    set :default_content_type, 'text/html'\n\n    # explicitly generating a session secret eagerly to play nice with preforking\n    begin\n      require 'securerandom'\n      set :session_secret, SecureRandom.hex(64)\n    rescue LoadError, NotImplementedError\n      # SecureRandom raises a NotImplementedError if no random device is available\n      set :session_secret, \"%064x\" % Kernel.rand(2**256-1)\n    end\n\n    class << self\n      alias_method :methodoverride?, :method_override?\n      alias_method :methodoverride=, :method_override=\n    end\n\n    set :run, false                       # start server via at-exit hook?\n    set :running_server, nil\n    set :handler_name, nil\n    set :traps, true\n    set :server, %w[HTTP webrick]\n    set :bind, Proc.new { development? ? 'localhost' : '0.0.0.0' }\n    set :port, Integer(ENV['PORT'] && !ENV['PORT'].empty? ? ENV['PORT'] : 4567)\n    set :quiet, false\n\n    ruby_engine = defined?(RUBY_ENGINE) && RUBY_ENGINE\n\n    if ruby_engine == 'macruby'\n      server.unshift 'control_tower'\n    else\n      server.unshift 'reel'\n      server.unshift 'puma'\n      server.unshift 'mongrel'  if ruby_engine.nil?\n      server.unshift 'thin'     if ruby_engine != 'jruby'\n      server.unshift 'trinidad' if ruby_engine == 'jruby'\n    end\n\n    set :absolute_redirects, true\n    set :prefixed_redirects, false\n    set :empty_path_info, nil\n    set :strict_paths, true\n\n    set :app_file, nil\n    set :root, Proc.new { app_file && File.expand_path(File.dirname(app_file)) }\n    set :views, Proc.new { root && File.join(root, 'views') }\n    set :reload_templates, Proc.new { development? }\n    set :lock, false\n    set :threaded, true\n\n    set :public_folder, Proc.new { root && File.join(root, 'public') }\n    set :static, Proc.new { public_folder && File.exist?(public_folder) }\n    set :static_cache_control, false\n\n    error ::Exception do\n      response.status = 500\n      content_type 'text/html'\n      '<h1>Internal Server Error</h1>'\n    end\n\n    configure :development do\n      get '/__sinatra__/:image.png' do\n        filename = __dir__ + \"/images/#{params[:image].to_i}.png\"\n        content_type :png\n        send_file filename\n      end\n\n      error NotFound do\n        content_type 'text/html'\n\n        if self.class == Sinatra::Application\n          code = <<-RUBY.gsub(/^ {12}/, '')\n            #{request.request_method.downcase} '#{request.path_info}' do\n              \"Hello World\"\n            end\n          RUBY\n        else\n          code = <<-RUBY.gsub(/^ {12}/, '')\n            class #{self.class}\n              #{request.request_method.downcase} '#{request.path_info}' do\n                \"Hello World\"\n              end\n            end\n          RUBY\n\n          file = settings.app_file.to_s.sub(settings.root.to_s, '').sub(/^\\//, '')\n          code = \"# in #{file}\\n#{code}\" unless file.empty?\n        end\n\n        (<<-HTML).gsub(/^ {10}/, '')\n          <!DOCTYPE html>\n          <html>\n          <head>\n            <style type=\"text/css\">\n            body { text-align:center;font-family:helvetica,arial;font-size:22px;\n              color:#888;margin:20px}\n            #c {margin:0 auto;width:500px;text-align:left}\n            </style>\n          </head>\n          <body>\n            <h2>Sinatra doesn’t know this ditty.</h2>\n            <img src='#{uri \"/__sinatra__/404.png\"}'>\n            <div id=\"c\">\n              Try this:\n              <pre>#{Rack::Utils.escape_html(code)}</pre>\n            </div>\n          </body>\n          </html>\n        HTML\n      end\n    end\n  end\n\n  # Execution context for classic style (top-level) applications. All\n  # DSL methods executed on main are delegated to this class.\n  #\n  # The Application class should not be subclassed, unless you want to\n  # inherit all settings, routes, handlers, and error pages from the\n  # top-level. Subclassing Sinatra::Base is highly recommended for\n  # modular applications.\n  class Application < Base\n    set :logging, Proc.new { !test? }\n    set :method_override, true\n    set :run, Proc.new { !test? }\n    set :app_file, nil\n\n    def self.register(*extensions, &block) #:nodoc:\n      added_methods = extensions.flat_map(&:public_instance_methods)\n      Delegator.delegate(*added_methods)\n      super(*extensions, &block)\n    end\n  end\n\n  # Sinatra delegation mixin. Mixing this module into an object causes all\n  # methods to be delegated to the Sinatra::Application class. Used primarily\n  # at the top-level.\n  module Delegator #:nodoc:\n    def self.delegate(*methods)\n      methods.each do |method_name|\n        define_method(method_name) do |*args, &block|\n          return super(*args, &block) if respond_to? method_name\n          Delegator.target.send(method_name, *args, &block)\n        end\n        private method_name\n      end\n    end\n\n    delegate :get, :patch, :put, :post, :delete, :head, :options, :link, :unlink,\n             :template, :layout, :before, :after, :error, :not_found, :configure,\n             :set, :mime_type, :enable, :disable, :use, :development?, :test?,\n             :production?, :helpers, :settings, :register\n\n    class << self\n      attr_accessor :target\n    end\n\n    self.target = Application\n  end\n\n  class Wrapper\n    def initialize(stack, instance)\n      @stack, @instance = stack, instance\n    end\n\n    def settings\n      @instance.settings\n    end\n\n    def helpers\n      @instance\n    end\n\n    def call(env)\n      @stack.call(env)\n    end\n\n    def inspect\n      \"#<#{@instance.class} app_file=#{settings.app_file.inspect}>\"\n    end\n  end\n\n  # Create a new Sinatra application; the block is evaluated in the class scope.\n  def self.new(base = Base, &block)\n    base = Class.new(base)\n    base.class_eval(&block) if block_given?\n    base\n  end\n\n  # Extend the top-level DSL with the modules provided.\n  def self.register(*extensions, &block)\n    Delegator.target.register(*extensions, &block)\n  end\n\n  # Include the helper modules provided in Sinatra's request context.\n  def self.helpers(*extensions, &block)\n    Delegator.target.helpers(*extensions, &block)\n  end\n\n  # Use the middleware for classic applications.\n  def self.use(*args, &block)\n    Delegator.target.use(*args, &block)\n  end\nend\n"
  },
  {
    "path": "semantic/test/fixtures/cli/blank.json",
    "content": ""
  },
  {
    "path": "semantic/test/fixtures/cli/diff-empty-language.json",
    "content": "{\n  \"blobs\": [{\n    \"before\": {\n      \"path\": \"method.rb\",\n      \"content\": \"def foo; end\",\n      \"language\": \"\"\n    },\n    \"after\": {\n      \"path\": \"method.rb\",\n      \"content\": \"def bar(x); end\",\n      \"language\": \"\"\n    }\n  }]\n}\n"
  },
  {
    "path": "semantic/test/fixtures/cli/diff-no-after.json",
    "content": "{\n  \"blobs\": [{\n    \"before\": {\n      \"path\": \"method.rb\",\n      \"content\": \"def foo; end\",\n      \"language\": \"Ruby\"\n    }\n  }]\n}\n"
  },
  {
    "path": "semantic/test/fixtures/cli/diff-no-before.json",
    "content": "{\n  \"blobs\": [{\n    \"after\": {\n      \"path\": \"method.rb\",\n      \"content\": \"def bar(x); end\",\n      \"language\": \"Ruby\"\n    }\n  }]\n}\n"
  },
  {
    "path": "semantic/test/fixtures/cli/diff-no-language.json",
    "content": "{\n  \"blobs\": [{\n    \"before\": {\n      \"path\": \"method.rb\",\n      \"content\": \"def foo; end\",\n    },\n    \"after\": {\n      \"path\": \"method.rb\",\n      \"content\": \"def bar(x); end\",\n    }\n  }]\n}\n"
  },
  {
    "path": "semantic/test/fixtures/cli/diff-null-after.json",
    "content": "{\n  \"blobs\": [{\n    \"before\": {\n      \"path\": \"method.rb\",\n      \"content\": \"def foo; end\",\n      \"language\": \"Ruby\"\n    },\n    \"after\": null\n  }]\n}\n"
  },
  {
    "path": "semantic/test/fixtures/cli/diff-null-before.json",
    "content": "{\n  \"blobs\": [{\n    \"before\": null,\n    \"after\": {\n      \"path\": \"method.rb\",\n      \"content\": \"def bar(x); end\",\n      \"language\": \"Ruby\"\n    }\n  }]\n}\n"
  },
  {
    "path": "semantic/test/fixtures/cli/diff-null-both-sides.json",
    "content": "{\n  \"blobs\": [{\n    \"before\": null,\n    \"after\": null\n  }]\n}\n"
  },
  {
    "path": "semantic/test/fixtures/cli/diff-tree.json",
    "content": "{\"diffs\":[{\"diff\":{\"merge\":{\"term\":\"Statements\",\"statements\":[{\"merge\":{\"term\":\"Method\",\"methodAccessControl\":\"Public\",\"methodBody\":{\"merge\":{\"children\":[{\"patch\":{\"insert\":{\"term\":\"Send\",\"sourceRange\":[13,16],\"sendReceiver\":null,\"sendBlock\":null,\"sendArgs\":[],\"sourceSpan\":{\"start\":[2,3],\"end\":[2,6]},\"sendSelector\":{\"patch\":{\"insert\":{\"term\":\"Identifier\",\"name\":\"baz\",\"sourceRange\":[13,16],\"sourceSpan\":{\"start\":[2,3],\"end\":[2,6]}}}}}}}],\"before\":{\"sourceRange\":[8,11],\"sourceSpan\":{\"start\":[2,1],\"end\":[2,4]}},\"after\":{\"sourceRange\":[13,16],\"sourceSpan\":{\"start\":[2,3],\"end\":[2,6]}}}},\"methodContext\":[],\"methodName\":{\"patch\":{\"replace\":[{\"term\":\"Identifier\",\"name\":\"foo\",\"sourceRange\":[4,7],\"sourceSpan\":{\"start\":[1,5],\"end\":[1,8]}},{\"term\":\"Identifier\",\"name\":\"bar\",\"sourceRange\":[4,7],\"sourceSpan\":{\"start\":[1,5],\"end\":[1,8]}}]}},\"methodParameters\":[{\"patch\":{\"insert\":{\"term\":\"Identifier\",\"name\":\"a\",\"sourceRange\":[8,9],\"sourceSpan\":{\"start\":[1,9],\"end\":[1,10]}}}}],\"methodReceiver\":{\"merge\":{\"term\":\"Empty\",\"before\":{\"sourceRange\":[0,0],\"sourceSpan\":{\"start\":[1,1],\"end\":[1,1]}},\"after\":{\"sourceRange\":[0,0],\"sourceSpan\":{\"start\":[1,1],\"end\":[1,1]}}}},\"before\":{\"sourceRange\":[0,11],\"sourceSpan\":{\"start\":[1,1],\"end\":[2,4]}},\"after\":{\"sourceRange\":[0,20],\"sourceSpan\":{\"start\":[1,1],\"end\":[3,4]}}}}],\"before\":{\"sourceRange\":[0,12],\"sourceSpan\":{\"start\":[1,1],\"end\":[3,1]}},\"after\":{\"sourceRange\":[0,21],\"sourceSpan\":{\"start\":[1,1],\"end\":[4,1]}}}},\"stat\":{\"path\":\"test/fixtures/ruby/corpus/method-declaration.A.rb -> test/fixtures/ruby/corpus/method-declaration.B.rb\",\"replace\":[{\"path\":\"test/fixtures/ruby/corpus/method-declaration.A.rb\",\"language\":\"Ruby\"},{\"path\":\"test/fixtures/ruby/corpus/method-declaration.B.rb\",\"language\":\"Ruby\"}]}}]}\n"
  },
  {
    "path": "semantic/test/fixtures/cli/diff-tree.toc.json",
    "content": "{\"files\":[{\"path\":\"test/fixtures/ruby/corpus/method-declaration.A.rb -> test/fixtures/ruby/corpus/method-declaration.B.rb\",\"language\":\"Ruby\",\"changes\":[{\"category\":\"Method\",\"term\":\"bar\",\"span\":{\"start\":{\"line\":1,\"column\":1},\"end\":{\"line\":3,\"column\":4}},\"changeType\":\"MODIFIED\"}]}]}\n"
  },
  {
    "path": "semantic/test/fixtures/cli/diff-unsupported-language.json",
    "content": "{\n  \"blobs\": [{\n    \"after\": {\n      \"path\": \"test.kt\",\n      \"content\": \"fun main(args: Array<String>) {\\nprintln(\\\"hi\\\")\\n}\\n\",\n      \"language\": \"Kotlin\"\n    }\n  }]\n}\n"
  },
  {
    "path": "semantic/test/fixtures/cli/diff.json",
    "content": "{\n  \"blobs\": [{\n    \"before\": {\n      \"path\": \"method.rb\",\n      \"content\": \"def foo; end\",\n      \"language\": \"Ruby\"\n    },\n    \"after\": {\n      \"path\": \"method.rb\",\n      \"content\": \"def bar(x); end\",\n      \"language\": \"Ruby\"\n    }\n  }]\n}\n"
  },
  {
    "path": "semantic/test/fixtures/cli/parse-tree-empty.json",
    "content": "{\"trees\":[]}\n"
  },
  {
    "path": "semantic/test/fixtures/cli/parse-tree.json",
    "content": "{\"trees\":[{\"tree\":{\"term\":\"Statements\",\"statements\":[{\"term\":\"LowPrecedenceAnd\",\"lhs\":{\"term\":\"Send\",\"sendArgs\":[],\"sendBlock\":null,\"sendReceiver\":null,\"sendSelector\":{\"term\":\"Identifier\",\"name\":\"foo\",\"sourceRange\":[0,3],\"sourceSpan\":{\"start\":[1,1],\"end\":[1,4]}},\"sourceRange\":[0,3],\"sourceSpan\":{\"start\":[1,1],\"end\":[1,4]}},\"rhs\":{\"term\":\"Send\",\"sendArgs\":[],\"sendBlock\":null,\"sendReceiver\":null,\"sendSelector\":{\"term\":\"Identifier\",\"name\":\"bar\",\"sourceRange\":[8,11],\"sourceSpan\":{\"start\":[1,9],\"end\":[1,12]}},\"sourceRange\":[8,11],\"sourceSpan\":{\"start\":[1,9],\"end\":[1,12]}},\"sourceRange\":[0,11],\"sourceSpan\":{\"start\":[1,1],\"end\":[1,12]}}],\"sourceRange\":[0,12],\"sourceSpan\":{\"start\":[1,1],\"end\":[2,1]}},\"path\":\"test/fixtures/ruby/corpus/and-or.A.rb\",\"language\":\"Ruby\"}]}\n"
  },
  {
    "path": "semantic/test/fixtures/cli/parse-tree.symbols.json",
    "content": "{\"files\":[{\"path\":\"semantic/test/fixtures/ruby/corpus/method-declaration.A.rb\",\"language\":\"Ruby\",\"symbols\":[{\"symbol\":\"foo\",\"kind\":\"Method\",\"line\":\"def foo\",\"span\":{\"start\":{\"line\":1,\"column\":5},\"end\":{\"line\":1,\"column\":8}},\"nodeType\":\"DEFINITION\",\"syntaxType\":\"METHOD\",\"utf16CodeUnitSpan\":{\"start\":{\"column\":4},\"end\":{\"column\":7}},\"byteRange\":{\"start\":4,\"end\":7}}]}]}\n"
  },
  {
    "path": "semantic/test/fixtures/cli/parse-trees.json",
    "content": "{\"trees\":[{\"tree\":{\"term\":\"Statements\",\"statements\":[{\"term\":\"LowPrecedenceAnd\",\"lhs\":{\"term\":\"Send\",\"sendArgs\":[],\"sendBlock\":null,\"sendReceiver\":null,\"sendSelector\":{\"term\":\"Identifier\",\"name\":\"foo\",\"sourceRange\":[0,3],\"sourceSpan\":{\"start\":[1,1],\"end\":[1,4]}},\"sourceRange\":[0,3],\"sourceSpan\":{\"start\":[1,1],\"end\":[1,4]}},\"rhs\":{\"term\":\"Send\",\"sendArgs\":[],\"sendBlock\":null,\"sendReceiver\":null,\"sendSelector\":{\"term\":\"Identifier\",\"name\":\"bar\",\"sourceRange\":[8,11],\"sourceSpan\":{\"start\":[1,9],\"end\":[1,12]}},\"sourceRange\":[8,11],\"sourceSpan\":{\"start\":[1,9],\"end\":[1,12]}},\"sourceRange\":[0,11],\"sourceSpan\":{\"start\":[1,1],\"end\":[1,12]}}],\"sourceRange\":[0,12],\"sourceSpan\":{\"start\":[1,1],\"end\":[2,1]}},\"path\":\"test/fixtures/ruby/corpus/and-or.A.rb\",\"language\":\"Ruby\"},{\"tree\":{\"term\":\"Statements\",\"statements\":[{\"term\":\"LowPrecedenceOr\",\"lhs\":{\"term\":\"Send\",\"sendArgs\":[],\"sendBlock\":null,\"sendReceiver\":null,\"sendSelector\":{\"term\":\"Identifier\",\"name\":\"foo\",\"sourceRange\":[0,3],\"sourceSpan\":{\"start\":[1,1],\"end\":[1,4]}},\"sourceRange\":[0,3],\"sourceSpan\":{\"start\":[1,1],\"end\":[1,4]}},\"rhs\":{\"term\":\"Send\",\"sendArgs\":[],\"sendBlock\":null,\"sendReceiver\":null,\"sendSelector\":{\"term\":\"Identifier\",\"name\":\"bar\",\"sourceRange\":[7,10],\"sourceSpan\":{\"start\":[1,8],\"end\":[1,11]}},\"sourceRange\":[7,10],\"sourceSpan\":{\"start\":[1,8],\"end\":[1,11]}},\"sourceRange\":[0,10],\"sourceSpan\":{\"start\":[1,1],\"end\":[1,11]}},{\"term\":\"LowPrecedenceAnd\",\"lhs\":{\"term\":\"LowPrecedenceOr\",\"lhs\":{\"term\":\"Send\",\"sendArgs\":[],\"sendBlock\":null,\"sendReceiver\":null,\"sendSelector\":{\"term\":\"Identifier\",\"name\":\"a\",\"sourceRange\":[11,12],\"sourceSpan\":{\"start\":[2,1],\"end\":[2,2]}},\"sourceRange\":[11,12],\"sourceSpan\":{\"start\":[2,1],\"end\":[2,2]}},\"rhs\":{\"term\":\"Send\",\"sendArgs\":[],\"sendBlock\":null,\"sendReceiver\":null,\"sendSelector\":{\"term\":\"Identifier\",\"name\":\"b\",\"sourceRange\":[16,17],\"sourceSpan\":{\"start\":[2,6],\"end\":[2,7]}},\"sourceRange\":[16,17],\"sourceSpan\":{\"start\":[2,6],\"end\":[2,7]}},\"sourceRange\":[11,17],\"sourceSpan\":{\"start\":[2,1],\"end\":[2,7]}},\"rhs\":{\"term\":\"Send\",\"sendArgs\":[],\"sendBlock\":null,\"sendReceiver\":null,\"sendSelector\":{\"term\":\"Identifier\",\"name\":\"c\",\"sourceRange\":[22,23],\"sourceSpan\":{\"start\":[2,12],\"end\":[2,13]}},\"sourceRange\":[22,23],\"sourceSpan\":{\"start\":[2,12],\"end\":[2,13]}},\"sourceRange\":[11,23],\"sourceSpan\":{\"start\":[2,1],\"end\":[2,13]}}],\"sourceRange\":[0,24],\"sourceSpan\":{\"start\":[1,1],\"end\":[3,1]}},\"path\":\"test/fixtures/ruby/corpus/and-or.B.rb\",\"language\":\"Ruby\"}]}\n"
  },
  {
    "path": "semantic/test/fixtures/cli/parse.json",
    "content": "{\n  \"blobs\": [{\n    \"path\": \"method.rb\",\n    \"content\": \"def foo; end\",\n    \"language\": \"Ruby\"\n  }]\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/analysis/bar/bar.go",
    "content": "package bar\n\nfunc Bar() string {\n\treturn \"Bar func\"\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/analysis/bar/rab.go",
    "content": "package bar\n\nfunc Rab() string {\n\treturn \"Rab func\"\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/analysis/foo/foo.go",
    "content": "package foo\n\nfunc New() string {\n\treturn \"New foo\"\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/analysis/main.go",
    "content": "package main\n\nimport \"./foo\"\nimport . \"./bar\"\n\nfunc main() {\n\tfoo.New()\n\tBar()\n\tRab()\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/analysis/main1.go",
    "content": "package main\n\nimport (\n\tf \"./foo\"\n\t_ \"./bar\"\n)\n\nfunc main() {\n\tf.New()\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/array-types.A.go",
    "content": "package main\n\nfunc main() {\ntype a [2+2]x\ntype b [3][5]int\ntype c [2][2][2]float64\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/array-types.B.go",
    "content": "package main\n\nfunc main() {\ntype a [1+1]y\ntype d [6][9]int\ntype e [1][2][3]float64\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/array-types.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Statements\n        (Type\n          (Identifier)\n          (Array\n            (Plus\n            { (Integer)\n            ->(Integer) }\n            { (Integer)\n            ->(Integer) })\n          { (Identifier)\n          ->(Identifier) })))\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Array\n          { (Integer)\n          ->(Integer) }\n            (Array\n            { (Integer)\n            ->(Integer) }\n              (Identifier)))))\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Array\n          { (Integer)\n          ->(Integer) }\n            (Array\n              (Integer)\n              (Array\n              { (Integer)\n              ->(Integer) }\n                (Identifier)))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/array-types.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Statements\n        (Type\n          (Identifier)\n          (Array\n            (Plus\n            { (Integer)\n            ->(Integer) }\n            { (Integer)\n            ->(Integer) })\n          { (Identifier)\n          ->(Identifier) })))\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Array\n          { (Integer)\n          ->(Integer) }\n            (Array\n            { (Integer)\n            ->(Integer) }\n              (Identifier)))))\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Array\n          { (Integer)\n          ->(Integer) }\n            (Array\n              (Integer)\n              (Array\n              { (Integer)\n              ->(Integer) }\n                (Identifier)))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/array-types.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"a\") \n            (Type \n              (SimpleType \n                (ArrayType \n                  (Expression \n                    (BinaryExpression \n                      (Token) \n                      (Expression \n                        (IntLiteral \"2\")) \n                      (Expression \n                        (IntLiteral \"2\")))) \n                  (Type \n                    (SimpleType \n                      (TypeIdentifier \"x\"))))))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"b\") \n            (Type \n              (SimpleType \n                (ArrayType \n                  (Expression \n                    (IntLiteral \"3\")) \n                  (Type \n                    (SimpleType \n                      (ArrayType \n                        (Expression \n                          (IntLiteral \"5\")) \n                        (Type \n                          (SimpleType \n                            (TypeIdentifier \"int\")))))))))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"c\") \n            (Type \n              (SimpleType \n                (ArrayType \n                  (Expression \n                    (IntLiteral \"2\")) \n                  (Type \n                    (SimpleType \n                      (ArrayType \n                        (Expression \n                          (IntLiteral \"2\")) \n                        (Type \n                          (SimpleType \n                            (ArrayType \n                              (Expression \n                                (IntLiteral \"2\")) \n                              (Type \n                                (SimpleType \n                                  (TypeIdentifier \"float64\")))))))))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/array-types.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"a\") \n            (Type \n              (SimpleType \n                (ArrayType \n                  (Expression \n                    (BinaryExpression \n                      (Token) \n                      (Expression \n                        (IntLiteral \"1\")) \n                      (Expression \n                        (IntLiteral \"1\")))) \n                  (Type \n                    (SimpleType \n                      (TypeIdentifier \"y\"))))))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"d\") \n            (Type \n              (SimpleType \n                (ArrayType \n                  (Expression \n                    (IntLiteral \"6\")) \n                  (Type \n                    (SimpleType \n                      (ArrayType \n                        (Expression \n                          (IntLiteral \"9\")) \n                        (Type \n                          (SimpleType \n                            (TypeIdentifier \"int\")))))))))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"e\") \n            (Type \n              (SimpleType \n                (ArrayType \n                  (Expression \n                    (IntLiteral \"1\")) \n                  (Type \n                    (SimpleType \n                      (ArrayType \n                        (Expression \n                          (IntLiteral \"2\")) \n                        (Type \n                          (SimpleType \n                            (ArrayType \n                              (Expression \n                                (IntLiteral \"3\")) \n                              (Type \n                                (SimpleType \n                                  (TypeIdentifier \"float64\")))))))))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/array-with-implicit-length.A.go",
    "content": "package main\n\nfunc main() {\nconst a1 = [...]int{1, 2, 3}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/array-with-implicit-length.B.go",
    "content": "package main\n\nfunc main() {\nconst a1 = [...]int{4,5,6}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/array-with-implicit-length.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Assignment\n      (Identifier)\n      (Composite\n        (Array\n          (Identifier))\n        (Statements\n        { (Integer)\n        ->(Integer) }\n        {+(Integer)+}\n        { (Integer)\n        ->(Integer) }\n        {-(Integer)-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/array-with-implicit-length.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Assignment\n      (Identifier)\n      (Composite\n        (Array\n          (Identifier))\n        (Statements\n        { (Integer)\n        ->(Integer) }\n        {+(Integer)+}\n        { (Integer)\n        ->(Integer) }\n        {-(Integer)-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/array-with-implicit-length.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (CompositeLiteral \n                  (LiteralValue \n                    (Element \n                      (Expression \n                        (IntLiteral \"1\"))) \n                    (Element \n                      (Expression \n                        (IntLiteral \"2\"))) \n                    (Element \n                      (Expression \n                        (IntLiteral \"3\")))) \n                  (ImplicitLengthArrayType \n                    (Type \n                      (SimpleType \n                        (TypeIdentifier \"int\"))))))) \n            (Identifier \"a1\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/array-with-implicit-length.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (CompositeLiteral \n                  (LiteralValue \n                    (Element \n                      (Expression \n                        (IntLiteral \"4\"))) \n                    (Element \n                      (Expression \n                        (IntLiteral \"5\"))) \n                    (Element \n                      (Expression \n                        (IntLiteral \"6\")))) \n                  (ImplicitLengthArrayType \n                    (Type \n                      (SimpleType \n                        (TypeIdentifier \"int\"))))))) \n            (Identifier \"a1\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/assignment-statements.A.go",
    "content": "package main\n\nfunc main() {\na = 1\nb, c += 2, 3\nd *= 3\ne += 1\nf <<= 1\ng >>= 2\nh /= 2\ni ^= 2\nj %= 2\nk &^= 2\n\nvar pointer *Point3D = &Point3D{y: 1000}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/assignment-statements.B.go",
    "content": "package main\n\nfunc main() {\nl = 1\nm, n += 2, 3\no *= 3\np += 1\nq <<= 1\ns >>= 2\nt /= 2\nu ^= 2\nv %= 2\nw &^= 2\n\nvar pointer *Point2D = &Point2D{x: 1000}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/assignment-statements.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n      { (Identifier)\n      ->(Identifier) }\n        (Integer))\n      (AugmentedAssignment\n        (Plus\n          (Statements\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) })\n          (Statements\n            (Integer)\n            (Integer))))\n    {+(AugmentedAssignment\n      {+(Times\n        {+(Identifier)+}\n        {+(Integer)+})+})+}\n    {+(AugmentedAssignment\n      {+(Plus\n        {+(Identifier)+}\n        {+(Integer)+})+})+}\n    {+(AugmentedAssignment\n      {+(LShift\n        {+(Identifier)+}\n        {+(Integer)+})+})+}\n      (AugmentedAssignment\n      { (Times\n        {-(Identifier)-}\n        {-(Integer)-})\n      ->(RShift\n        {+(Identifier)+}\n        {+(Integer)+}) })\n    {+(AugmentedAssignment\n      {+(DividedBy\n        {+(Identifier)+}\n        {+(Integer)+})+})+}\n    {+(AugmentedAssignment\n      {+(BXOr\n        {+(Identifier)+}\n        {+(Integer)+})+})+}\n    {+(AugmentedAssignment\n      {+(Modulo\n        {+(Identifier)+}\n        {+(Integer)+})+})+}\n    {+(AugmentedAssignment\n      {+(Not\n        {+(BAnd\n          {+(Identifier)+}\n          {+(Integer)+})+})+})+}\n    {+(Assignment\n      {+(Identifier)+}\n      {+(Statements\n        {+(Pointer\n          {+(Identifier)+})+}\n        {+(Reference\n          {+(Composite\n            {+(Identifier)+}\n            {+(Statements\n              {+(KeyValue\n                {+(Identifier)+}\n                {+(Integer)+})+})+})+})+})+})+}\n    {-(AugmentedAssignment\n      {-(Plus\n        {-(Identifier)-}\n        {-(Integer)-})-})-}\n    {-(AugmentedAssignment\n      {-(LShift\n        {-(Identifier)-}\n        {-(Integer)-})-})-}\n    {-(AugmentedAssignment\n      {-(RShift\n        {-(Identifier)-}\n        {-(Integer)-})-})-}\n    {-(AugmentedAssignment\n      {-(DividedBy\n        {-(Identifier)-}\n        {-(Integer)-})-})-}\n    {-(AugmentedAssignment\n      {-(BXOr\n        {-(Identifier)-}\n        {-(Integer)-})-})-}\n    {-(AugmentedAssignment\n      {-(Modulo\n        {-(Identifier)-}\n        {-(Integer)-})-})-}\n    {-(AugmentedAssignment\n      {-(Not\n        {-(BAnd\n          {-(Identifier)-}\n          {-(Integer)-})-})-})-}\n    {-(Assignment\n      {-(Identifier)-}\n      {-(Statements\n        {-(Pointer\n          {-(Identifier)-})-}\n        {-(Reference\n          {-(Composite\n            {-(Identifier)-}\n            {-(Statements\n              {-(KeyValue\n                {-(Identifier)-}\n                {-(Integer)-})-})-})-})-})-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/assignment-statements.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n      { (Identifier)\n      ->(Identifier) }\n        (Integer))\n      (AugmentedAssignment\n        (Plus\n          (Statements\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) })\n          (Statements\n            (Integer)\n            (Integer))))\n    {+(AugmentedAssignment\n      {+(Times\n        {+(Identifier)+}\n        {+(Integer)+})+})+}\n      (AugmentedAssignment\n      { (Times\n        {-(Identifier)-}\n        {-(Integer)-})\n      ->(Plus\n        {+(Identifier)+}\n        {+(Integer)+}) })\n    {+(AugmentedAssignment\n      {+(LShift\n        {+(Identifier)+}\n        {+(Integer)+})+})+}\n    {+(AugmentedAssignment\n      {+(RShift\n        {+(Identifier)+}\n        {+(Integer)+})+})+}\n    {+(AugmentedAssignment\n      {+(DividedBy\n        {+(Identifier)+}\n        {+(Integer)+})+})+}\n    {+(AugmentedAssignment\n      {+(BXOr\n        {+(Identifier)+}\n        {+(Integer)+})+})+}\n    {+(AugmentedAssignment\n      {+(Modulo\n        {+(Identifier)+}\n        {+(Integer)+})+})+}\n    {+(AugmentedAssignment\n      {+(Not\n        {+(BAnd\n          {+(Identifier)+}\n          {+(Integer)+})+})+})+}\n    {+(Assignment\n      {+(Identifier)+}\n      {+(Statements\n        {+(Pointer\n          {+(Identifier)+})+}\n        {+(Reference\n          {+(Composite\n            {+(Identifier)+}\n            {+(Statements\n              {+(KeyValue\n                {+(Identifier)+}\n                {+(Integer)+})+})+})+})+})+})+}\n    {-(AugmentedAssignment\n      {-(Plus\n        {-(Identifier)-}\n        {-(Integer)-})-})-}\n    {-(AugmentedAssignment\n      {-(LShift\n        {-(Identifier)-}\n        {-(Integer)-})-})-}\n    {-(AugmentedAssignment\n      {-(RShift\n        {-(Identifier)-}\n        {-(Integer)-})-})-}\n    {-(AugmentedAssignment\n      {-(DividedBy\n        {-(Identifier)-}\n        {-(Integer)-})-})-}\n    {-(AugmentedAssignment\n      {-(BXOr\n        {-(Identifier)-}\n        {-(Integer)-})-})-}\n    {-(AugmentedAssignment\n      {-(Modulo\n        {-(Identifier)-}\n        {-(Integer)-})-})-}\n    {-(AugmentedAssignment\n      {-(Not\n        {-(BAnd\n          {-(Identifier)-}\n          {-(Integer)-})-})-})-}\n    {-(Assignment\n      {-(Identifier)-}\n      {-(Statements\n        {-(Pointer\n          {-(Identifier)-})-}\n        {-(Reference\n          {-(Composite\n            {-(Identifier)-}\n            {-(Statements\n              {-(KeyValue\n                {-(Identifier)-}\n                {-(Integer)-})-})-})-})-})-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/assignment-statements.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"a\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"1\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"b\")) \n              (Expression \n                (Identifier \"c\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"2\")) \n              (Expression \n                (IntLiteral \"3\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"d\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"3\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"e\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"1\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"f\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"1\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"g\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"2\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"h\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"2\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"i\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"2\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"j\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"2\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"k\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"2\")))))) \n      (Statement \n        (VarDeclaration \n          (VarSpec \n            (ExpressionList \n              (Expression \n                (UnaryExpression \n                  (Token) \n                  (Expression \n                    (CompositeLiteral \n                      (LiteralValue \n                        (KeyedElement \n                          (FieldIdentifier \"y\") \n                          (Expression \n                            (IntLiteral \"1000\")))) \n                      (TypeIdentifier \"Point3D\")))))) \n            (Identifier \"pointer\") \n            (Type \n              (SimpleType \n                (PointerType \n                  (Type \n                    (SimpleType \n                      (TypeIdentifier \"Point3D\")))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/assignment-statements.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"l\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"1\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"m\")) \n              (Expression \n                (Identifier \"n\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"2\")) \n              (Expression \n                (IntLiteral \"3\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"o\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"3\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"p\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"1\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"q\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"1\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"s\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"2\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"t\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"2\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"u\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"2\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"v\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"2\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"w\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"2\")))))) \n      (Statement \n        (VarDeclaration \n          (VarSpec \n            (ExpressionList \n              (Expression \n                (UnaryExpression \n                  (Token) \n                  (Expression \n                    (CompositeLiteral \n                      (LiteralValue \n                        (KeyedElement \n                          (FieldIdentifier \"x\") \n                          (Expression \n                            (IntLiteral \"1000\")))) \n                      (TypeIdentifier \"Point2D\")))))) \n            (Identifier \"pointer\") \n            (Type \n              (SimpleType \n                (PointerType \n                  (Type \n                    (SimpleType \n                      (TypeIdentifier \"Point2D\")))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/binary-expressions.A.go",
    "content": "package main\n\nfunc main() {\n  // comment 1\n  a || // comment 2\n  b\n  // comment 3\n  c && d\n  e == f\n  g != h\n  i < j\n  k <= l\n  m > n\n  o >= p\n  q + r\n  s - t\n  u | v\n  x ^ y\n  z * aa\n  bb / cc\n  dd % ee\n  ff << gg\n  hh >> ii\n  jj & kk\n  ll &^ mm\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/binary-expressions.B.go",
    "content": "package main\n\nfunc main() {\n  // comment 1\n  b || // comment 2\n  c\n  // comment 3\n  d && c\n  f == e\n  h != g\n  j < i\n  l <= k\n  n > m\n  p >= o\n  r + q\n  t - s\n  v | u\n  y ^ x\n  aa * z\n  cc / bb\n  ee % dd\n  gg << ff\n  ii >> hh\n  kk & jj\n  mm &^ ll\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/binary-expressions.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Context\n        (Comment)\n        (Or\n        { (Identifier)\n        ->(Identifier) }\n          (Context\n            (Comment)\n          { (Identifier)\n          ->(Identifier) })))\n      (Context\n        (Comment)\n        (And\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) }))\n      (Equal\n      { (Identifier)\n      ->(Identifier) }\n      { (Identifier)\n      ->(Identifier) })\n      (Not\n        (Equal\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) }))\n      (LessThan\n      { (Identifier)\n      ->(Identifier) }\n      { (Identifier)\n      ->(Identifier) })\n    {+(LessThanEqual\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(GreaterThan\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(GreaterThanEqual\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(Plus\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(Minus\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(BOr\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(BXOr\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(Times\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(DividedBy\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(Modulo\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(LShift\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(RShift\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(BAnd\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(BAnd\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {-(LessThanEqual\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(GreaterThan\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(GreaterThanEqual\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Plus\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Minus\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(BOr\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(BXOr\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Times\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(DividedBy\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Modulo\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(LShift\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(RShift\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(BAnd\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(BAnd\n      {-(Identifier)-}\n      {-(Identifier)-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/binary-expressions.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Context\n        (Comment)\n        (Or\n        { (Identifier)\n        ->(Identifier) }\n          (Context\n            (Comment)\n          { (Identifier)\n          ->(Identifier) })))\n      (Context\n        (Comment)\n        (And\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) }))\n      (Equal\n      { (Identifier)\n      ->(Identifier) }\n      { (Identifier)\n      ->(Identifier) })\n      (Not\n        (Equal\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) }))\n      (LessThan\n      { (Identifier)\n      ->(Identifier) }\n      { (Identifier)\n      ->(Identifier) })\n    {+(LessThanEqual\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(GreaterThan\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(GreaterThanEqual\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(Plus\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(Minus\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(BOr\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(BXOr\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(Times\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(DividedBy\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(Modulo\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(LShift\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(RShift\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(BAnd\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(BAnd\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {-(LessThanEqual\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(GreaterThan\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(GreaterThanEqual\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Plus\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Minus\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(BOr\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(BXOr\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Times\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(DividedBy\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Modulo\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(LShift\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(RShift\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(BAnd\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(BAnd\n      {-(Identifier)-}\n      {-(Identifier)-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/binary-expressions.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"a\")) \n              (Expression \n                (Identifier \"b\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"c\")) \n              (Expression \n                (Identifier \"d\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"e\")) \n              (Expression \n                (Identifier \"f\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"g\")) \n              (Expression \n                (Identifier \"h\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"i\")) \n              (Expression \n                (Identifier \"j\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"k\")) \n              (Expression \n                (Identifier \"l\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"m\")) \n              (Expression \n                (Identifier \"n\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"o\")) \n              (Expression \n                (Identifier \"p\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"q\")) \n              (Expression \n                (Identifier \"r\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"s\")) \n              (Expression \n                (Identifier \"t\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"u\")) \n              (Expression \n                (Identifier \"v\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"x\")) \n              (Expression \n                (Identifier \"y\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"z\")) \n              (Expression \n                (Identifier \"aa\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"bb\")) \n              (Expression \n                (Identifier \"cc\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"dd\")) \n              (Expression \n                (Identifier \"ee\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"ff\")) \n              (Expression \n                (Identifier \"gg\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"hh\")) \n              (Expression \n                (Identifier \"ii\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"jj\")) \n              (Expression \n                (Identifier \"kk\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"ll\")) \n              (Expression \n                (Identifier \"mm\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/binary-expressions.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"b\")) \n              (Expression \n                (Identifier \"c\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"d\")) \n              (Expression \n                (Identifier \"c\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"f\")) \n              (Expression \n                (Identifier \"e\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"h\")) \n              (Expression \n                (Identifier \"g\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"j\")) \n              (Expression \n                (Identifier \"i\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"l\")) \n              (Expression \n                (Identifier \"k\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"n\")) \n              (Expression \n                (Identifier \"m\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"p\")) \n              (Expression \n                (Identifier \"o\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"r\")) \n              (Expression \n                (Identifier \"q\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"t\")) \n              (Expression \n                (Identifier \"s\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"v\")) \n              (Expression \n                (Identifier \"u\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"y\")) \n              (Expression \n                (Identifier \"x\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"aa\")) \n              (Expression \n                (Identifier \"z\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"cc\")) \n              (Expression \n                (Identifier \"bb\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"ee\")) \n              (Expression \n                (Identifier \"dd\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"gg\")) \n              (Expression \n                (Identifier \"ff\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"ii\")) \n              (Expression \n                (Identifier \"hh\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"kk\")) \n              (Expression \n                (Identifier \"jj\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"mm\")) \n              (Expression \n                (Identifier \"ll\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/call-expressions.A.go",
    "content": "package main\n\nfunc main() {\nx(b, c...)\ny(b, c,)\nz(b,c...,)\na()\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/call-expressions.B.go",
    "content": "package main\n\nfunc main() {\na(b, c...)\nb(b, c,)\nc(b,c...,)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/call-expressions.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Call\n      { (Identifier)\n      ->(Identifier) }\n        (Statements\n          (Identifier)\n          (Variadic\n            (Identifier)))\n        (Empty))\n      (Call\n      { (Identifier)\n      ->(Identifier) }\n        (Statements\n          (Identifier)\n          (Identifier))\n        (Empty))\n      (Call\n      { (Identifier)\n      ->(Identifier) }\n        (Statements\n          (Identifier)\n          (Variadic\n            (Identifier)))\n        (Empty))\n    {-(Call\n      {-(Identifier)-}\n      {-(Statements)-}\n      {-(Empty)-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/call-expressions.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Call\n      { (Identifier)\n      ->(Identifier) }\n        (Statements\n          (Identifier)\n          (Variadic\n            (Identifier)))\n        (Empty))\n      (Call\n      { (Identifier)\n      ->(Identifier) }\n        (Statements\n          (Identifier)\n          (Identifier))\n        (Empty))\n      (Call\n      { (Identifier)\n      ->(Identifier) }\n        (Statements\n          (Identifier)\n          (Variadic\n            (Identifier)))\n        (Empty))\n    {+(Call\n      {+(Identifier)+}\n      {+(Statements)+}\n      {+(Empty)+})+})))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/call-expressions.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"x\")) \n              (ArgumentList \n                (Expression \n                  (Identifier \"b\")) \n                (VariadicArgument \n                  (Expression \n                    (Identifier \"c\")))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"y\")) \n              (ArgumentList \n                (Expression \n                  (Identifier \"b\")) \n                (Expression \n                  (Identifier \"c\"))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"z\")) \n              (ArgumentList \n                (Expression \n                  (Identifier \"b\")) \n                (VariadicArgument \n                  (Expression \n                    (Identifier \"c\")))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"a\")) \n              (ArgumentList)))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/call-expressions.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"a\")) \n              (ArgumentList \n                (Expression \n                  (Identifier \"b\")) \n                (VariadicArgument \n                  (Expression \n                    (Identifier \"c\")))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"b\")) \n              (ArgumentList \n                (Expression \n                  (Identifier \"b\")) \n                (Expression \n                  (Identifier \"c\"))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"c\")) \n              (ArgumentList \n                (Expression \n                  (Identifier \"b\")) \n                (VariadicArgument \n                  (Expression \n                    (Identifier \"c\"))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/case-statements.A.go",
    "content": "package main\n\nfunc main() {\nswitch { }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/case-statements.B.go",
    "content": "package main\n\nfunc main() {\nswitch { case foo: f1() }\nswitch e {\ncase 1, 2:\na()\nb()\nfallthrough\ndefault:\nc()\nbreak\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/case-statements.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n  { (Match\n    {-(Empty)-}\n    {-(Statements)-})\n  ->(Statements\n    {+(Match\n      {+(Statements)+}\n      {+(Pattern\n        {+(Statements\n          {+(Identifier)+}\n          {+(Call\n            {+(Identifier)+}\n            {+(Statements)+}\n            {+(Empty)+})+})+}\n        {+(Statements)+})+})+}\n    {+(Match\n      {+(Statements\n        {+(Identifier)+})+}\n      {+(Pattern\n        {+(Statements\n          {+(Statements\n            {+(Integer)+}\n            {+(Integer)+})+}\n          {+(Call\n            {+(Identifier)+}\n            {+(Statements)+}\n            {+(Empty)+})+}\n          {+(Call\n            {+(Identifier)+}\n            {+(Statements)+}\n            {+(Empty)+})+}\n          {+(Pattern\n            {+(Identifier)+}\n            {+(Empty)+})+})+}\n        {+(DefaultPattern\n          {+(Statements\n            {+(Call\n              {+(Identifier)+}\n              {+(Statements)+}\n              {+(Empty)+})+}\n            {+(Break\n              {+(Empty)+})+})+})+})+})+}) }))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/case-statements.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n  { (Statements\n    {-(Match\n      {-(Statements)-}\n      {-(Pattern\n        {-(Statements\n          {-(Identifier)-}\n          {-(Call\n            {-(Identifier)-}\n            {-(Statements)-}\n            {-(Empty)-})-})-}\n        {-(Statements)-})-})-}\n    {-(Match\n      {-(Statements\n        {-(Identifier)-})-}\n      {-(Pattern\n        {-(Statements\n          {-(Statements\n            {-(Integer)-}\n            {-(Integer)-})-}\n          {-(Call\n            {-(Identifier)-}\n            {-(Statements)-}\n            {-(Empty)-})-}\n          {-(Call\n            {-(Identifier)-}\n            {-(Statements)-}\n            {-(Empty)-})-}\n          {-(Pattern\n            {-(Identifier)-}\n            {-(Empty)-})-})-}\n        {-(DefaultPattern\n          {-(Statements\n            {-(Call\n              {-(Identifier)-}\n              {-(Statements)-}\n              {-(Empty)-})-}\n            {-(Break\n              {-(Empty)-})-})-})-})-})-})\n  ->(Match\n    {+(Empty)+}\n    {+(Statements)+}) }))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/case-statements.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ExpressionSwitchStatement))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/case-statements.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ExpressionSwitchStatement \n          (ExpressionCase \n            (ExpressionList \n              (Expression \n                (Identifier \"foo\"))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"f1\")) \n                    (ArgumentList)))))))) \n      (Statement \n        (ExpressionSwitchStatement \n          (Expression \n            (Identifier \"e\")) \n          (ExpressionCase \n            (ExpressionList \n              (Expression \n                (IntLiteral \"1\")) \n              (Expression \n                (IntLiteral \"2\"))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"a\")) \n                    (ArgumentList))))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"b\")) \n                    (ArgumentList))))) \n            (Statement \n              (FallthroughStatement \"fallthrough\"))) \n          (DefaultCase \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"c\")) \n                    (ArgumentList))))) \n            (Statement \n              (BreakStatement)))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/channel-types.A.go",
    "content": "package main\n\nfunc main() {\ntype (\nc1 chan<- chan int\nc2 chan<- chan<- struct{}\nc3 chan<- <-chan int\nc4 <-chan <-chan int\nc5 chan (<-chan int)\n)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/channel-types.B.go",
    "content": "package main\n\nfunc main() {\ntype (\nc2 chan<- chan string\nc3 chan<- chan<- struct{}\nc4 chan<- <-chan string\nc4 <-chan <-chan string\nc5 chan (<-chan string)\n)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/channel-types.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Type\n      { (Identifier)\n      ->(Identifier) }\n        (BidirectionalChannel\n          (ReceiveChannel\n          { (Identifier)\n          ->(Identifier) })))\n      (Type\n      { (Identifier)\n      ->(Identifier) }\n        (SendChannel\n          (SendChannel\n            (Constructor\n              (Empty)\n              (Statements)))))\n      (Type\n      { (Identifier)\n      ->(Identifier) }\n        (SendChannel\n          (ReceiveChannel\n          { (Identifier)\n          ->(Identifier) })))\n      (Type\n        (Identifier)\n        (ReceiveChannel\n          (ReceiveChannel\n          { (Identifier)\n          ->(Identifier) })))\n      (Type\n        (Identifier)\n        (BidirectionalChannel\n          (Parenthesized\n            (ReceiveChannel\n            { (Identifier)\n            ->(Identifier) })))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/channel-types.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Type\n      { (Identifier)\n      ->(Identifier) }\n        (BidirectionalChannel\n          (ReceiveChannel\n          { (Identifier)\n          ->(Identifier) })))\n      (Type\n      { (Identifier)\n      ->(Identifier) }\n        (SendChannel\n          (SendChannel\n            (Constructor\n              (Empty)\n              (Statements)))))\n      (Type\n      { (Identifier)\n      ->(Identifier) }\n        (SendChannel\n          (ReceiveChannel\n          { (Identifier)\n          ->(Identifier) })))\n      (Type\n        (Identifier)\n        (ReceiveChannel\n          (ReceiveChannel\n          { (Identifier)\n          ->(Identifier) })))\n      (Type\n        (Identifier)\n        (BidirectionalChannel\n          (Parenthesized\n            (ReceiveChannel\n            { (Identifier)\n            ->(Identifier) })))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/channel-types.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"c1\") \n            (Type \n              (SimpleType \n                (ChannelType \n                  (Type \n                    (SimpleType \n                      (ChannelType \n                        (Type \n                          (SimpleType \n                            (TypeIdentifier \"int\")))))))))) \n          (TypeSpec \n            (TypeIdentifier \"c2\") \n            (Type \n              (SimpleType \n                (ChannelType \n                  (Type \n                    (SimpleType \n                      (ChannelType \n                        (Type \n                          (SimpleType \n                            (StructType \n                              (FieldDeclarationList))))))))))) \n          (TypeSpec \n            (TypeIdentifier \"c3\") \n            (Type \n              (SimpleType \n                (ChannelType \n                  (Type \n                    (SimpleType \n                      (ChannelType \n                        (Type \n                          (SimpleType \n                            (TypeIdentifier \"int\")))))))))) \n          (TypeSpec \n            (TypeIdentifier \"c4\") \n            (Type \n              (SimpleType \n                (ChannelType \n                  (Type \n                    (SimpleType \n                      (ChannelType \n                        (Type \n                          (SimpleType \n                            (TypeIdentifier \"int\")))))))))) \n          (TypeSpec \n            (TypeIdentifier \"c5\") \n            (Type \n              (SimpleType \n                (ChannelType \n                  (Type \n                    (ParenthesizedType \n                      (Type \n                        (SimpleType \n                          (ChannelType \n                            (Type \n                              (SimpleType \n                                (TypeIdentifier \"int\"))))))))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/channel-types.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"c2\") \n            (Type \n              (SimpleType \n                (ChannelType \n                  (Type \n                    (SimpleType \n                      (ChannelType \n                        (Type \n                          (SimpleType \n                            (TypeIdentifier \"string\")))))))))) \n          (TypeSpec \n            (TypeIdentifier \"c3\") \n            (Type \n              (SimpleType \n                (ChannelType \n                  (Type \n                    (SimpleType \n                      (ChannelType \n                        (Type \n                          (SimpleType \n                            (StructType \n                              (FieldDeclarationList))))))))))) \n          (TypeSpec \n            (TypeIdentifier \"c4\") \n            (Type \n              (SimpleType \n                (ChannelType \n                  (Type \n                    (SimpleType \n                      (ChannelType \n                        (Type \n                          (SimpleType \n                            (TypeIdentifier \"string\")))))))))) \n          (TypeSpec \n            (TypeIdentifier \"c4\") \n            (Type \n              (SimpleType \n                (ChannelType \n                  (Type \n                    (SimpleType \n                      (ChannelType \n                        (Type \n                          (SimpleType \n                            (TypeIdentifier \"string\")))))))))) \n          (TypeSpec \n            (TypeIdentifier \"c5\") \n            (Type \n              (SimpleType \n                (ChannelType \n                  (Type \n                    (ParenthesizedType \n                      (Type \n                        (SimpleType \n                          (ChannelType \n                            (Type \n                              (SimpleType \n                                (TypeIdentifier \"string\"))))))))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/comment.A.go",
    "content": "package main\n\nfunc main() {\n// this is a comment\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/comment.B.go",
    "content": "package main\n\nfunc main() {\n/*\nthis is a block comment\n*/\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/comment.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Context\n    { (Comment)\n    ->(Comment) }\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/comment.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Context\n    { (Comment)\n    ->(Comment) }\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/comment.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/comment.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/const-declarations-with-types.A.go",
    "content": "package main\n\nfunc main() {\nconst zero int = 0\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/const-declarations-with-types.B.go",
    "content": "package main\n\nfunc main() {\nconst one, two uiint64 = 1, 2\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/const-declarations-with-types.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Assignment\n      (Annotation\n        (Statements\n        { (Identifier)\n        ->(Identifier) }\n        {+(Identifier)+})\n      { (Identifier)\n      ->(Identifier) })\n    { (Integer)\n    ->(Statements\n      {+(Integer)+}\n      {+(Integer)+}) })))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/const-declarations-with-types.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Assignment\n      (Annotation\n        (Statements\n        { (Identifier)\n        ->(Identifier) }\n        {-(Identifier)-})\n      { (Identifier)\n      ->(Identifier) })\n    { (Statements\n      {-(Integer)-}\n      {-(Integer)-})\n    ->(Integer) })))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/const-declarations-with-types.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"0\"))) \n            (Identifier \"zero\") \n            (Type \n              (SimpleType \n                (TypeIdentifier \"int\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/const-declarations-with-types.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"1\")) \n              (Expression \n                (IntLiteral \"2\"))) \n            (Identifier \"one\") \n            (Token) \n            (Identifier \"two\") \n            (Type \n              (SimpleType \n                (TypeIdentifier \"uiint64\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/const-declarations-without-types.A.go",
    "content": "package main\n\nfunc main() {\nconst zero = 0\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/const-declarations-without-types.B.go",
    "content": "package main\n\nfunc main() {\nconst one, two = 1, 2\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/const-declarations-without-types.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Assignment\n    { (Identifier)\n    ->(Statements\n      {+(Identifier)+}\n      {+(Identifier)+}) }\n    { (Integer)\n    ->(Statements\n      {+(Integer)+}\n      {+(Integer)+}) })))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/const-declarations-without-types.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Assignment\n    { (Statements\n      {-(Identifier)-}\n      {-(Identifier)-})\n    ->(Identifier) }\n    { (Statements\n      {-(Integer)-}\n      {-(Integer)-})\n    ->(Integer) })))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/const-declarations-without-types.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"0\"))) \n            (Identifier \"zero\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/const-declarations-without-types.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"1\")) \n              (Expression \n                (IntLiteral \"2\"))) \n            (Identifier \"one\") \n            (Token) \n            (Identifier \"two\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/const-with-implicit-values.A.go",
    "content": "package main\n\nfunc main() {\nconst (\n zero = iota\n one\n two\n )\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/const-with-implicit-values.B.go",
    "content": "package main\n\nfunc main() {\nconst (\n a = iota\n b\n c\n )\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/const-with-implicit-values.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n      { (Identifier)\n      ->(Identifier) }\n        (Identifier))\n      (Assignment\n      { (Identifier)\n      ->(Identifier) }\n        (Statements))\n      (Assignment\n      { (Identifier)\n      ->(Identifier) }\n        (Statements)))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/const-with-implicit-values.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n      { (Identifier)\n      ->(Identifier) }\n        (Identifier))\n      (Assignment\n      { (Identifier)\n      ->(Identifier) }\n        (Statements))\n      (Assignment\n      { (Identifier)\n      ->(Identifier) }\n        (Statements)))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/const-with-implicit-values.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (Identifier \"iota\"))) \n            (Identifier \"zero\")) \n          (ConstSpec \n            (Identifier \"one\")) \n          (ConstSpec \n            (Identifier \"two\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/const-with-implicit-values.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (Identifier \"iota\"))) \n            (Identifier \"a\")) \n          (ConstSpec \n            (Identifier \"b\")) \n          (ConstSpec \n            (Identifier \"c\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/constructors.A.go",
    "content": "package main\n\nfunc main() {\nmake(chan<- int)\nmake(chan<- int, (new - old))\nmake(chan<- int, 5, 10)\n new(map[string]string)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/constructors.B.go",
    "content": "package main\n\nfunc main() {\nmake(chan<- string)\nmake(chan<- string, (new - old))\nmake(chan<- string, 7, 11)\n new(map[int]int)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/constructors.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Call\n        (Identifier)\n        (SendChannel\n        { (Identifier)\n        ->(Identifier) })\n        (Empty))\n      (Call\n        (Identifier)\n        (Statements\n          (SendChannel\n          { (Identifier)\n          ->(Identifier) })\n          (Minus\n            (Identifier)\n            (Identifier)))\n        (Empty))\n      (Call\n        (Identifier)\n        (Statements\n          (SendChannel\n          { (Identifier)\n          ->(Identifier) })\n        { (Integer)\n        ->(Integer) }\n        { (Integer)\n        ->(Integer) })\n        (Empty))\n      (Call\n        (Identifier)\n        (Map\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) })\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/constructors.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Call\n        (Identifier)\n        (SendChannel\n        { (Identifier)\n        ->(Identifier) })\n        (Empty))\n      (Call\n        (Identifier)\n        (Statements\n          (SendChannel\n          { (Identifier)\n          ->(Identifier) })\n          (Minus\n            (Identifier)\n            (Identifier)))\n        (Empty))\n      (Call\n        (Identifier)\n        (Statements\n          (SendChannel\n          { (Identifier)\n          ->(Identifier) })\n        { (Integer)\n        ->(Integer) }\n        { (Integer)\n        ->(Integer) })\n        (Empty))\n      (Call\n        (Identifier)\n        (Map\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) })\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/constructors.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"make\")) \n              (ArgumentList \n                (Type \n                  (SimpleType \n                    (ChannelType \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"int\"))))))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"make\")) \n              (ArgumentList \n                (Type \n                  (SimpleType \n                    (ChannelType \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"int\")))))) \n                (Expression \n                  (ParenthesizedExpression \n                    (Expression \n                      (BinaryExpression \n                        (Token) \n                        (Expression \n                          (Identifier \"new\")) \n                        (Expression \n                          (Identifier \"old\"))))))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"make\")) \n              (ArgumentList \n                (Type \n                  (SimpleType \n                    (ChannelType \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"int\")))))) \n                (Expression \n                  (IntLiteral \"5\")) \n                (Expression \n                  (IntLiteral \"10\"))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"new\")) \n              (ArgumentList \n                (Type \n                  (SimpleType \n                    (MapType \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"string\"))) \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"string\")))))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/constructors.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"make\")) \n              (ArgumentList \n                (Type \n                  (SimpleType \n                    (ChannelType \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"string\"))))))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"make\")) \n              (ArgumentList \n                (Type \n                  (SimpleType \n                    (ChannelType \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"string\")))))) \n                (Expression \n                  (ParenthesizedExpression \n                    (Expression \n                      (BinaryExpression \n                        (Token) \n                        (Expression \n                          (Identifier \"new\")) \n                        (Expression \n                          (Identifier \"old\"))))))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"make\")) \n              (ArgumentList \n                (Type \n                  (SimpleType \n                    (ChannelType \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"string\")))))) \n                (Expression \n                  (IntLiteral \"7\")) \n                (Expression \n                  (IntLiteral \"11\"))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"new\")) \n              (ArgumentList \n                (Type \n                  (SimpleType \n                    (MapType \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"int\"))) \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"int\")))))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/float-literals.A.go",
    "content": "package main\n\nfunc main() {\nf1 = 1.5\nf2 = 1.5e100\nf3 = 1.5e+50\nf4 = 1.5e-5\nf5 = .5e-50\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/float-literals.B.go",
    "content": "package main\n\nfunc main() {\nf1 = 2.6\nf2 = 2.6e211\nf3 = 2.6e+60\nf4 = 2.6e-7\nf5 = .6e-60\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/float-literals.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n        (Identifier)\n      { (Float)\n      ->(Float) })\n      (Assignment\n        (Identifier)\n      { (Float)\n      ->(Float) })\n      (Assignment\n        (Identifier)\n      { (Float)\n      ->(Float) })\n      (Assignment\n        (Identifier)\n      { (Float)\n      ->(Float) })\n      (Assignment\n        (Identifier)\n      { (Float)\n      ->(Float) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/float-literals.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n        (Identifier)\n      { (Float)\n      ->(Float) })\n      (Assignment\n        (Identifier)\n      { (Float)\n      ->(Float) })\n      (Assignment\n        (Identifier)\n      { (Float)\n      ->(Float) })\n      (Assignment\n        (Identifier)\n      { (Float)\n      ->(Float) })\n      (Assignment\n        (Identifier)\n      { (Float)\n      ->(Float) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/float-literals.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"f1\"))) \n            (ExpressionList \n              (Expression \n                (FloatLiteral \"1.5\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"f2\"))) \n            (ExpressionList \n              (Expression \n                (FloatLiteral \"1.5e100\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"f3\"))) \n            (ExpressionList \n              (Expression \n                (FloatLiteral \"1.5e+50\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"f4\"))) \n            (ExpressionList \n              (Expression \n                (FloatLiteral \"1.5e-5\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"f5\"))) \n            (ExpressionList \n              (Expression \n                (FloatLiteral \".5e-50\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/float-literals.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"f1\"))) \n            (ExpressionList \n              (Expression \n                (FloatLiteral \"2.6\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"f2\"))) \n            (ExpressionList \n              (Expression \n                (FloatLiteral \"2.6e211\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"f3\"))) \n            (ExpressionList \n              (Expression \n                (FloatLiteral \"2.6e+60\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"f4\"))) \n            (ExpressionList \n              (Expression \n                (FloatLiteral \"2.6e-7\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (Identifier \"f5\"))) \n            (ExpressionList \n              (Expression \n                (FloatLiteral \".6e-60\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/for-statements.A.go",
    "content": "package main\n\nfunc main() {\n for {\na()\ngoto loop\n}\nfor i := 0; i < 5; i++ {\na()\nbreak loop\n}\nfor ; i < 10; i++ {\na()\ncontinue loop2\n}\nfor ;; {\na()\ncontinue\n}\nfor x := range y {\na(x)\nbreak\n}\nfor i, s := range a {\n\tg(i, s)\n}\nfor key, val = range m {\n\th(key, val)\n}\nfor 1 < 2 {\n  i()\n}\nfor range ch {}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/for-statements.B.go",
    "content": "package main\n\nfunc main() {\n for ;; {\na()\ngoto loop\n}\nfor x := range y {\na()\nbreak loop\n}\nfor ;; {\na()\ncontinue loop2\n}\nfor ; i < 10; i++ {\na()\ncontinue\n}\nfor  {\na(x)\nbreak\n}\nfor s, i := range b {\n\tg(i, s)\n}\nfor k, v = range m {\n\th(k, v)\n}\nfor 2 < 1 {\n  j()\n}\nfor range b {}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/for-statements.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (For\n        (Empty)\n        (Empty)\n        (Empty)\n        (Statements\n          (Call\n            (Identifier)\n            (Statements)\n            (Empty))\n          (Goto\n            (Identifier))))\n    {+(ForEach\n      {+(Identifier)+}\n      {+(Identifier)+}\n      {+(Statements\n        {+(Call\n          {+(Identifier)+}\n          {+(Statements)+}\n          {+(Empty)+})+}\n        {+(Break\n          {+(Identifier)+})+})+})+}\n    {+(For\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Statements\n        {+(Call\n          {+(Identifier)+}\n          {+(Statements)+}\n          {+(Empty)+})+}\n        {+(Continue\n          {+(Identifier)+})+})+})+}\n      (For\n      { (Assignment\n        {-(Identifier)-}\n        {-(Integer)-})\n      ->(LessThan\n        {+(Identifier)+}\n        {+(Integer)+}) }\n      { (LessThan\n        {-(Identifier)-}\n        {-(Integer)-})\n      ->(PostIncrement\n        {+(Identifier)+}) }\n      { (PostIncrement\n        {-(Identifier)-})\n      ->(Empty) }\n        (Statements\n          (Call\n            (Identifier)\n            (Statements)\n            (Empty))\n        {+(Continue\n          {+(Empty)+})+}\n        {-(Break\n          {-(Identifier)-})-}))\n    {+(For\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Statements\n        {+(Call\n          {+(Identifier)+}\n          {+(Identifier)+}\n          {+(Empty)+})+}\n        {+(Break\n          {+(Empty)+})+})+})+}\n    {+(ForEach\n      {+(Statements\n        {+(Identifier)+}\n        {+(Identifier)+})+}\n      {+(Identifier)+}\n      {+(Call\n        {+(Identifier)+}\n        {+(Statements\n          {+(Identifier)+}\n          {+(Identifier)+})+}\n        {+(Empty)+})+})+}\n    {+(ForEach\n      {+(Statements\n        {+(Identifier)+}\n        {+(Identifier)+})+}\n      {+(Identifier)+}\n      {+(Call\n        {+(Identifier)+}\n        {+(Statements\n          {+(Identifier)+}\n          {+(Identifier)+})+}\n        {+(Empty)+})+})+}\n    {+(For\n      {+(Empty)+}\n      {+(LessThan\n        {+(Integer)+}\n        {+(Integer)+})+}\n      {+(Empty)+}\n      {+(Call\n        {+(Identifier)+}\n        {+(Statements)+}\n        {+(Empty)+})+})+}\n    {+(ForEach\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(Statements)+})+}\n    {-(For\n      {-(LessThan\n        {-(Identifier)-}\n        {-(Integer)-})-}\n      {-(PostIncrement\n        {-(Identifier)-})-}\n      {-(Empty)-}\n      {-(Statements\n        {-(Call\n          {-(Identifier)-}\n          {-(Statements)-}\n          {-(Empty)-})-}\n        {-(Continue\n          {-(Identifier)-})-})-})-}\n    {-(For\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Statements\n        {-(Call\n          {-(Identifier)-}\n          {-(Statements)-}\n          {-(Empty)-})-}\n        {-(Continue\n          {-(Empty)-})-})-})-}\n    {-(ForEach\n      {-(Identifier)-}\n      {-(Identifier)-}\n      {-(Statements\n        {-(Call\n          {-(Identifier)-}\n          {-(Identifier)-}\n          {-(Empty)-})-}\n        {-(Break\n          {-(Empty)-})-})-})-}\n    {-(ForEach\n      {-(Statements\n        {-(Identifier)-}\n        {-(Identifier)-})-}\n      {-(Identifier)-}\n      {-(Call\n        {-(Identifier)-}\n        {-(Statements\n          {-(Identifier)-}\n          {-(Identifier)-})-}\n        {-(Empty)-})-})-}\n    {-(ForEach\n      {-(Statements\n        {-(Identifier)-}\n        {-(Identifier)-})-}\n      {-(Identifier)-}\n      {-(Call\n        {-(Identifier)-}\n        {-(Statements\n          {-(Identifier)-}\n          {-(Identifier)-})-}\n        {-(Empty)-})-})-}\n    {-(For\n      {-(Empty)-}\n      {-(LessThan\n        {-(Integer)-}\n        {-(Integer)-})-}\n      {-(Empty)-}\n      {-(Call\n        {-(Identifier)-}\n        {-(Statements)-}\n        {-(Empty)-})-})-}\n    {-(ForEach\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(Statements)-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/for-statements.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (For\n        (Empty)\n        (Empty)\n        (Empty)\n        (Statements\n          (Call\n            (Identifier)\n            (Statements)\n            (Empty))\n          (Goto\n            (Identifier))))\n    {+(For\n      {+(Assignment\n        {+(Identifier)+}\n        {+(Integer)+})+}\n      {+(LessThan\n        {+(Identifier)+}\n        {+(Integer)+})+}\n      {+(PostIncrement\n        {+(Identifier)+})+}\n      {+(Statements\n        {+(Call\n          {+(Identifier)+}\n          {+(Statements)+}\n          {+(Empty)+})+}\n        {+(Break\n          {+(Identifier)+})+})+})+}\n    {+(For\n      {+(LessThan\n        {+(Identifier)+}\n        {+(Integer)+})+}\n      {+(PostIncrement\n        {+(Identifier)+})+}\n      {+(Empty)+}\n      {+(Statements\n        {+(Call\n          {+(Identifier)+}\n          {+(Statements)+}\n          {+(Empty)+})+}\n        {+(Continue\n          {+(Identifier)+})+})+})+}\n    {+(For\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Statements\n        {+(Call\n          {+(Identifier)+}\n          {+(Statements)+}\n          {+(Empty)+})+}\n        {+(Continue\n          {+(Empty)+})+})+})+}\n      (ForEach\n        (Identifier)\n        (Identifier)\n        (Statements\n          (Call\n            (Identifier)\n          {+(Identifier)+}\n          {-(Statements)-}\n            (Empty))\n          (Break\n          { (Identifier)\n          ->(Empty) })))\n    {+(ForEach\n      {+(Statements\n        {+(Identifier)+}\n        {+(Identifier)+})+}\n      {+(Identifier)+}\n      {+(Call\n        {+(Identifier)+}\n        {+(Statements\n          {+(Identifier)+}\n          {+(Identifier)+})+}\n        {+(Empty)+})+})+}\n    {+(ForEach\n      {+(Statements\n        {+(Identifier)+}\n        {+(Identifier)+})+}\n      {+(Identifier)+}\n      {+(Call\n        {+(Identifier)+}\n        {+(Statements\n          {+(Identifier)+}\n          {+(Identifier)+})+}\n        {+(Empty)+})+})+}\n    {+(For\n      {+(Empty)+}\n      {+(LessThan\n        {+(Integer)+}\n        {+(Integer)+})+}\n      {+(Empty)+}\n      {+(Call\n        {+(Identifier)+}\n        {+(Statements)+}\n        {+(Empty)+})+})+}\n    {+(ForEach\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(Statements)+})+}\n    {-(For\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Statements\n        {-(Call\n          {-(Identifier)-}\n          {-(Statements)-}\n          {-(Empty)-})-}\n        {-(Continue\n          {-(Identifier)-})-})-})-}\n    {-(For\n      {-(LessThan\n        {-(Identifier)-}\n        {-(Integer)-})-}\n      {-(PostIncrement\n        {-(Identifier)-})-}\n      {-(Empty)-}\n      {-(Statements\n        {-(Call\n          {-(Identifier)-}\n          {-(Statements)-}\n          {-(Empty)-})-}\n        {-(Continue\n          {-(Empty)-})-})-})-}\n    {-(For\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Statements\n        {-(Call\n          {-(Identifier)-}\n          {-(Identifier)-}\n          {-(Empty)-})-}\n        {-(Break\n          {-(Empty)-})-})-})-}\n    {-(ForEach\n      {-(Statements\n        {-(Identifier)-}\n        {-(Identifier)-})-}\n      {-(Identifier)-}\n      {-(Call\n        {-(Identifier)-}\n        {-(Statements\n          {-(Identifier)-}\n          {-(Identifier)-})-}\n        {-(Empty)-})-})-}\n    {-(ForEach\n      {-(Statements\n        {-(Identifier)-}\n        {-(Identifier)-})-}\n      {-(Identifier)-}\n      {-(Call\n        {-(Identifier)-}\n        {-(Statements\n          {-(Identifier)-}\n          {-(Identifier)-})-}\n        {-(Empty)-})-})-}\n    {-(For\n      {-(Empty)-}\n      {-(LessThan\n        {-(Integer)-}\n        {-(Integer)-})-}\n      {-(Empty)-}\n      {-(Call\n        {-(Identifier)-}\n        {-(Statements)-}\n        {-(Empty)-})-})-}\n    {-(ForEach\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(Statements)-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/for-statements.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ForStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"a\")) \n                    (ArgumentList))))) \n            (Statement \n              (GotoStatement \n                (LabelName \"loop\")))))) \n      (Statement \n        (ForStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"a\")) \n                    (ArgumentList))))) \n            (Statement \n              (BreakStatement \n                (LabelName \"loop\")))) \n          (ForClause \n            (SimpleStatement \n              (ShortVarDeclaration \n                (ExpressionList \n                  (Expression \n                    (Identifier \"i\"))) \n                (ExpressionList \n                  (Expression \n                    (IntLiteral \"0\"))))) \n            (Expression \n              (BinaryExpression \n                (Token) \n                (Expression \n                  (Identifier \"i\")) \n                (Expression \n                  (IntLiteral \"5\")))) \n            (SimpleStatement \n              (IncStatement \n                (Expression \n                  (Identifier \"i\"))))))) \n      (Statement \n        (ForStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"a\")) \n                    (ArgumentList))))) \n            (Statement \n              (ContinueStatement \n                (LabelName \"loop2\")))) \n          (ForClause \n            (Expression \n              (BinaryExpression \n                (Token) \n                (Expression \n                  (Identifier \"i\")) \n                (Expression \n                  (IntLiteral \"10\")))) \n            (SimpleStatement \n              (IncStatement \n                (Expression \n                  (Identifier \"i\"))))))) \n      (Statement \n        (ForStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"a\")) \n                    (ArgumentList))))) \n            (Statement \n              (ContinueStatement))) \n          (ForClause))) \n      (Statement \n        (ForStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"a\")) \n                    (ArgumentList \n                      (Expression \n                        (Identifier \"x\"))))))) \n            (Statement \n              (BreakStatement))) \n          (RangeClause \n            (ExpressionList \n              (Expression \n                (Identifier \"x\"))) \n            (Expression \n              (Identifier \"y\"))))) \n      (Statement \n        (ForStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"g\")) \n                    (ArgumentList \n                      (Expression \n                        (Identifier \"i\")) \n                      (Expression \n                        (Identifier \"s\")))))))) \n          (RangeClause \n            (ExpressionList \n              (Expression \n                (Identifier \"i\")) \n              (Expression \n                (Identifier \"s\"))) \n            (Expression \n              (Identifier \"a\"))))) \n      (Statement \n        (ForStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"h\")) \n                    (ArgumentList \n                      (Expression \n                        (Identifier \"key\")) \n                      (Expression \n                        (Identifier \"val\")))))))) \n          (RangeClause \n            (ExpressionList \n              (Expression \n                (Identifier \"key\")) \n              (Expression \n                (Identifier \"val\"))) \n            (Expression \n              (Identifier \"m\"))))) \n      (Statement \n        (ForStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"i\")) \n                    (ArgumentList)))))) \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (IntLiteral \"1\")) \n              (Expression \n                (IntLiteral \"2\")))))) \n      (Statement \n        (ForStatement \n          (Block) \n          (RangeClause \n            (Expression \n              (Identifier \"ch\")))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/for-statements.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ForStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"a\")) \n                    (ArgumentList))))) \n            (Statement \n              (GotoStatement \n                (LabelName \"loop\")))) \n          (ForClause))) \n      (Statement \n        (ForStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"a\")) \n                    (ArgumentList))))) \n            (Statement \n              (BreakStatement \n                (LabelName \"loop\")))) \n          (RangeClause \n            (ExpressionList \n              (Expression \n                (Identifier \"x\"))) \n            (Expression \n              (Identifier \"y\"))))) \n      (Statement \n        (ForStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"a\")) \n                    (ArgumentList))))) \n            (Statement \n              (ContinueStatement \n                (LabelName \"loop2\")))) \n          (ForClause))) \n      (Statement \n        (ForStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"a\")) \n                    (ArgumentList))))) \n            (Statement \n              (ContinueStatement))) \n          (ForClause \n            (Expression \n              (BinaryExpression \n                (Token) \n                (Expression \n                  (Identifier \"i\")) \n                (Expression \n                  (IntLiteral \"10\")))) \n            (SimpleStatement \n              (IncStatement \n                (Expression \n                  (Identifier \"i\"))))))) \n      (Statement \n        (ForStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"a\")) \n                    (ArgumentList \n                      (Expression \n                        (Identifier \"x\"))))))) \n            (Statement \n              (BreakStatement))))) \n      (Statement \n        (ForStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"g\")) \n                    (ArgumentList \n                      (Expression \n                        (Identifier \"i\")) \n                      (Expression \n                        (Identifier \"s\")))))))) \n          (RangeClause \n            (ExpressionList \n              (Expression \n                (Identifier \"s\")) \n              (Expression \n                (Identifier \"i\"))) \n            (Expression \n              (Identifier \"b\"))))) \n      (Statement \n        (ForStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"h\")) \n                    (ArgumentList \n                      (Expression \n                        (Identifier \"k\")) \n                      (Expression \n                        (Identifier \"v\")))))))) \n          (RangeClause \n            (ExpressionList \n              (Expression \n                (Identifier \"k\")) \n              (Expression \n                (Identifier \"v\"))) \n            (Expression \n              (Identifier \"m\"))))) \n      (Statement \n        (ForStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"j\")) \n                    (ArgumentList)))))) \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (IntLiteral \"2\")) \n              (Expression \n                (IntLiteral \"1\")))))) \n      (Statement \n        (ForStatement \n          (Block) \n          (RangeClause \n            (Expression \n              (Identifier \"b\")))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/function-declarations.A.go",
    "content": "package main\n\nfunc main()                        {}\nfunc f1()                          {}\nfunc f2(a int, b, c, d string) int {}\nfunc f2() (int, error)             {}\nfunc f2() (result int, err error)  {}\nfunc lockedOSThread() bool\nfunc getcontext(c *u) /* int32 */ {}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/function-declarations.B.go",
    "content": "package main\n\nfunc main()                        {}\nfunc fa()                          {}\nfunc fb(a int, b, c, d string) int {}\nfunc fc() (int, error)             {}\nfunc fd() (result int, err error)  {}\nfunc fe() ()                       {;}\nfunc lockOSThread() int\nfunc setcontext(c *u) /* int32 */ {}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/function-declarations.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements))\n  (Function\n  { (Identifier)\n  ->(Identifier) }\n    (Statements))\n  (Function\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Identifier)\n      (Identifier))\n    (Statements\n      (Identifier)\n      (Identifier)\n      (Identifier)\n      (Identifier))\n    (Statements))\n  (Function\n    (Statements\n      (Statements\n        (Identifier))\n      (Statements\n        (Identifier)))\n  { (Identifier)\n  ->(Identifier) }\n    (Statements))\n  (Function\n    (Statements\n      (Statements\n        (Identifier)\n        (Identifier))\n      (Statements\n        (Identifier)\n        (Identifier)))\n  { (Identifier)\n  ->(Identifier) }\n    (Statements))\n  (Function\n  {+(Statements)+}\n  {-(Identifier)-}\n  { (Identifier)\n  ->(Identifier) }\n  { (Empty)\n  ->(NoOp\n    {+(Empty)+}) })\n{+(Function\n  {+(Identifier)+}\n  {+(Identifier)+}\n  {+(Empty)+})+}\n  (Function\n    (Context\n      (Comment)\n      (Empty))\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Identifier)\n      (Pointer\n        (Identifier)))\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/function-declarations.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements))\n  (Function\n  { (Identifier)\n  ->(Identifier) }\n    (Statements))\n  (Function\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Identifier)\n      (Identifier))\n    (Statements\n      (Identifier)\n      (Identifier)\n      (Identifier)\n      (Identifier))\n    (Statements))\n  (Function\n    (Statements\n      (Statements\n        (Identifier))\n      (Statements\n        (Identifier)))\n  { (Identifier)\n  ->(Identifier) }\n    (Statements))\n  (Function\n    (Statements\n      (Statements\n        (Identifier)\n        (Identifier))\n      (Statements\n        (Identifier)\n        (Identifier)))\n  { (Identifier)\n  ->(Identifier) }\n    (Statements))\n  (Function\n  {+(Identifier)+}\n  {-(Statements)-}\n  { (Identifier)\n  ->(Identifier) }\n  { (NoOp\n    {-(Empty)-})\n  ->(Empty) })\n{+(Function\n  {+(Context\n    {+(Comment)+}\n    {+(Empty)+})+}\n  {+(Identifier)+}\n  {+(Statements\n    {+(Identifier)+}\n    {+(Pointer\n      {+(Identifier)+})+})+}\n  {+(Statements)+})+}\n{-(Function\n  {-(Identifier)-}\n  {-(Identifier)-}\n  {-(Empty)-})-}\n{-(Function\n  {-(Context\n    {-(Comment)-}\n    {-(Empty)-})-}\n  {-(Identifier)-}\n  {-(Statements\n    {-(Identifier)-}\n    {-(Pointer\n      {-(Identifier)-})-})-}\n  {-(Statements)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/function-declarations.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"main\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"f1\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (Block) \n    (SimpleType \n      (TypeIdentifier \"int\")) \n    (Identifier \"f2\") \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"a\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"int\")))) \n      (ParameterDeclaration \n        (Identifier \"b\") \n        (Token) \n        (Identifier \"c\") \n        (Token) \n        (Identifier \"d\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"string\")))))) \n  (FunctionDeclaration \n    (Block) \n    (ParameterList \n      (ParameterDeclaration \n        (Type \n          (SimpleType \n            (TypeIdentifier \"int\")))) \n      (ParameterDeclaration \n        (Type \n          (SimpleType \n            (TypeIdentifier \"error\"))))) \n    (Identifier \"f2\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (Block) \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"result\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"int\")))) \n      (ParameterDeclaration \n        (Identifier \"err\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"error\"))))) \n    (Identifier \"f2\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (SimpleType \n      (TypeIdentifier \"bool\")) \n    (Identifier \"lockedOSThread\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"getcontext\") \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"c\") \n        (Type \n          (SimpleType \n            (PointerType \n              (Type \n                (SimpleType \n                  (TypeIdentifier \"u\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/function-declarations.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"main\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"fa\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (Block) \n    (SimpleType \n      (TypeIdentifier \"int\")) \n    (Identifier \"fb\") \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"a\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"int\")))) \n      (ParameterDeclaration \n        (Identifier \"b\") \n        (Token) \n        (Identifier \"c\") \n        (Token) \n        (Identifier \"d\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"string\")))))) \n  (FunctionDeclaration \n    (Block) \n    (ParameterList \n      (ParameterDeclaration \n        (Type \n          (SimpleType \n            (TypeIdentifier \"int\")))) \n      (ParameterDeclaration \n        (Type \n          (SimpleType \n            (TypeIdentifier \"error\"))))) \n    (Identifier \"fc\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (Block) \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"result\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"int\")))) \n      (ParameterDeclaration \n        (Identifier \"err\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"error\"))))) \n    (Identifier \"fd\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (EmptyStatement \";\"))) \n    (ParameterList) \n    (Identifier \"fe\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (SimpleType \n      (TypeIdentifier \"int\")) \n    (Identifier \"lockOSThread\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"setcontext\") \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"c\") \n        (Type \n          (SimpleType \n            (PointerType \n              (Type \n                (SimpleType \n                  (TypeIdentifier \"u\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/function-literals.A.go",
    "content": "package main\n\nfunc main() {\nconst s1 = func(s string) (int, int) {\nreturn 1, 2\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/function-literals.B.go",
    "content": "package main\n\nfunc main() {\nconst s1 = func(b int) (string, string) {\nreturn 1, 2\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/function-literals.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Assignment\n      (Identifier)\n      (Function\n        (Statements\n          (Statements\n          { (Identifier)\n          ->(Identifier) })\n          (Statements\n          { (Identifier)\n          ->(Identifier) }))\n        (Empty)\n        (Statements\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) })\n        (Return\n          (Statements\n            (Integer)\n            (Integer)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/function-literals.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Assignment\n      (Identifier)\n      (Function\n        (Statements\n          (Statements\n          { (Identifier)\n          ->(Identifier) })\n          (Statements\n          { (Identifier)\n          ->(Identifier) }))\n        (Empty)\n        (Statements\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) })\n        (Return\n          (Statements\n            (Integer)\n            (Integer)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/function-literals.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (FuncLiteral \n                  (Block \n                    (Statement \n                      (ReturnStatement \n                        (ExpressionList \n                          (Expression \n                            (IntLiteral \"1\")) \n                          (Expression \n                            (IntLiteral \"2\")))))) \n                  (ParameterList \n                    (ParameterDeclaration \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"int\")))) \n                    (ParameterDeclaration \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"int\"))))) \n                  (ParameterList \n                    (ParameterDeclaration \n                      (Identifier \"s\") \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"string\")))))))) \n            (Identifier \"s1\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/function-literals.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (FuncLiteral \n                  (Block \n                    (Statement \n                      (ReturnStatement \n                        (ExpressionList \n                          (Expression \n                            (IntLiteral \"1\")) \n                          (Expression \n                            (IntLiteral \"2\")))))) \n                  (ParameterList \n                    (ParameterDeclaration \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"string\")))) \n                    (ParameterDeclaration \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"string\"))))) \n                  (ParameterList \n                    (ParameterDeclaration \n                      (Identifier \"b\") \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"int\")))))))) \n            (Identifier \"s1\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/function-types.A.go",
    "content": "package main\n\nfunc main() {\n\ttype (\n\t\ta func(int) int\n\t\tb func(int, string) (bool, error)\n\t)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/function-types.B.go",
    "content": "package main\n\nfunc main() {\n\ttype (\n\t\tx func(string) string\n\t\ty func(string, int) (chan x, error)\n\t)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/function-types.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Type\n      { (Identifier)\n      ->(Identifier) }\n        (Function\n          (Statements\n          { (Identifier)\n          ->(Identifier) })\n        { (Identifier)\n        ->(Identifier) }))\n      (Type\n      { (Identifier)\n      ->(Identifier) }\n        (Function\n        {-(Statements\n          {-(Identifier)-})-}\n          (Statements\n            (Identifier))\n        {+(Statements\n          {+(Identifier)+})+}\n          (Statements\n            (Statements\n            {+(BidirectionalChannel\n              {+(Identifier)+})+}\n            {-(Identifier)-})\n            (Statements\n              (Identifier))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/function-types.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Type\n      { (Identifier)\n      ->(Identifier) }\n        (Function\n          (Statements\n          { (Identifier)\n          ->(Identifier) })\n        { (Identifier)\n        ->(Identifier) }))\n      (Type\n      { (Identifier)\n      ->(Identifier) }\n        (Function\n        {-(Statements\n          {-(Identifier)-})-}\n          (Statements\n            (Identifier))\n        {+(Statements\n          {+(Identifier)+})+}\n          (Statements\n            (Statements\n            {+(Identifier)+}\n            {-(BidirectionalChannel\n              {-(Identifier)-})-})\n            (Statements\n              (Identifier))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/function-types.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"a\") \n            (Type \n              (SimpleType \n                (FunctionType \n                  (SimpleType \n                    (TypeIdentifier \"int\")) \n                  (ParameterList \n                    (ParameterDeclaration \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"int\"))))))))) \n          (TypeSpec \n            (TypeIdentifier \"b\") \n            (Type \n              (SimpleType \n                (FunctionType \n                  (ParameterList \n                    (ParameterDeclaration \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"bool\")))) \n                    (ParameterDeclaration \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"error\"))))) \n                  (ParameterList \n                    (ParameterDeclaration \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"int\")))) \n                    (ParameterDeclaration \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"string\")))))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/function-types.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"x\") \n            (Type \n              (SimpleType \n                (FunctionType \n                  (SimpleType \n                    (TypeIdentifier \"string\")) \n                  (ParameterList \n                    (ParameterDeclaration \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"string\"))))))))) \n          (TypeSpec \n            (TypeIdentifier \"y\") \n            (Type \n              (SimpleType \n                (FunctionType \n                  (ParameterList \n                    (ParameterDeclaration \n                      (Type \n                        (SimpleType \n                          (ChannelType \n                            (Type \n                              (SimpleType \n                                (TypeIdentifier \"x\"))))))) \n                    (ParameterDeclaration \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"error\"))))) \n                  (ParameterList \n                    (ParameterDeclaration \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"string\")))) \n                    (ParameterDeclaration \n                      (Type \n                        (SimpleType \n                          (TypeIdentifier \"int\")))))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/go-and-defer-statements.A.go",
    "content": "package main\n\nfunc main() {\ndefer x.y()\ngo x.y()\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/go-and-defer-statements.B.go",
    "content": "package main\n\nfunc main() {\ndefer a.b()\ngo c.d()\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/go-and-defer-statements.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Defer\n        (Call\n          (MemberAccess\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) })\n          (Statements)\n          (Empty)))\n      (Go\n        (Call\n          (MemberAccess\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) })\n          (Statements)\n          (Empty))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/go-and-defer-statements.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Defer\n        (Call\n          (MemberAccess\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) })\n          (Statements)\n          (Empty)))\n      (Go\n        (Call\n          (MemberAccess\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) })\n          (Statements)\n          (Empty))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/go-and-defer-statements.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (DeferStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (SelectorExpression \n                  (FieldIdentifier \"y\") \n                  (Expression \n                    (Identifier \"x\")))) \n              (ArgumentList))))) \n      (Statement \n        (GoStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (SelectorExpression \n                  (FieldIdentifier \"y\") \n                  (Expression \n                    (Identifier \"x\")))) \n              (ArgumentList)))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/go-and-defer-statements.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (DeferStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (SelectorExpression \n                  (FieldIdentifier \"b\") \n                  (Expression \n                    (Identifier \"a\")))) \n              (ArgumentList))))) \n      (Statement \n        (GoStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (SelectorExpression \n                  (FieldIdentifier \"d\") \n                  (Expression \n                    (Identifier \"c\")))) \n              (ArgumentList)))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/grouped-import-declarations.A.go",
    "content": "package main\n\nimport (\n  \"net/http\"\n  . \"some/dsl\"\n  alias \"some/package\"\n)\n\nfunc main() {\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/grouped-import-declarations.B.go",
    "content": "package main\n\nimport (\n\"net/socket\"\n  . \"types/dsl\"\n  alias \"awesome/package\"\n)\n\nfunc main() {\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/grouped-import-declarations.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Statements\n  {+(QualifiedImport\n    {+(Identifier)+})+}\n  {+(Import\n    {+(TextElement)+})+}\n  {+(QualifiedImport\n    {+(Identifier)+})+}\n  {-(QualifiedImport\n    {-(Identifier)-})-}\n  {-(Import\n    {-(TextElement)-})-}\n  {-(QualifiedImport\n    {-(Identifier)-})-})\n  (Function\n    (Identifier)\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/grouped-import-declarations.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Statements\n  {+(QualifiedImport\n    {+(Identifier)+})+}\n  {+(Import\n    {+(TextElement)+})+}\n  {+(QualifiedImport\n    {+(Identifier)+})+}\n  {-(QualifiedImport\n    {-(Identifier)-})-}\n  {-(Import\n    {-(TextElement)-})-}\n  {-(QualifiedImport\n    {-(Identifier)-})-})\n  (Function\n    (Identifier)\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/grouped-import-declarations.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (ImportDeclaration \n    (ImportSpecList \n      (ImportSpec \n        (InterpretedStringLiteral)) \n      (ImportSpec \n        (InterpretedStringLiteral) \n        (Dot \".\")) \n      (ImportSpec \n        (InterpretedStringLiteral) \n        (PackageIdentifier \"alias\")))) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/grouped-import-declarations.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (ImportDeclaration \n    (ImportSpecList \n      (ImportSpec \n        (InterpretedStringLiteral)) \n      (ImportSpec \n        (InterpretedStringLiteral) \n        (Dot \".\")) \n      (ImportSpec \n        (InterpretedStringLiteral) \n        (PackageIdentifier \"alias\")))) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/grouped-var-declarations.A.go",
    "content": "package main\n\nfunc main() {\nvar (\nzero = 0\none = 1\n)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/grouped-var-declarations.B.go",
    "content": "package main\n\nfunc main() {\nvar (\na = 0\nb = 1\n)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/grouped-var-declarations.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n      { (Identifier)\n      ->(Identifier) }\n        (Integer))\n      (Assignment\n      { (Identifier)\n      ->(Identifier) }\n        (Integer)))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/grouped-var-declarations.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n      { (Identifier)\n      ->(Identifier) }\n        (Integer))\n      (Assignment\n      { (Identifier)\n      ->(Identifier) }\n        (Integer)))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/grouped-var-declarations.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (VarDeclaration \n          (VarSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"0\"))) \n            (Identifier \"zero\")) \n          (VarSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"1\"))) \n            (Identifier \"one\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/grouped-var-declarations.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (VarDeclaration \n          (VarSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"0\"))) \n            (Identifier \"a\")) \n          (VarSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"1\"))) \n            (Identifier \"b\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/if-statements.A.go",
    "content": "package main\n\nfunc main() {\nif a() {\nb()\n}\nif a := b(); c {\nd()\n}\nif a() {\nb()\n} else {\nc()\n}\nif num := 9; num < 0 {\nd()\n} else if num < 10 {\ne()\n} else // comment\nif f() {\n  g()\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/if-statements.B.go",
    "content": "package main\n\nfunc main() {\nif x() {\nb()\n}\nif y := b(); c {\nd()\n}\nif z() {\nb()\n} else {\nc()\n}\nif num := 10; num < 0 {\nf()\n} else // comment\n if num < 100 {\ng()\n} else {\nh()\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/if-statements.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (If\n        (Statements\n          (Call\n          { (Identifier)\n          ->(Identifier) }\n            (Statements)\n            (Empty)))\n        (Call\n          (Identifier)\n          (Statements)\n          (Empty))\n        (Empty))\n      (If\n        (Statements\n          (Assignment\n          { (Identifier)\n          ->(Identifier) }\n            (Call\n              (Identifier)\n              (Statements)\n              (Empty)))\n          (Identifier))\n        (Call\n          (Identifier)\n          (Statements)\n          (Empty))\n        (Empty))\n      (If\n        (Statements\n          (Call\n          { (Identifier)\n          ->(Identifier) }\n            (Statements)\n            (Empty)))\n        (Call\n          (Identifier)\n          (Statements)\n          (Empty))\n        (Call\n          (Identifier)\n          (Statements)\n          (Empty)))\n      (If\n        (Statements\n          (Assignment\n            (Identifier)\n          { (Integer)\n          ->(Integer) })\n          (LessThan\n            (Identifier)\n            (Integer)))\n        (Call\n        { (Identifier)\n        ->(Identifier) }\n          (Statements)\n          (Empty))\n      {+(Context\n        {+(Comment)+}\n          (If\n            (Statements\n              (LessThan\n                (Identifier)\n              { (Integer)\n              ->(Integer) }))\n            (Call\n            { (Identifier)\n            ->(Identifier) }\n              (Statements)\n              (Empty))\n          { (Context\n            {-(Comment)-}\n            {-(If\n              {-(Statements\n                {-(Call\n                  {-(Identifier)-}\n                  {-(Statements)-}\n                  {-(Empty)-})-})-}\n              {-(Call\n                {-(Identifier)-}\n                {-(Statements)-}\n                {-(Empty)-})-}\n              {-(Empty)-})-})\n          ->(Call\n            {+(Identifier)+}\n            {+(Statements)+}\n            {+(Empty)+}) }))+}))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/if-statements.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (If\n        (Statements\n          (Call\n          { (Identifier)\n          ->(Identifier) }\n            (Statements)\n            (Empty)))\n        (Call\n          (Identifier)\n          (Statements)\n          (Empty))\n        (Empty))\n      (If\n        (Statements\n          (Assignment\n          { (Identifier)\n          ->(Identifier) }\n            (Call\n              (Identifier)\n              (Statements)\n              (Empty)))\n          (Identifier))\n        (Call\n          (Identifier)\n          (Statements)\n          (Empty))\n        (Empty))\n      (If\n        (Statements\n          (Call\n          { (Identifier)\n          ->(Identifier) }\n            (Statements)\n            (Empty)))\n        (Call\n          (Identifier)\n          (Statements)\n          (Empty))\n        (Call\n          (Identifier)\n          (Statements)\n          (Empty)))\n      (If\n        (Statements\n          (Assignment\n            (Identifier)\n          { (Integer)\n          ->(Integer) })\n          (LessThan\n            (Identifier)\n            (Integer)))\n        (Call\n        { (Identifier)\n        ->(Identifier) }\n          (Statements)\n          (Empty))\n      {-(Context\n        {-(Comment)-}\n          (If\n            (Statements\n              (LessThan\n                (Identifier)\n              { (Integer)\n              ->(Integer) }))\n            (Call\n            { (Identifier)\n            ->(Identifier) }\n              (Statements)\n              (Empty))\n          { (Call\n            {-(Identifier)-}\n            {-(Statements)-}\n            {-(Empty)-})\n          ->(Context\n            {+(Comment)+}\n            {+(If\n              {+(Statements\n                {+(Call\n                  {+(Identifier)+}\n                  {+(Statements)+}\n                  {+(Empty)+})+})+}\n              {+(Call\n                {+(Identifier)+}\n                {+(Statements)+}\n                {+(Empty)+})+}\n              {+(Empty)+})+}) }))-}))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/if-statements.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (IfStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"b\")) \n                    (ArgumentList)))))) \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"a\")) \n              (ArgumentList))))) \n      (Statement \n        (IfStatement \n          (SimpleStatement \n            (ShortVarDeclaration \n              (ExpressionList \n                (Expression \n                  (Identifier \"a\"))) \n              (ExpressionList \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"b\")) \n                    (ArgumentList)))))) \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"d\")) \n                    (ArgumentList)))))) \n          (Expression \n            (Identifier \"c\")))) \n      (Statement \n        (IfStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"c\")) \n                    (ArgumentList)))))) \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"b\")) \n                    (ArgumentList)))))) \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"a\")) \n              (ArgumentList))))) \n      (Statement \n        (IfStatement \n          (IfStatement \n            (IfStatement \n              (Block \n                (Statement \n                  (SimpleStatement \n                    (Expression \n                      (CallExpression \n                        (Expression \n                          (Identifier \"g\")) \n                        (ArgumentList)))))) \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"f\")) \n                  (ArgumentList)))) \n            (Block \n              (Statement \n                (SimpleStatement \n                  (Expression \n                    (CallExpression \n                      (Expression \n                        (Identifier \"e\")) \n                      (ArgumentList)))))) \n            (Expression \n              (BinaryExpression \n                (Token) \n                (Expression \n                  (Identifier \"num\")) \n                (Expression \n                  (IntLiteral \"10\"))))) \n          (SimpleStatement \n            (ShortVarDeclaration \n              (ExpressionList \n                (Expression \n                  (Identifier \"num\"))) \n              (ExpressionList \n                (Expression \n                  (IntLiteral \"9\"))))) \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"d\")) \n                    (ArgumentList)))))) \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"num\")) \n              (Expression \n                (IntLiteral \"0\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/if-statements.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (IfStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"b\")) \n                    (ArgumentList)))))) \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"x\")) \n              (ArgumentList))))) \n      (Statement \n        (IfStatement \n          (SimpleStatement \n            (ShortVarDeclaration \n              (ExpressionList \n                (Expression \n                  (Identifier \"y\"))) \n              (ExpressionList \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"b\")) \n                    (ArgumentList)))))) \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"d\")) \n                    (ArgumentList)))))) \n          (Expression \n            (Identifier \"c\")))) \n      (Statement \n        (IfStatement \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"c\")) \n                    (ArgumentList)))))) \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"b\")) \n                    (ArgumentList)))))) \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"z\")) \n              (ArgumentList))))) \n      (Statement \n        (IfStatement \n          (IfStatement \n            (Block \n              (Statement \n                (SimpleStatement \n                  (Expression \n                    (CallExpression \n                      (Expression \n                        (Identifier \"h\")) \n                      (ArgumentList)))))) \n            (Block \n              (Statement \n                (SimpleStatement \n                  (Expression \n                    (CallExpression \n                      (Expression \n                        (Identifier \"g\")) \n                      (ArgumentList)))))) \n            (Expression \n              (BinaryExpression \n                (Token) \n                (Expression \n                  (Identifier \"num\")) \n                (Expression \n                  (IntLiteral \"100\"))))) \n          (SimpleStatement \n            (ShortVarDeclaration \n              (ExpressionList \n                (Expression \n                  (Identifier \"num\"))) \n              (ExpressionList \n                (Expression \n                  (IntLiteral \"10\"))))) \n          (Block \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"f\")) \n                    (ArgumentList)))))) \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"num\")) \n              (Expression \n                (IntLiteral \"0\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/imaginary-literals.A.go",
    "content": "package main\n\nfunc main() {\nconst (\na = 01i\nb = 1.e+100i\n)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/imaginary-literals.B.go",
    "content": "package main\n\nfunc main() {\nconst (\na = 02i\nb = 1.e+103i\n)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/imaginary-literals.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n        (Identifier)\n      { (Complex)\n      ->(Complex) })\n      (Assignment\n        (Identifier)\n      { (Complex)\n      ->(Complex) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/imaginary-literals.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n        (Identifier)\n      { (Complex)\n      ->(Complex) })\n      (Assignment\n        (Identifier)\n      { (Complex)\n      ->(Complex) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/imaginary-literals.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (ImaginaryLiteral \"01i\"))) \n            (Identifier \"a\")) \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (ImaginaryLiteral \"1.e+100i\"))) \n            (Identifier \"b\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/imaginary-literals.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (ImaginaryLiteral \"02i\"))) \n            (Identifier \"a\")) \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (ImaginaryLiteral \"1.e+103i\"))) \n            (Identifier \"b\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/import-statements.A.go",
    "content": "package main\n\nimport (\n\t// avoid imported and not used errors\n\t// \"io/ioutil\"\n\t\"net/http\"\n\t// \"os\"\n)\n\nfunc main() {}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/import-statements.B.go",
    "content": "package main\n\nimport (\n\t// avoid imported and not used errors\n\t// \"io/ioutil\"\n\t\"http\"\n\t// \"os\"\n)\n\nfunc main() {}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/import-statements.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Statements\n    (Comment)\n    (Comment)\n  { (QualifiedImport\n    {-(Identifier)-})\n  ->(QualifiedImport\n    {+(Identifier)+}) }\n    (Comment))\n  (Function\n    (Identifier)\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/import-statements.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Statements\n    (Comment)\n    (Comment)\n  { (QualifiedImport\n    {-(Identifier)-})\n  ->(QualifiedImport\n    {+(Identifier)+}) }\n    (Comment))\n  (Function\n    (Identifier)\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/import-statements.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (ImportDeclaration \n    (ImportSpecList \n      (ImportSpec \n        (InterpretedStringLiteral)))) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/import-statements.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (ImportDeclaration \n    (ImportSpecList \n      (ImportSpec \n        (InterpretedStringLiteral)))) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/increment-decrement-statements.A.go",
    "content": "package main\n\nfunc main() {\ni++\nj--\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/increment-decrement-statements.B.go",
    "content": "package main\n\nfunc main() {\nfoo++\nx++\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/increment-decrement-statements.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (PostIncrement\n      { (Identifier)\n      ->(Identifier) })\n    {+(PostIncrement\n      {+(Identifier)+})+}\n    {-(PostDecrement\n      {-(Identifier)-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/increment-decrement-statements.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (PostIncrement\n      { (Identifier)\n      ->(Identifier) })\n    {+(PostDecrement\n      {+(Identifier)+})+}\n    {-(PostIncrement\n      {-(Identifier)-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/increment-decrement-statements.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (IncStatement \n            (Expression \n              (Identifier \"i\"))))) \n      (Statement \n        (SimpleStatement \n          (DecStatement \n            (Expression \n              (Identifier \"j\")))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/increment-decrement-statements.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (IncStatement \n            (Expression \n              (Identifier \"foo\"))))) \n      (Statement \n        (SimpleStatement \n          (IncStatement \n            (Expression \n              (Identifier \"x\")))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/int-literals.A.go",
    "content": "package main\n\nfunc main() {\n\tconst (\n\t\ta = 1\n\t\tb = 2\n\t\tc = 3\n\t)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/int-literals.B.go",
    "content": "package main\n\nfunc main() {\n\tconst (\n\t\ta = 4\n\t\tb = 5\n\t\tc = 6\n\t)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/int-literals.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n        (Identifier)\n      { (Integer)\n      ->(Integer) })\n      (Assignment\n        (Identifier)\n      { (Integer)\n      ->(Integer) })\n      (Assignment\n        (Identifier)\n      { (Integer)\n      ->(Integer) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/int-literals.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n        (Identifier)\n      { (Integer)\n      ->(Integer) })\n      (Assignment\n        (Identifier)\n      { (Integer)\n      ->(Integer) })\n      (Assignment\n        (Identifier)\n      { (Integer)\n      ->(Integer) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/int-literals.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"1\"))) \n            (Identifier \"a\")) \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"2\"))) \n            (Identifier \"b\")) \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"3\"))) \n            (Identifier \"c\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/int-literals.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"4\"))) \n            (Identifier \"a\")) \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"5\"))) \n            (Identifier \"b\")) \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"6\"))) \n            (Identifier \"c\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/interface-types.A.go",
    "content": "package main\n\nfunc main() {\ntype i1 interface {}\ntype i2 interface { io.Reader }\ntype i3 interface {\ni1\nio.Reader\n SomeMethod(s string) error\n}\n// Option is an optional value or context to a transformation, used at pipeline\ntype OptionA interface {\n\tpublic()\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/interface-types.B.go",
    "content": "package main\n\nfunc main() {\ntype j1 interface {}\ntype j2 interface { io.Reader }\ntype j3 interface {\ni1\nio.Reader\n SomeMethod(s string) error\n}\n// Option is an optional value or context to a transformation, used at pipeline\ntype OptionB interface {\n\tprivate()\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/interface-types.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Interface\n            (Statements))))\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Interface\n            (MemberAccess\n              (Identifier)\n              (Identifier)))))\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Interface\n            (Statements\n              (Identifier)\n              (MemberAccess\n                (Identifier)\n                (Identifier))\n              (MethodSignature\n                (Identifier)\n                (Identifier)\n                (Statements\n                  (Identifier)\n                  (Identifier)))))))\n      (Context\n        (Comment)\n        (Statements\n          (Type\n          { (Identifier)\n          ->(Identifier) }\n            (Interface\n              (MethodSignature\n                (Empty)\n              { (Identifier)\n              ->(Identifier) }))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/interface-types.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Interface\n            (Statements))))\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Interface\n            (MemberAccess\n              (Identifier)\n              (Identifier)))))\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Interface\n            (Statements\n              (Identifier)\n              (MemberAccess\n                (Identifier)\n                (Identifier))\n              (MethodSignature\n                (Identifier)\n                (Identifier)\n                (Statements\n                  (Identifier)\n                  (Identifier)))))))\n      (Context\n        (Comment)\n        (Statements\n          (Type\n          { (Identifier)\n          ->(Identifier) }\n            (Interface\n              (MethodSignature\n                (Empty)\n              { (Identifier)\n              ->(Identifier) }))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/interface-types.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"i1\") \n            (Type \n              (SimpleType \n                (InterfaceType \n                  (MethodSpecList))))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"i2\") \n            (Type \n              (SimpleType \n                (InterfaceType \n                  (MethodSpecList \n                    (QualifiedType \n                      (TypeIdentifier \"Reader\") \n                      (PackageIdentifier \"io\"))))))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"i3\") \n            (Type \n              (SimpleType \n                (InterfaceType \n                  (MethodSpecList \n                    (TypeIdentifier \"i1\") \n                    (QualifiedType \n                      (TypeIdentifier \"Reader\") \n                      (PackageIdentifier \"io\")) \n                    (MethodSpec \n                      (SimpleType \n                        (TypeIdentifier \"error\")) \n                      (FieldIdentifier \"SomeMethod\") \n                      (ParameterList \n                        (ParameterDeclaration \n                          (Identifier \"s\") \n                          (Type \n                            (SimpleType \n                              (TypeIdentifier \"string\"))))))))))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"OptionA\") \n            (Type \n              (SimpleType \n                (InterfaceType \n                  (MethodSpecList \n                    (MethodSpec \n                      (FieldIdentifier \"public\") \n                      (ParameterList)))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/interface-types.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"j1\") \n            (Type \n              (SimpleType \n                (InterfaceType \n                  (MethodSpecList))))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"j2\") \n            (Type \n              (SimpleType \n                (InterfaceType \n                  (MethodSpecList \n                    (QualifiedType \n                      (TypeIdentifier \"Reader\") \n                      (PackageIdentifier \"io\"))))))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"j3\") \n            (Type \n              (SimpleType \n                (InterfaceType \n                  (MethodSpecList \n                    (TypeIdentifier \"i1\") \n                    (QualifiedType \n                      (TypeIdentifier \"Reader\") \n                      (PackageIdentifier \"io\")) \n                    (MethodSpec \n                      (SimpleType \n                        (TypeIdentifier \"error\")) \n                      (FieldIdentifier \"SomeMethod\") \n                      (ParameterList \n                        (ParameterDeclaration \n                          (Identifier \"s\") \n                          (Type \n                            (SimpleType \n                              (TypeIdentifier \"string\"))))))))))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"OptionB\") \n            (Type \n              (SimpleType \n                (InterfaceType \n                  (MethodSpecList \n                    (MethodSpec \n                      (FieldIdentifier \"private\") \n                      (ParameterList)))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/label-statements.A.go",
    "content": "package main\n\nfunc main() {\nL: ;  // ';' terminates empty statement => L does not apply to for loop\nL1: { // L1 labels block => L1 does not apply to for loop\n\tfor i := 0; i < 10; i++ {\n\t\tprintln(i);\n\t\tbreak L1;  // comment\n\t}\n}\n{\n  insert:\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/label-statements.B.go",
    "content": "package main\n\nfunc main() {\nM: ;  // ';' terminates empty statement => M does not apply to for loop\nM1: { // M1 labels block => M1 does not apply to for loop\n\tfor i := 0; i < 10; i++ {\n\t\tprintln(i);\n\t\tbreak M1;  // comment\n\t}\n}\n{\n  replacement:\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/label-statements.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Label\n      { (Identifier)\n      ->(Identifier) }\n        (NoOp\n          (Empty)))\n      (Context\n      { (Comment)\n      ->(Comment) }\n        (Label\n        { (Identifier)\n        ->(Identifier) }\n          (Context\n          { (Comment)\n          ->(Comment) }\n            (For\n              (Assignment\n                (Identifier)\n                (Integer))\n              (LessThan\n                (Identifier)\n                (Integer))\n              (PostIncrement\n                (Identifier))\n              (Statements\n                (Call\n                  (Identifier)\n                  (Identifier)\n                  (Empty))\n                (Break\n                { (Identifier)\n                ->(Identifier) })\n                (Context\n                  (Comment)\n                  (Empty)))))))\n      (Label\n      { (Identifier)\n      ->(Identifier) }\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/label-statements.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Label\n      { (Identifier)\n      ->(Identifier) }\n        (NoOp\n          (Empty)))\n      (Context\n      { (Comment)\n      ->(Comment) }\n        (Label\n        { (Identifier)\n        ->(Identifier) }\n          (Context\n          { (Comment)\n          ->(Comment) }\n            (For\n              (Assignment\n                (Identifier)\n                (Integer))\n              (LessThan\n                (Identifier)\n                (Integer))\n              (PostIncrement\n                (Identifier))\n              (Statements\n                (Call\n                  (Identifier)\n                  (Identifier)\n                  (Empty))\n                (Break\n                { (Identifier)\n                ->(Identifier) })\n                (Context\n                  (Comment)\n                  (Empty)))))))\n      (Label\n      { (Identifier)\n      ->(Identifier) }\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/label-statements.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (LabeledStatement \n          (LabelName \"L\") \n          (Statement \n            (EmptyStatement \";\")))) \n      (Statement \n        (LabeledStatement \n          (LabelName \"L1\") \n          (Statement \n            (Block \n              (Statement \n                (ForStatement \n                  (Block \n                    (Statement \n                      (SimpleStatement \n                        (Expression \n                          (CallExpression \n                            (Expression \n                              (Identifier \"println\")) \n                            (ArgumentList \n                              (Expression \n                                (Identifier \"i\"))))))) \n                    (Statement \n                      (BreakStatement \n                        (LabelName \"L1\")))) \n                  (ForClause \n                    (SimpleStatement \n                      (ShortVarDeclaration \n                        (ExpressionList \n                          (Expression \n                            (Identifier \"i\"))) \n                        (ExpressionList \n                          (Expression \n                            (IntLiteral \"0\"))))) \n                    (Expression \n                      (BinaryExpression \n                        (Token) \n                        (Expression \n                          (Identifier \"i\")) \n                        (Expression \n                          (IntLiteral \"10\")))) \n                    (SimpleStatement \n                      (IncStatement \n                        (Expression \n                          (Identifier \"i\"))))))))))) \n      (Statement \n        (Block \n          (Statement \n            (LabeledStatement \n              (LabelName \"insert\")))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/label-statements.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (LabeledStatement \n          (LabelName \"M\") \n          (Statement \n            (EmptyStatement \";\")))) \n      (Statement \n        (LabeledStatement \n          (LabelName \"M1\") \n          (Statement \n            (Block \n              (Statement \n                (ForStatement \n                  (Block \n                    (Statement \n                      (SimpleStatement \n                        (Expression \n                          (CallExpression \n                            (Expression \n                              (Identifier \"println\")) \n                            (ArgumentList \n                              (Expression \n                                (Identifier \"i\"))))))) \n                    (Statement \n                      (BreakStatement \n                        (LabelName \"M1\")))) \n                  (ForClause \n                    (SimpleStatement \n                      (ShortVarDeclaration \n                        (ExpressionList \n                          (Expression \n                            (Identifier \"i\"))) \n                        (ExpressionList \n                          (Expression \n                            (IntLiteral \"0\"))))) \n                    (Expression \n                      (BinaryExpression \n                        (Token) \n                        (Expression \n                          (Identifier \"i\")) \n                        (Expression \n                          (IntLiteral \"10\")))) \n                    (SimpleStatement \n                      (IncStatement \n                        (Expression \n                          (Identifier \"i\"))))))))))) \n      (Statement \n        (Block \n          (Statement \n            (LabeledStatement \n              (LabelName \"replacement\")))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/map-literals.A.go",
    "content": "package main\n\nfunc main() {\nconst s = map[string]string{\n\"hi\": \"hello\",\n\"bye\": \"goodbye\",\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/map-literals.B.go",
    "content": "package main\n\nfunc main() {\nconst s = map[string]int{\n\"foo\": \"bar\",\n\"baz\": \"hello\",\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/map-literals.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Assignment\n      (Identifier)\n      (Composite\n        (Map\n          (Identifier)\n        { (Identifier)\n        ->(Identifier) })\n        (Statements\n          (KeyValue\n            (TextElement)\n            (TextElement))\n          (KeyValue\n            (TextElement)\n            (TextElement)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/map-literals.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Assignment\n      (Identifier)\n      (Composite\n        (Map\n          (Identifier)\n        { (Identifier)\n        ->(Identifier) })\n        (Statements\n          (KeyValue\n            (TextElement)\n            (TextElement))\n          (KeyValue\n            (TextElement)\n            (TextElement)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/map-literals.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (CompositeLiteral \n                  (LiteralValue \n                    (KeyedElement \n                      (Expression \n                        (InterpretedStringLiteral)) \n                      (Expression \n                        (InterpretedStringLiteral))) \n                    (KeyedElement \n                      (Expression \n                        (InterpretedStringLiteral)) \n                      (Expression \n                        (InterpretedStringLiteral)))) \n                  (MapType \n                    (Type \n                      (SimpleType \n                        (TypeIdentifier \"string\"))) \n                    (Type \n                      (SimpleType \n                        (TypeIdentifier \"string\"))))))) \n            (Identifier \"s\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/map-literals.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (CompositeLiteral \n                  (LiteralValue \n                    (KeyedElement \n                      (Expression \n                        (InterpretedStringLiteral)) \n                      (Expression \n                        (InterpretedStringLiteral))) \n                    (KeyedElement \n                      (Expression \n                        (InterpretedStringLiteral)) \n                      (Expression \n                        (InterpretedStringLiteral)))) \n                  (MapType \n                    (Type \n                      (SimpleType \n                        (TypeIdentifier \"int\"))) \n                    (Type \n                      (SimpleType \n                        (TypeIdentifier \"string\"))))))) \n            (Identifier \"s\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/map-types.A.go",
    "content": "package main\n\nfunc main() {\ntype m1 map[string]error\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/map-types.B.go",
    "content": "package main\n\nfunc main() {\ntype m1 map[int]error\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/map-types.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Type\n        (Identifier)\n        (Map\n        { (Identifier)\n        ->(Identifier) }\n          (Identifier))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/map-types.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Type\n        (Identifier)\n        (Map\n        { (Identifier)\n        ->(Identifier) }\n          (Identifier))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/map-types.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"m1\") \n            (Type \n              (SimpleType \n                (MapType \n                  (Type \n                    (SimpleType \n                      (TypeIdentifier \"error\"))) \n                  (Type \n                    (SimpleType \n                      (TypeIdentifier \"string\")))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/map-types.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"m1\") \n            (Type \n              (SimpleType \n                (MapType \n                  (Type \n                    (SimpleType \n                      (TypeIdentifier \"error\"))) \n                  (Type \n                    (SimpleType \n                      (TypeIdentifier \"int\")))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/method-declarations.A.go",
    "content": "package main\n\nfunc main() {}\n\nfunc (s) Method()\n\nfunc (self Person) Equals(other Person) bool {}\n\nfunc (p *Point) Length() float64 {\n\treturn math.Sqrt(p.x * p.x + p.y * p.y)\n}\n\nfunc (p *Point) Scale(factor float64) {\n\tp.x *= factor\n\tp.y *= factor\n}\n\nfunc (f *Field) Alive(x, y int) bool { }\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/method-declarations.B.go",
    "content": "package main\n\nfunc main() {}\n\nfunc (s) Methods()\n\nfunc (self Num) Equals(other Num) bool {}\n\nfunc (p *Point) OtherLength() float64 {\n\treturn math.Sqrt(math.Pow(p.x, 2) + p.x + math.Pow(p.y, 2) + p.y)\n}\n\nfunc (q *Point) Scale(factor int) {\n\tp.x *= factor\n\tp.y *= factor\n}\n\nfunc (f *Field) Alive(z, h int) bool { }\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/method-declarations.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements))\n  (Method\n    (Statements\n      (Identifier))\n  { (Identifier)\n  ->(Identifier) }\n    (Empty))\n  (Method\n    (Identifier)\n    (Statements\n      (Identifier)\n    { (Identifier)\n    ->(Identifier) })\n    (Identifier)\n    (Statements\n      (Identifier)\n    { (Identifier)\n    ->(Identifier) })\n    (Statements))\n  (Method\n    (Identifier)\n    (Statements\n      (Identifier)\n      (Pointer\n        (Identifier)))\n  { (Identifier)\n  ->(Identifier) }\n    (Return\n      (Call\n        (MemberAccess\n          (Identifier)\n          (Identifier))\n        (Plus\n        { (Times\n          {-(MemberAccess\n            {-(Identifier)-}\n            {-(Identifier)-})-}\n          {-(MemberAccess\n            {-(Identifier)-}\n            {-(Identifier)-})-})\n        ->(Plus\n          {+(Plus\n            {+(Call\n              {+(MemberAccess\n                {+(Identifier)+}\n                {+(Identifier)+})+}\n              {+(Statements\n                {+(MemberAccess\n                  {+(Identifier)+}\n                  {+(Identifier)+})+}\n                {+(Integer)+})+}\n              {+(Empty)+})+}\n            {+(MemberAccess\n              {+(Identifier)+}\n              {+(Identifier)+})+})+}\n          {+(Call\n            {+(MemberAccess\n              {+(Identifier)+}\n              {+(Identifier)+})+}\n            {+(Statements\n              {+(MemberAccess\n                {+(Identifier)+}\n                {+(Identifier)+})+}\n              {+(Integer)+})+}\n            {+(Empty)+})+}) }\n        { (Times\n          {-(MemberAccess\n            {-(Identifier)-}\n            {-(Identifier)-})-}\n          {-(MemberAccess\n            {-(Identifier)-}\n            {-(Identifier)-})-})\n        ->(MemberAccess\n          {+(Identifier)+}\n          {+(Identifier)+}) })\n        (Empty))))\n  (Method\n    (Statements\n      (AugmentedAssignment\n        (Times\n          (MemberAccess\n            (Identifier)\n            (Identifier))\n          (Identifier)))\n      (AugmentedAssignment\n        (Times\n          (MemberAccess\n            (Identifier)\n            (Identifier))\n          (Identifier))))\n    (Statements\n    { (Identifier)\n    ->(Identifier) }\n      (Pointer\n        (Identifier)))\n    (Identifier)\n    (Statements\n      (Identifier)\n    { (Identifier)\n    ->(Identifier) })\n    (Empty))\n  (Method\n    (Identifier)\n    (Statements\n      (Identifier)\n      (Pointer\n        (Identifier)))\n    (Identifier)\n    (Statements\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) }\n      (Identifier))\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/method-declarations.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements))\n  (Method\n    (Statements\n      (Identifier))\n  { (Identifier)\n  ->(Identifier) }\n    (Empty))\n  (Method\n    (Identifier)\n    (Statements\n      (Identifier)\n    { (Identifier)\n    ->(Identifier) })\n    (Identifier)\n    (Statements\n      (Identifier)\n    { (Identifier)\n    ->(Identifier) })\n    (Statements))\n  (Method\n    (Identifier)\n    (Statements\n      (Identifier)\n      (Pointer\n        (Identifier)))\n  { (Identifier)\n  ->(Identifier) }\n    (Return\n      (Call\n        (MemberAccess\n          (Identifier)\n          (Identifier))\n        (Plus\n        { (Plus\n          {-(Plus\n            {-(Call\n              {-(MemberAccess\n                {-(Identifier)-}\n                {-(Identifier)-})-}\n              {-(Statements\n                {-(MemberAccess\n                  {-(Identifier)-}\n                  {-(Identifier)-})-}\n                {-(Integer)-})-}\n              {-(Empty)-})-}\n            {-(MemberAccess\n              {-(Identifier)-}\n              {-(Identifier)-})-})-}\n          {-(Call\n            {-(MemberAccess\n              {-(Identifier)-}\n              {-(Identifier)-})-}\n            {-(Statements\n              {-(MemberAccess\n                {-(Identifier)-}\n                {-(Identifier)-})-}\n              {-(Integer)-})-}\n            {-(Empty)-})-})\n        ->(Times\n          {+(MemberAccess\n            {+(Identifier)+}\n            {+(Identifier)+})+}\n          {+(MemberAccess\n            {+(Identifier)+}\n            {+(Identifier)+})+}) }\n        { (MemberAccess\n          {-(Identifier)-}\n          {-(Identifier)-})\n        ->(Times\n          {+(MemberAccess\n            {+(Identifier)+}\n            {+(Identifier)+})+}\n          {+(MemberAccess\n            {+(Identifier)+}\n            {+(Identifier)+})+}) })\n        (Empty))))\n  (Method\n    (Statements\n      (AugmentedAssignment\n        (Times\n          (MemberAccess\n            (Identifier)\n            (Identifier))\n          (Identifier)))\n      (AugmentedAssignment\n        (Times\n          (MemberAccess\n            (Identifier)\n            (Identifier))\n          (Identifier))))\n    (Statements\n    { (Identifier)\n    ->(Identifier) }\n      (Pointer\n        (Identifier)))\n    (Identifier)\n    (Statements\n      (Identifier)\n    { (Identifier)\n    ->(Identifier) })\n    (Empty))\n  (Method\n    (Identifier)\n    (Statements\n      (Identifier)\n      (Pointer\n        (Identifier)))\n    (Identifier)\n    (Statements\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) }\n      (Identifier))\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/method-declarations.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"main\") \n    (ParameterList)) \n  (MethodDeclaration \n    (ParameterList \n      (ParameterDeclaration \n        (Type \n          (SimpleType \n            (TypeIdentifier \"s\"))))) \n    (FieldIdentifier \"Method\") \n    (ParameterList)) \n  (MethodDeclaration \n    (Block) \n    (SimpleType \n      (TypeIdentifier \"bool\")) \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"self\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"Person\"))))) \n    (FieldIdentifier \"Equals\") \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"other\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"Person\")))))) \n  (MethodDeclaration \n    (Block \n      (Statement \n        (ReturnStatement \n          (ExpressionList \n            (Expression \n              (CallExpression \n                (Expression \n                  (SelectorExpression \n                    (FieldIdentifier \"Sqrt\") \n                    (Expression \n                      (Identifier \"math\")))) \n                (ArgumentList \n                  (Expression \n                    (BinaryExpression \n                      (Token) \n                      (Expression \n                        (BinaryExpression \n                          (Token) \n                          (Expression \n                            (SelectorExpression \n                              (FieldIdentifier \"x\") \n                              (Expression \n                                (Identifier \"p\")))) \n                          (Expression \n                            (SelectorExpression \n                              (FieldIdentifier \"x\") \n                              (Expression \n                                (Identifier \"p\")))))) \n                      (Expression \n                        (BinaryExpression \n                          (Token) \n                          (Expression \n                            (SelectorExpression \n                              (FieldIdentifier \"y\") \n                              (Expression \n                                (Identifier \"p\")))) \n                          (Expression \n                            (SelectorExpression \n                              (FieldIdentifier \"y\") \n                              (Expression \n                                (Identifier \"p\"))))))))))))))) \n    (SimpleType \n      (TypeIdentifier \"float64\")) \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"p\") \n        (Type \n          (SimpleType \n            (PointerType \n              (Type \n                (SimpleType \n                  (TypeIdentifier \"Point\")))))))) \n    (FieldIdentifier \"Length\") \n    (ParameterList)) \n  (MethodDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (SelectorExpression \n                  (FieldIdentifier \"x\") \n                  (Expression \n                    (Identifier \"p\"))))) \n            (ExpressionList \n              (Expression \n                (Identifier \"factor\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (SelectorExpression \n                  (FieldIdentifier \"y\") \n                  (Expression \n                    (Identifier \"p\"))))) \n            (ExpressionList \n              (Expression \n                (Identifier \"factor\"))))))) \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"p\") \n        (Type \n          (SimpleType \n            (PointerType \n              (Type \n                (SimpleType \n                  (TypeIdentifier \"Point\")))))))) \n    (FieldIdentifier \"Scale\") \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"factor\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"float64\")))))) \n  (MethodDeclaration \n    (Block) \n    (SimpleType \n      (TypeIdentifier \"bool\")) \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"f\") \n        (Type \n          (SimpleType \n            (PointerType \n              (Type \n                (SimpleType \n                  (TypeIdentifier \"Field\")))))))) \n    (FieldIdentifier \"Alive\") \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"x\") \n        (Token) \n        (Identifier \"y\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"int\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/method-declarations.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"main\") \n    (ParameterList)) \n  (MethodDeclaration \n    (ParameterList \n      (ParameterDeclaration \n        (Type \n          (SimpleType \n            (TypeIdentifier \"s\"))))) \n    (FieldIdentifier \"Methods\") \n    (ParameterList)) \n  (MethodDeclaration \n    (Block) \n    (SimpleType \n      (TypeIdentifier \"bool\")) \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"self\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"Num\"))))) \n    (FieldIdentifier \"Equals\") \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"other\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"Num\")))))) \n  (MethodDeclaration \n    (Block \n      (Statement \n        (ReturnStatement \n          (ExpressionList \n            (Expression \n              (CallExpression \n                (Expression \n                  (SelectorExpression \n                    (FieldIdentifier \"Sqrt\") \n                    (Expression \n                      (Identifier \"math\")))) \n                (ArgumentList \n                  (Expression \n                    (BinaryExpression \n                      (Token) \n                      (Expression \n                        (BinaryExpression \n                          (Token) \n                          (Expression \n                            (BinaryExpression \n                              (Token) \n                              (Expression \n                                (CallExpression \n                                  (Expression \n                                    (SelectorExpression \n                                      (FieldIdentifier \"Pow\") \n                                      (Expression \n                                        (Identifier \"math\")))) \n                                  (ArgumentList \n                                    (Expression \n                                      (SelectorExpression \n                                        (FieldIdentifier \"x\") \n                                        (Expression \n                                          (Identifier \"p\")))) \n                                    (Expression \n                                      (IntLiteral \"2\"))))) \n                              (Expression \n                                (SelectorExpression \n                                  (FieldIdentifier \"x\") \n                                  (Expression \n                                    (Identifier \"p\")))))) \n                          (Expression \n                            (CallExpression \n                              (Expression \n                                (SelectorExpression \n                                  (FieldIdentifier \"Pow\") \n                                  (Expression \n                                    (Identifier \"math\")))) \n                              (ArgumentList \n                                (Expression \n                                  (SelectorExpression \n                                    (FieldIdentifier \"y\") \n                                    (Expression \n                                      (Identifier \"p\")))) \n                                (Expression \n                                  (IntLiteral \"2\"))))))) \n                      (Expression \n                        (SelectorExpression \n                          (FieldIdentifier \"y\") \n                          (Expression \n                            (Identifier \"p\"))))))))))))) \n    (SimpleType \n      (TypeIdentifier \"float64\")) \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"p\") \n        (Type \n          (SimpleType \n            (PointerType \n              (Type \n                (SimpleType \n                  (TypeIdentifier \"Point\")))))))) \n    (FieldIdentifier \"OtherLength\") \n    (ParameterList)) \n  (MethodDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (SelectorExpression \n                  (FieldIdentifier \"x\") \n                  (Expression \n                    (Identifier \"p\"))))) \n            (ExpressionList \n              (Expression \n                (Identifier \"factor\")))))) \n      (Statement \n        (SimpleStatement \n          (AssignmentStatement \n            (Token) \n            (ExpressionList \n              (Expression \n                (SelectorExpression \n                  (FieldIdentifier \"y\") \n                  (Expression \n                    (Identifier \"p\"))))) \n            (ExpressionList \n              (Expression \n                (Identifier \"factor\"))))))) \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"q\") \n        (Type \n          (SimpleType \n            (PointerType \n              (Type \n                (SimpleType \n                  (TypeIdentifier \"Point\")))))))) \n    (FieldIdentifier \"Scale\") \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"factor\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"int\")))))) \n  (MethodDeclaration \n    (Block) \n    (SimpleType \n      (TypeIdentifier \"bool\")) \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"f\") \n        (Type \n          (SimpleType \n            (PointerType \n              (Type \n                (SimpleType \n                  (TypeIdentifier \"Field\")))))))) \n    (FieldIdentifier \"Alive\") \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"z\") \n        (Token) \n        (Identifier \"h\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"int\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/modifying-struct-fields.A.go",
    "content": "package main\n\nfunc main() {\nctx := &uploadContext{\n   Remote: remote\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/modifying-struct-fields.B.go",
    "content": "package main\n\nfunc main() {\nctx := &uploadContext{\n   trackedLocksMu: new(sync.Mutex)\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/modifying-struct-fields.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Assignment\n      (Identifier)\n      (Reference\n        (Composite\n          (Identifier)\n          (Statements\n            (KeyValue\n            { (Identifier)\n            ->(Identifier) }\n            { (Identifier)\n            ->(Call\n              {+(Identifier)+}\n              {+(MemberAccess\n                {+(Identifier)+}\n                {+(Identifier)+})+}\n              {+(Empty)+}) })))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/modifying-struct-fields.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Assignment\n      (Identifier)\n      (Reference\n        (Composite\n          (Identifier)\n          (Statements\n            (KeyValue\n            { (Identifier)\n            ->(Identifier) }\n            { (Call\n              {-(Identifier)-}\n              {-(MemberAccess\n                {-(Identifier)-}\n                {-(Identifier)-})-}\n              {-(Empty)-})\n            ->(Identifier) })))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/modifying-struct-fields.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (ShortVarDeclaration \n            (ExpressionList \n              (Expression \n                (Identifier \"ctx\"))) \n            (ExpressionList \n              (Expression \n                (UnaryExpression \n                  (Token) \n                  (Expression \n                    (CompositeLiteral \n                      (LiteralValue \n                        (KeyedElement \n                          (FieldIdentifier \"Remote\") \n                          (Expression \n                            (Identifier \"remote\")))) \n                      (TypeIdentifier \"uploadContext\")))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/modifying-struct-fields.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (ShortVarDeclaration \n            (ExpressionList \n              (Expression \n                (Identifier \"ctx\"))) \n            (ExpressionList \n              (Expression \n                (UnaryExpression \n                  (Token) \n                  (Expression \n                    (CompositeLiteral \n                      (LiteralValue \n                        (KeyedElement \n                          (FieldIdentifier \"trackedLocksMu\") \n                          (Expression \n                            (CallExpression \n                              (Expression \n                                (Identifier \"new\")) \n                              (ArgumentList \n                                (Type \n                                  (SimpleType \n                                    (QualifiedType \n                                      (TypeIdentifier \"Mutex\") \n                                      (PackageIdentifier \"sync\"))))))))) \n                      (TypeIdentifier \"uploadContext\")))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/parameter-declarations-with-types.A.go",
    "content": "package main\n\nfunc main() {\n}\n\nfunc foo(a int, b string) {\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/parameter-declarations-with-types.B.go",
    "content": "package main\n\nfunc main() {\n}\n\nfunc foo(x string, y uint64) {\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/parameter-declarations-with-types.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements))\n  (Function\n    (Identifier)\n    (Statements\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) })\n    (Statements\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) })\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/parameter-declarations-with-types.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements))\n  (Function\n    (Identifier)\n    (Statements\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) })\n    (Statements\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) })\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/parameter-declarations-with-types.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"main\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"foo\") \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"a\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"int\")))) \n      (ParameterDeclaration \n        (Identifier \"b\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"string\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/parameter-declarations-with-types.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"main\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"foo\") \n    (ParameterList \n      (ParameterDeclaration \n        (Identifier \"x\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"string\")))) \n      (ParameterDeclaration \n        (Identifier \"y\") \n        (Type \n          (SimpleType \n            (TypeIdentifier \"uint64\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/pointer-types.A.go",
    "content": "package main\n\nfunc main() {\ntype (\np1 *string\np2 **p1\n)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/pointer-types.B.go",
    "content": "package main\n\nfunc main() {\ntype (\np1 *int\np2 **p3\n)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/pointer-types.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Type\n        (Identifier)\n        (Pointer\n        { (Identifier)\n        ->(Identifier) }))\n      (Type\n        (Identifier)\n        (Pointer\n          (Pointer\n          { (Identifier)\n          ->(Identifier) }))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/pointer-types.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Type\n        (Identifier)\n        (Pointer\n        { (Identifier)\n        ->(Identifier) }))\n      (Type\n        (Identifier)\n        (Pointer\n          (Pointer\n          { (Identifier)\n          ->(Identifier) }))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/pointer-types.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"p1\") \n            (Type \n              (SimpleType \n                (PointerType \n                  (Type \n                    (SimpleType \n                      (TypeIdentifier \"string\"))))))) \n          (TypeSpec \n            (TypeIdentifier \"p2\") \n            (Type \n              (SimpleType \n                (PointerType \n                  (Type \n                    (SimpleType \n                      (PointerType \n                        (Type \n                          (SimpleType \n                            (TypeIdentifier \"p1\"))))))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/pointer-types.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"p1\") \n            (Type \n              (SimpleType \n                (PointerType \n                  (Type \n                    (SimpleType \n                      (TypeIdentifier \"int\"))))))) \n          (TypeSpec \n            (TypeIdentifier \"p2\") \n            (Type \n              (SimpleType \n                (PointerType \n                  (Type \n                    (SimpleType \n                      (PointerType \n                        (Type \n                          (SimpleType \n                            (TypeIdentifier \"p3\"))))))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/qualified-types.A.go",
    "content": "package main\n\nfunc main() {\ntype a b.c\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/qualified-types.B.go",
    "content": "package main\n\nfunc main() {\ntype x y.z\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/qualified-types.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Type\n      { (Identifier)\n      ->(Identifier) }\n        (MemberAccess\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) })))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/qualified-types.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Type\n      { (Identifier)\n      ->(Identifier) }\n        (MemberAccess\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) })))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/qualified-types.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"a\") \n            (Type \n              (SimpleType \n                (QualifiedType \n                  (TypeIdentifier \"c\") \n                  (PackageIdentifier \"b\")))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/qualified-types.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"x\") \n            (Type \n              (SimpleType \n                (QualifiedType \n                  (TypeIdentifier \"z\") \n                  (PackageIdentifier \"y\")))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/rune-literals.A.go",
    "content": "package main\nconst (\n  a = 'δ'\n  b = '⌘'\n  c = '⌘'\n  d = '⌘'\n  e = '⌘'\n  f = '⌘'\n)\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/rune-literals.B.go",
    "content": "package main\nconst (\n  a = '©'\n  b = '©'\n  c = '©'\n  d = '©'\n  e = '©'\n  f = '©'\n)\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/rune-literals.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Statements\n    (Assignment\n      (Identifier)\n    { (Rune)\n    ->(Rune) })\n    (Assignment\n      (Identifier)\n    { (Rune)\n    ->(Rune) })\n    (Assignment\n      (Identifier)\n    { (Rune)\n    ->(Rune) })\n    (Assignment\n      (Identifier)\n    { (Rune)\n    ->(Rune) })\n    (Assignment\n      (Identifier)\n    { (Rune)\n    ->(Rune) })\n    (Assignment\n      (Identifier)\n    { (Rune)\n    ->(Rune) })))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/rune-literals.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Statements\n    (Assignment\n      (Identifier)\n    { (Rune)\n    ->(Rune) })\n    (Assignment\n      (Identifier)\n    { (Rune)\n    ->(Rune) })\n    (Assignment\n      (Identifier)\n    { (Rune)\n    ->(Rune) })\n    (Assignment\n      (Identifier)\n    { (Rune)\n    ->(Rune) })\n    (Assignment\n      (Identifier)\n    { (Rune)\n    ->(Rune) })\n    (Assignment\n      (Identifier)\n    { (Rune)\n    ->(Rune) })))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/rune-literals.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (ConstDeclaration \n    (ConstSpec \n      (ExpressionList \n        (Expression \n          (RuneLiteral \"'\\948'\"))) \n      (Identifier \"a\")) \n    (ConstSpec \n      (ExpressionList \n        (Expression \n          (RuneLiteral \"'\\8984'\"))) \n      (Identifier \"b\")) \n    (ConstSpec \n      (ExpressionList \n        (Expression \n          (RuneLiteral \"'\\8984'\"))) \n      (Identifier \"c\")) \n    (ConstSpec \n      (ExpressionList \n        (Expression \n          (RuneLiteral \"'\\8984'\"))) \n      (Identifier \"d\")) \n    (ConstSpec \n      (ExpressionList \n        (Expression \n          (RuneLiteral \"'\\8984'\"))) \n      (Identifier \"e\")) \n    (ConstSpec \n      (ExpressionList \n        (Expression \n          (RuneLiteral \"'\\8984'\"))) \n      (Identifier \"f\"))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/rune-literals.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (ConstDeclaration \n    (ConstSpec \n      (ExpressionList \n        (Expression \n          (RuneLiteral \"'\\169'\"))) \n      (Identifier \"a\")) \n    (ConstSpec \n      (ExpressionList \n        (Expression \n          (RuneLiteral \"'\\169'\"))) \n      (Identifier \"b\")) \n    (ConstSpec \n      (ExpressionList \n        (Expression \n          (RuneLiteral \"'\\169'\"))) \n      (Identifier \"c\")) \n    (ConstSpec \n      (ExpressionList \n        (Expression \n          (RuneLiteral \"'\\169'\"))) \n      (Identifier \"d\")) \n    (ConstSpec \n      (ExpressionList \n        (Expression \n          (RuneLiteral \"'\\169'\"))) \n      (Identifier \"e\")) \n    (ConstSpec \n      (ExpressionList \n        (Expression \n          (RuneLiteral \"'\\169'\"))) \n      (Identifier \"f\"))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/select-statements.A.go",
    "content": "package main\n\nfunc main() {\nselect {\n  case x := <-c:\n    println(x)\n  case y <- c:\n    println(5)\n  case <-time.After(1):\n    println(6)\n  \tn--\n  \tif x {\n  \t\twaitDone <- result{n, x}\n  \t\treturn\n  \t}\n  default:\n    return\n}\nselect {\ncase <-ch:\ncase <-timeout:\ndefault:\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/select-statements.B.go",
    "content": "package main\n\nfunc main() {\nselect {\n  case a := <-c:\n    println(x)\n  case b <- c:\n    println(5)\n  case <-time.After(2):\n    println(6)\n  \tn++\n  \tif v {\n  \t\twaitDone <- result{n, v}\n  \t\treturn\n  \t}\n  default:\n    return\n}\nselect {\ncase <-channel:\ncase <-timeout:\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/select-statements.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Select\n        (Statements\n          (Pattern\n            (Receive\n            { (Identifier)\n            ->(Identifier) }\n              (ReceiveOperator\n                (Identifier)))\n            (Call\n              (Identifier)\n              (Identifier)\n              (Empty)))\n          (Pattern\n            (Send\n            { (Identifier)\n            ->(Identifier) }\n              (Identifier))\n            (Call\n              (Identifier)\n              (Integer)\n              (Empty)))\n          (Pattern\n            (Receive\n              (Empty)\n              (ReceiveOperator\n                (Call\n                  (MemberAccess\n                    (Identifier)\n                    (Identifier))\n                { (Integer)\n                ->(Integer) }\n                  (Empty))))\n            (Statements\n              (Call\n                (Identifier)\n                (Integer)\n                (Empty))\n            {+(PostIncrement\n              {+(Identifier)+})+}\n            {+(If\n              {+(Statements\n                {+(Identifier)+})+}\n              {+(Statements\n                {+(Send\n                  {+(Identifier)+}\n                  {+(Composite\n                    {+(Identifier)+}\n                    {+(Statements\n                      {+(Identifier)+}\n                      {+(Identifier)+})+})+})+}\n                {+(Return\n                  {+(Empty)+})+})+}\n              {+(Empty)+})+}\n            {-(PostDecrement\n              {-(Identifier)-})-}\n            {-(If\n              {-(Statements\n                {-(Identifier)-})-}\n              {-(Statements\n                {-(Send\n                  {-(Identifier)-}\n                  {-(Composite\n                    {-(Identifier)-}\n                    {-(Statements\n                      {-(Identifier)-}\n                      {-(Identifier)-})-})-})-}\n                {-(Return\n                  {-(Empty)-})-})-}\n              {-(Empty)-})-}))\n          (DefaultPattern\n            (Return\n              (Empty)))))\n      (Select\n        (Statements\n          (Pattern\n            (Receive\n              (Empty)\n              (ReceiveOperator\n              { (Identifier)\n              ->(Identifier) }))\n            (Statements))\n          (Pattern\n            (Receive\n              (Empty)\n              (ReceiveOperator\n                (Identifier)))\n            (Statements))\n        {-(DefaultPattern\n          {-(Statements)-})-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/select-statements.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Select\n        (Statements\n          (Pattern\n            (Receive\n            { (Identifier)\n            ->(Identifier) }\n              (ReceiveOperator\n                (Identifier)))\n            (Call\n              (Identifier)\n              (Identifier)\n              (Empty)))\n          (Pattern\n            (Send\n            { (Identifier)\n            ->(Identifier) }\n              (Identifier))\n            (Call\n              (Identifier)\n              (Integer)\n              (Empty)))\n          (Pattern\n            (Receive\n              (Empty)\n              (ReceiveOperator\n                (Call\n                  (MemberAccess\n                    (Identifier)\n                    (Identifier))\n                { (Integer)\n                ->(Integer) }\n                  (Empty))))\n            (Statements\n              (Call\n                (Identifier)\n                (Integer)\n                (Empty))\n            {+(PostDecrement\n              {+(Identifier)+})+}\n            {+(If\n              {+(Statements\n                {+(Identifier)+})+}\n              {+(Statements\n                {+(Send\n                  {+(Identifier)+}\n                  {+(Composite\n                    {+(Identifier)+}\n                    {+(Statements\n                      {+(Identifier)+}\n                      {+(Identifier)+})+})+})+}\n                {+(Return\n                  {+(Empty)+})+})+}\n              {+(Empty)+})+}\n            {-(PostIncrement\n              {-(Identifier)-})-}\n            {-(If\n              {-(Statements\n                {-(Identifier)-})-}\n              {-(Statements\n                {-(Send\n                  {-(Identifier)-}\n                  {-(Composite\n                    {-(Identifier)-}\n                    {-(Statements\n                      {-(Identifier)-}\n                      {-(Identifier)-})-})-})-}\n                {-(Return\n                  {-(Empty)-})-})-}\n              {-(Empty)-})-}))\n          (DefaultPattern\n            (Return\n              (Empty)))))\n      (Select\n        (Statements\n          (Pattern\n            (Receive\n              (Empty)\n              (ReceiveOperator\n              { (Identifier)\n              ->(Identifier) }))\n            (Statements))\n          (Pattern\n            (Receive\n              (Empty)\n              (ReceiveOperator\n                (Identifier)))\n            (Statements))\n        {+(DefaultPattern\n          {+(Statements)+})+})))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/select-statements.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SelectStatement \n          (CommunicationCase \n            (ReceiveStatement \n              (ExpressionList \n                (Expression \n                  (Identifier \"x\"))) \n              (Expression \n                (UnaryExpression \n                  (Token) \n                  (Expression \n                    (Identifier \"c\"))))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"println\")) \n                    (ArgumentList \n                      (Expression \n                        (Identifier \"x\")))))))) \n          (CommunicationCase \n            (SendStatement \n              (Expression \n                (Identifier \"c\")) \n              (Expression \n                (Identifier \"y\"))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"println\")) \n                    (ArgumentList \n                      (Expression \n                        (IntLiteral \"5\")))))))) \n          (CommunicationCase \n            (ReceiveStatement \n              (Expression \n                (UnaryExpression \n                  (Token) \n                  (Expression \n                    (CallExpression \n                      (Expression \n                        (SelectorExpression \n                          (FieldIdentifier \"After\") \n                          (Expression \n                            (Identifier \"time\")))) \n                      (ArgumentList \n                        (Expression \n                          (IntLiteral \"1\")))))))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"println\")) \n                    (ArgumentList \n                      (Expression \n                        (IntLiteral \"6\"))))))) \n            (Statement \n              (SimpleStatement \n                (DecStatement \n                  (Expression \n                    (Identifier \"n\"))))) \n            (Statement \n              (IfStatement \n                (Block \n                  (Statement \n                    (SimpleStatement \n                      (SendStatement \n                        (Expression \n                          (CompositeLiteral \n                            (LiteralValue \n                              (Element \n                                (Expression \n                                  (Identifier \"n\"))) \n                              (Element \n                                (Expression \n                                  (Identifier \"x\")))) \n                            (TypeIdentifier \"result\"))) \n                        (Expression \n                          (Identifier \"waitDone\"))))) \n                  (Statement \n                    (ReturnStatement))) \n                (Expression \n                  (Identifier \"x\"))))) \n          (DefaultCase \n            (Statement \n              (ReturnStatement))))) \n      (Statement \n        (SelectStatement \n          (CommunicationCase \n            (ReceiveStatement \n              (Expression \n                (UnaryExpression \n                  (Token) \n                  (Expression \n                    (Identifier \"ch\")))))) \n          (CommunicationCase \n            (ReceiveStatement \n              (Expression \n                (UnaryExpression \n                  (Token) \n                  (Expression \n                    (Identifier \"timeout\")))))) \n          (DefaultCase)))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/select-statements.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SelectStatement \n          (CommunicationCase \n            (ReceiveStatement \n              (ExpressionList \n                (Expression \n                  (Identifier \"a\"))) \n              (Expression \n                (UnaryExpression \n                  (Token) \n                  (Expression \n                    (Identifier \"c\"))))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"println\")) \n                    (ArgumentList \n                      (Expression \n                        (Identifier \"x\")))))))) \n          (CommunicationCase \n            (SendStatement \n              (Expression \n                (Identifier \"c\")) \n              (Expression \n                (Identifier \"b\"))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"println\")) \n                    (ArgumentList \n                      (Expression \n                        (IntLiteral \"5\")))))))) \n          (CommunicationCase \n            (ReceiveStatement \n              (Expression \n                (UnaryExpression \n                  (Token) \n                  (Expression \n                    (CallExpression \n                      (Expression \n                        (SelectorExpression \n                          (FieldIdentifier \"After\") \n                          (Expression \n                            (Identifier \"time\")))) \n                      (ArgumentList \n                        (Expression \n                          (IntLiteral \"2\")))))))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"println\")) \n                    (ArgumentList \n                      (Expression \n                        (IntLiteral \"6\"))))))) \n            (Statement \n              (SimpleStatement \n                (IncStatement \n                  (Expression \n                    (Identifier \"n\"))))) \n            (Statement \n              (IfStatement \n                (Block \n                  (Statement \n                    (SimpleStatement \n                      (SendStatement \n                        (Expression \n                          (CompositeLiteral \n                            (LiteralValue \n                              (Element \n                                (Expression \n                                  (Identifier \"n\"))) \n                              (Element \n                                (Expression \n                                  (Identifier \"v\")))) \n                            (TypeIdentifier \"result\"))) \n                        (Expression \n                          (Identifier \"waitDone\"))))) \n                  (Statement \n                    (ReturnStatement))) \n                (Expression \n                  (Identifier \"v\"))))) \n          (DefaultCase \n            (Statement \n              (ReturnStatement))))) \n      (Statement \n        (SelectStatement \n          (CommunicationCase \n            (ReceiveStatement \n              (Expression \n                (UnaryExpression \n                  (Token) \n                  (Expression \n                    (Identifier \"channel\")))))) \n          (CommunicationCase \n            (ReceiveStatement \n              (Expression \n                (UnaryExpression \n                  (Token) \n                  (Expression \n                    (Identifier \"timeout\"))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/selector-expressions.A.go",
    "content": "package main\n\nfunc main() {\na.b.c()\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/selector-expressions.B.go",
    "content": "package main\n\nfunc main() {\nx.y.z()\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/selector-expressions.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Call\n      (MemberAccess\n        (MemberAccess\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) })\n      { (Identifier)\n      ->(Identifier) })\n      (Statements)\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/selector-expressions.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Call\n      (MemberAccess\n        (MemberAccess\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) })\n      { (Identifier)\n      ->(Identifier) })\n      (Statements)\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/selector-expressions.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (SelectorExpression \n                  (FieldIdentifier \"c\") \n                  (Expression \n                    (SelectorExpression \n                      (FieldIdentifier \"b\") \n                      (Expression \n                        (Identifier \"a\")))))) \n              (ArgumentList)))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/selector-expressions.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (SelectorExpression \n                  (FieldIdentifier \"z\") \n                  (Expression \n                    (SelectorExpression \n                      (FieldIdentifier \"y\") \n                      (Expression \n                        (Identifier \"x\")))))) \n              (ArgumentList)))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/send-statements.A.go",
    "content": "package main\n\nfunc main() {\nfoo <- 5\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/send-statements.B.go",
    "content": "package main\n\nfunc main() {\nbar <- 6\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/send-statements.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Send\n    { (Identifier)\n    ->(Identifier) }\n    { (Integer)\n    ->(Integer) })))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/send-statements.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Send\n    { (Identifier)\n    ->(Identifier) }\n    { (Integer)\n    ->(Integer) })))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/send-statements.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (SendStatement \n            (Expression \n              (IntLiteral \"5\")) \n            (Expression \n              (Identifier \"foo\")))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/send-statements.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (SendStatement \n            (Expression \n              (IntLiteral \"6\")) \n            (Expression \n              (Identifier \"bar\")))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/short-var-declarations.A.go",
    "content": "package main\n\nfunc main() {\na, b := 1, 2\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/short-var-declarations.B.go",
    "content": "package main\n\nfunc main() {\nx, y := 3, 4\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/short-var-declarations.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Assignment\n      (Statements\n      { (Identifier)\n      ->(Identifier) }\n      { (Identifier)\n      ->(Identifier) })\n      (Statements\n      { (Integer)\n      ->(Integer) }\n      { (Integer)\n      ->(Integer) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/short-var-declarations.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Assignment\n      (Statements\n      { (Identifier)\n      ->(Identifier) }\n      { (Identifier)\n      ->(Identifier) })\n      (Statements\n      { (Integer)\n      ->(Integer) }\n      { (Integer)\n      ->(Integer) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/short-var-declarations.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (ShortVarDeclaration \n            (ExpressionList \n              (Expression \n                (Identifier \"a\")) \n              (Expression \n                (Identifier \"b\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"1\")) \n              (Expression \n                (IntLiteral \"2\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/short-var-declarations.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (ShortVarDeclaration \n            (ExpressionList \n              (Expression \n                (Identifier \"x\")) \n              (Expression \n                (Identifier \"y\"))) \n            (ExpressionList \n              (Expression \n                (IntLiteral \"3\")) \n              (Expression \n                (IntLiteral \"4\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/single-import-declarations.A.go",
    "content": "package main\n\nimport \"some/package2\"\nimport . \"some/dsl\"\nimport alias \"some/package\"\n\nfunc main() {\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/single-import-declarations.B.go",
    "content": "package main\n\nimport \"foo/bar\"\nimport . \"types/dsl\"\nimport alias \"awesome/packages\"\n\nfunc main() {\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/single-import-declarations.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n{ (QualifiedImport\n  {-(Identifier)-})\n->(QualifiedImport\n  {+(Identifier)+}) }\n{ (Import\n  {-(TextElement)-})\n->(Import\n  {+(TextElement)+}) }\n{ (QualifiedImport\n  {-(Identifier)-})\n->(QualifiedImport\n  {+(Identifier)+}) }\n  (Function\n    (Identifier)\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/single-import-declarations.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n{ (QualifiedImport\n  {-(Identifier)-})\n->(QualifiedImport\n  {+(Identifier)+}) }\n{ (Import\n  {-(TextElement)-})\n->(Import\n  {+(TextElement)+}) }\n{ (QualifiedImport\n  {-(Identifier)-})\n->(QualifiedImport\n  {+(Identifier)+}) }\n  (Function\n    (Identifier)\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/single-import-declarations.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (ImportDeclaration \n    (ImportSpec \n      (InterpretedStringLiteral))) \n  (ImportDeclaration \n    (ImportSpec \n      (InterpretedStringLiteral) \n      (Dot \".\"))) \n  (ImportDeclaration \n    (ImportSpec \n      (InterpretedStringLiteral) \n      (PackageIdentifier \"alias\"))) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/single-import-declarations.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (ImportDeclaration \n    (ImportSpec \n      (InterpretedStringLiteral))) \n  (ImportDeclaration \n    (ImportSpec \n      (InterpretedStringLiteral) \n      (Dot \".\"))) \n  (ImportDeclaration \n    (ImportSpec \n      (InterpretedStringLiteral) \n      (PackageIdentifier \"alias\"))) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/single-import-declarationsA.parseA.txt",
    "content": ""
  },
  {
    "path": "semantic/test/fixtures/go/corpus/single-line-function-declarations.A.go",
    "content": "package main\n\nfunc main() {\n\n}\n\nfunc f1() { a() }\nfunc f2() { a(); b() }\nfunc f3() { a(); b(); }\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/single-line-function-declarations.B.go",
    "content": "package main\n\nfunc main() {\n\n}\n\nfunc g1() { a() }\nfunc g2() { a(); b() }\nfunc g3() { a(); b(); }\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/single-line-function-declarations.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements))\n  (Function\n  { (Identifier)\n  ->(Identifier) }\n    (Call\n      (Identifier)\n      (Statements)\n      (Empty)))\n  (Function\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Call\n        (Identifier)\n        (Statements)\n        (Empty))\n      (Call\n        (Identifier)\n        (Statements)\n        (Empty))))\n  (Function\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Call\n        (Identifier)\n        (Statements)\n        (Empty))\n      (Call\n        (Identifier)\n        (Statements)\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/single-line-function-declarations.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements))\n  (Function\n  { (Identifier)\n  ->(Identifier) }\n    (Call\n      (Identifier)\n      (Statements)\n      (Empty)))\n  (Function\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Call\n        (Identifier)\n        (Statements)\n        (Empty))\n      (Call\n        (Identifier)\n        (Statements)\n        (Empty))))\n  (Function\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Call\n        (Identifier)\n        (Statements)\n        (Empty))\n      (Call\n        (Identifier)\n        (Statements)\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/single-line-function-declarations.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"main\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"a\")) \n              (ArgumentList)))))) \n    (Identifier \"f1\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"a\")) \n              (ArgumentList))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"b\")) \n              (ArgumentList)))))) \n    (Identifier \"f2\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"a\")) \n              (ArgumentList))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"b\")) \n              (ArgumentList)))))) \n    (Identifier \"f3\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/single-line-function-declarations.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"main\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"a\")) \n              (ArgumentList)))))) \n    (Identifier \"g1\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"a\")) \n              (ArgumentList))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"b\")) \n              (ArgumentList)))))) \n    (Identifier \"g2\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"a\")) \n              (ArgumentList))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"b\")) \n              (ArgumentList)))))) \n    (Identifier \"g3\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/slice-expressions.A.go",
    "content": "package main\n\nfunc main() {\na[2:]\nb[:3]\nc[:]\nd[1:2:3]\ne[1:2]\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/slice-expressions.B.go",
    "content": "package main\n\nfunc main() {\na[1:]\nb[:2]\nc[1:2]\nd[2:1:4]\nf[1:2]\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/slice-expressions.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n    {+(Slice\n      {+(Identifier)+}\n      {+(Integer)+}\n      {+(Empty)+}\n      {+(Empty)+})+}\n    {+(Slice\n      {+(Identifier)+}\n      {+(Empty)+}\n      {+(Integer)+}\n      {+(Empty)+})+}\n    {+(Slice\n      {+(Identifier)+}\n      {+(Integer)+}\n      {+(Integer)+}\n      {+(Empty)+})+}\n      (Slice\n      { (Identifier)\n      ->(Identifier) }\n        (Integer)\n      { (Empty)\n      ->(Integer) }\n      { (Empty)\n      ->(Integer) })\n    {+(Slice\n      {+(Identifier)+}\n      {+(Integer)+}\n      {+(Integer)+}\n      {+(Empty)+})+}\n    {-(Slice\n      {-(Identifier)-}\n      {-(Empty)-}\n      {-(Integer)-}\n      {-(Empty)-})-}\n    {-(Slice\n      {-(Identifier)-}\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Empty)-})-}\n    {-(Slice\n      {-(Identifier)-}\n      {-(Integer)-}\n      {-(Integer)-}\n      {-(Integer)-})-}\n    {-(Slice\n      {-(Identifier)-}\n      {-(Integer)-}\n      {-(Integer)-}\n      {-(Empty)-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/slice-expressions.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n    {+(Slice\n      {+(Identifier)+}\n      {+(Integer)+}\n      {+(Empty)+}\n      {+(Empty)+})+}\n    {+(Slice\n      {+(Identifier)+}\n      {+(Empty)+}\n      {+(Integer)+}\n      {+(Empty)+})+}\n    {+(Slice\n      {+(Identifier)+}\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Empty)+})+}\n      (Slice\n      { (Identifier)\n      ->(Identifier) }\n        (Integer)\n      { (Empty)\n      ->(Integer) }\n      { (Empty)\n      ->(Integer) })\n      (Slice\n      { (Identifier)\n      ->(Identifier) }\n      { (Empty)\n      ->(Integer) }\n        (Integer)\n        (Empty))\n    {-(Slice\n      {-(Identifier)-}\n      {-(Integer)-}\n      {-(Integer)-}\n      {-(Empty)-})-}\n    {-(Slice\n      {-(Identifier)-}\n      {-(Integer)-}\n      {-(Integer)-}\n      {-(Integer)-})-}\n    {-(Slice\n      {-(Identifier)-}\n      {-(Integer)-}\n      {-(Integer)-}\n      {-(Empty)-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/slice-expressions.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (SliceExpression \n              (Expression \n                (IntLiteral \"2\")) \n              (Expression \n                (Identifier \"a\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (SliceExpression \n              (Expression \n                (IntLiteral \"3\")) \n              (Expression \n                (Identifier \"b\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (SliceExpression \n              (Expression \n                (Identifier \"c\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (SliceExpression \n              (Expression \n                (IntLiteral \"1\")) \n              (Expression \n                (IntLiteral \"3\")) \n              (Expression \n                (IntLiteral \"2\")) \n              (Expression \n                (Identifier \"d\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (SliceExpression \n              (Expression \n                (IntLiteral \"1\")) \n              (Expression \n                (IntLiteral \"2\")) \n              (Expression \n                (Identifier \"e\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/slice-expressions.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (SliceExpression \n              (Expression \n                (IntLiteral \"1\")) \n              (Expression \n                (Identifier \"a\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (SliceExpression \n              (Expression \n                (IntLiteral \"2\")) \n              (Expression \n                (Identifier \"b\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (SliceExpression \n              (Expression \n                (IntLiteral \"1\")) \n              (Expression \n                (IntLiteral \"2\")) \n              (Expression \n                (Identifier \"c\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (SliceExpression \n              (Expression \n                (IntLiteral \"2\")) \n              (Expression \n                (IntLiteral \"4\")) \n              (Expression \n                (IntLiteral \"1\")) \n              (Expression \n                (Identifier \"d\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (SliceExpression \n              (Expression \n                (IntLiteral \"1\")) \n              (Expression \n                (IntLiteral \"2\")) \n              (Expression \n                (Identifier \"f\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/slice-literals.A.go",
    "content": "package main\n\nfunc main() {\nconst s1 = []string{}\nconst s2 = []string{\"hi\"}\nconst s3 = []string{\n\"hi\",\n \"hello\",\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/slice-literals.B.go",
    "content": "package main\n\nfunc main() {\nconst s1 = []string{\"sup\"}\nconst s2 = []string{\"hello\"}\nconst s3 = []string{\n\"bar\",\n \"baz\",\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/slice-literals.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n        (Identifier)\n        (Composite\n          (Slice\n            (Identifier))\n          (Statements\n          {+(TextElement)+})))\n      (Assignment\n        (Identifier)\n        (Composite\n          (Slice\n            (Identifier))\n          (Statements\n            (TextElement))))\n      (Assignment\n        (Identifier)\n        (Composite\n          (Slice\n            (Identifier))\n          (Statements\n            (TextElement)\n            (TextElement)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/slice-literals.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n        (Identifier)\n        (Composite\n          (Slice\n            (Identifier))\n          (Statements\n          {-(TextElement)-})))\n      (Assignment\n        (Identifier)\n        (Composite\n          (Slice\n            (Identifier))\n          (Statements\n            (TextElement))))\n      (Assignment\n        (Identifier)\n        (Composite\n          (Slice\n            (Identifier))\n          (Statements\n            (TextElement)\n            (TextElement)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/slice-literals.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (CompositeLiteral \n                  (LiteralValue) \n                  (SliceType \n                    (Type \n                      (SimpleType \n                        (TypeIdentifier \"string\"))))))) \n            (Identifier \"s1\")))) \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (CompositeLiteral \n                  (LiteralValue \n                    (Element \n                      (Expression \n                        (InterpretedStringLiteral)))) \n                  (SliceType \n                    (Type \n                      (SimpleType \n                        (TypeIdentifier \"string\"))))))) \n            (Identifier \"s2\")))) \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (CompositeLiteral \n                  (LiteralValue \n                    (Element \n                      (Expression \n                        (InterpretedStringLiteral))) \n                    (Element \n                      (Expression \n                        (InterpretedStringLiteral)))) \n                  (SliceType \n                    (Type \n                      (SimpleType \n                        (TypeIdentifier \"string\"))))))) \n            (Identifier \"s3\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/slice-literals.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (CompositeLiteral \n                  (LiteralValue \n                    (Element \n                      (Expression \n                        (InterpretedStringLiteral)))) \n                  (SliceType \n                    (Type \n                      (SimpleType \n                        (TypeIdentifier \"string\"))))))) \n            (Identifier \"s1\")))) \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (CompositeLiteral \n                  (LiteralValue \n                    (Element \n                      (Expression \n                        (InterpretedStringLiteral)))) \n                  (SliceType \n                    (Type \n                      (SimpleType \n                        (TypeIdentifier \"string\"))))))) \n            (Identifier \"s2\")))) \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (CompositeLiteral \n                  (LiteralValue \n                    (Element \n                      (Expression \n                        (InterpretedStringLiteral))) \n                    (Element \n                      (Expression \n                        (InterpretedStringLiteral)))) \n                  (SliceType \n                    (Type \n                      (SimpleType \n                        (TypeIdentifier \"string\"))))))) \n            (Identifier \"s3\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/slice-types.A.go",
    "content": "package main\n\nfunc main() {\ntype a []b\ntype c [][]d\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/slice-types.B.go",
    "content": "package main\n\nfunc main() {\ntype a [][]p\ntype c []y\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/slice-types.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Statements\n        (Type\n          (Identifier)\n          (Slice\n          { (Identifier)\n          ->(Slice\n            {+(Identifier)+}) })))\n      (Statements\n        (Type\n          (Identifier)\n          (Slice\n          { (Slice\n            {-(Identifier)-})\n          ->(Identifier) }))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/slice-types.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Statements\n        (Type\n          (Identifier)\n          (Slice\n          { (Slice\n            {-(Identifier)-})\n          ->(Identifier) })))\n      (Statements\n        (Type\n          (Identifier)\n          (Slice\n          { (Identifier)\n          ->(Slice\n            {+(Identifier)+}) }))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/slice-types.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"a\") \n            (Type \n              (SimpleType \n                (SliceType \n                  (Type \n                    (SimpleType \n                      (TypeIdentifier \"b\"))))))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"c\") \n            (Type \n              (SimpleType \n                (SliceType \n                  (Type \n                    (SimpleType \n                      (SliceType \n                        (Type \n                          (SimpleType \n                            (TypeIdentifier \"d\"))))))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/slice-types.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"a\") \n            (Type \n              (SimpleType \n                (SliceType \n                  (Type \n                    (SimpleType \n                      (SliceType \n                        (Type \n                          (SimpleType \n                            (TypeIdentifier \"p\")))))))))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"c\") \n            (Type \n              (SimpleType \n                (SliceType \n                  (Type \n                    (SimpleType \n                      (TypeIdentifier \"y\")))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/string-literals.A.go",
    "content": "package main\n\nfunc main() {\nconst (\na = \"0\"\nb = \"hello world\"\n)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/string-literals.B.go",
    "content": "package main\n\nfunc main() {\nconst (\na = \"2\"\nb = \"hi\"\n)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/string-literals.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n        (Identifier)\n        (TextElement))\n      (Assignment\n        (Identifier)\n        (TextElement)))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/string-literals.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n        (Identifier)\n        (TextElement))\n      (Assignment\n        (Identifier)\n        (TextElement)))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/string-literals.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (InterpretedStringLiteral))) \n            (Identifier \"a\")) \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (InterpretedStringLiteral))) \n            (Identifier \"b\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/string-literals.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (InterpretedStringLiteral))) \n            (Identifier \"a\")) \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (InterpretedStringLiteral))) \n            (Identifier \"b\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/struct-field-declarations.A.go",
    "content": "package main\n\nfunc main() {\n type s3 struct {\n  g int\n} \n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/struct-field-declarations.B.go",
    "content": "package main\n\nfunc main() {\n type s3 struct {\n  h, i int\n} \n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/struct-field-declarations.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Type\n        (Identifier)\n        (Constructor\n          (Empty)\n          (Field\n            (Identifier)\n            (Statements\n            { (Identifier)\n            ->(Identifier) }\n            {+(Identifier)+})))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/struct-field-declarations.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Type\n        (Identifier)\n        (Constructor\n          (Empty)\n          (Field\n            (Identifier)\n            (Statements\n            { (Identifier)\n            ->(Identifier) }\n            {-(Identifier)-})))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/struct-field-declarations.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"s3\") \n            (Type \n              (SimpleType \n                (StructType \n                  (FieldDeclarationList \n                    (FieldDeclaration \n                      (FieldIdentifier \"g\") \n                      (TypeIdentifier \"int\")))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/struct-field-declarations.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"s3\") \n            (Type \n              (SimpleType \n                (StructType \n                  (FieldDeclarationList \n                    (FieldDeclaration \n                      (FieldIdentifier \"h\") \n                      (Token) \n                      (FieldIdentifier \"i\") \n                      (TypeIdentifier \"int\")))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/struct-literals.A.go",
    "content": "package main\n\nfunc main() {\nconst s1 = Person{\nname: \"Frank\",\nAge: \"5 months\",\n}\nconst s2 = struct{i int;}{i: 5}\nconst s3 = time.Time{}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/struct-literals.B.go",
    "content": "package main\n\nfunc main() {\nconst s1 = Dog{\nname: \"Frank\",\nAge: \"5 months\",\n}\nconst s2 = struct{i float;}{j: 6}\nconst s3 = time.Month{}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/struct-literals.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n        (Identifier)\n        (Composite\n        { (Identifier)\n        ->(Identifier) }\n          (Statements\n            (KeyValue\n              (Identifier)\n              (TextElement))\n            (KeyValue\n              (Identifier)\n              (TextElement)))))\n      (Assignment\n        (Identifier)\n        (Composite\n          (Constructor\n            (Empty)\n            (Field\n            { (Identifier)\n            ->(Identifier) }\n              (Statements\n                (Identifier))))\n          (Statements\n            (KeyValue\n            { (Identifier)\n            ->(Identifier) }\n            { (Integer)\n            ->(Integer) }))))\n      (Assignment\n        (Identifier)\n        (Composite\n          (MemberAccess\n            (Identifier)\n          { (Identifier)\n          ->(Identifier) })\n          (Statements))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/struct-literals.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n        (Identifier)\n        (Composite\n        { (Identifier)\n        ->(Identifier) }\n          (Statements\n            (KeyValue\n              (Identifier)\n              (TextElement))\n            (KeyValue\n              (Identifier)\n              (TextElement)))))\n      (Assignment\n        (Identifier)\n        (Composite\n          (Constructor\n            (Empty)\n            (Field\n            { (Identifier)\n            ->(Identifier) }\n              (Statements\n                (Identifier))))\n          (Statements\n            (KeyValue\n            { (Identifier)\n            ->(Identifier) }\n            { (Integer)\n            ->(Integer) }))))\n      (Assignment\n        (Identifier)\n        (Composite\n          (MemberAccess\n            (Identifier)\n          { (Identifier)\n          ->(Identifier) })\n          (Statements))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/struct-literals.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (CompositeLiteral \n                  (LiteralValue \n                    (KeyedElement \n                      (FieldIdentifier \"name\") \n                      (Expression \n                        (InterpretedStringLiteral))) \n                    (KeyedElement \n                      (FieldIdentifier \"Age\") \n                      (Expression \n                        (InterpretedStringLiteral)))) \n                  (TypeIdentifier \"Person\")))) \n            (Identifier \"s1\")))) \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (CompositeLiteral \n                  (LiteralValue \n                    (KeyedElement \n                      (FieldIdentifier \"i\") \n                      (Expression \n                        (IntLiteral \"5\")))) \n                  (StructType \n                    (FieldDeclarationList \n                      (FieldDeclaration \n                        (FieldIdentifier \"i\") \n                        (TypeIdentifier \"int\"))))))) \n            (Identifier \"s2\")))) \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (CompositeLiteral \n                  (LiteralValue) \n                  (QualifiedType \n                    (TypeIdentifier \"Time\") \n                    (PackageIdentifier \"time\"))))) \n            (Identifier \"s3\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/struct-literals.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (CompositeLiteral \n                  (LiteralValue \n                    (KeyedElement \n                      (FieldIdentifier \"name\") \n                      (Expression \n                        (InterpretedStringLiteral))) \n                    (KeyedElement \n                      (FieldIdentifier \"Age\") \n                      (Expression \n                        (InterpretedStringLiteral)))) \n                  (TypeIdentifier \"Dog\")))) \n            (Identifier \"s1\")))) \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (CompositeLiteral \n                  (LiteralValue \n                    (KeyedElement \n                      (FieldIdentifier \"j\") \n                      (Expression \n                        (IntLiteral \"6\")))) \n                  (StructType \n                    (FieldDeclarationList \n                      (FieldDeclaration \n                        (FieldIdentifier \"i\") \n                        (TypeIdentifier \"float\"))))))) \n            (Identifier \"s2\")))) \n      (Statement \n        (ConstDeclaration \n          (ConstSpec \n            (ExpressionList \n              (Expression \n                (CompositeLiteral \n                  (LiteralValue) \n                  (QualifiedType \n                    (TypeIdentifier \"Month\") \n                    (PackageIdentifier \"time\"))))) \n            (Identifier \"s3\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/struct-types.A.go",
    "content": "package main\n\nfunc main() {\ntype s1 struct {}\ntype s2 struct { Person }\ntype s3 struct {\nf, g int\n}\ntype s4 struct {\np.s1\n h int `json:\"h\"`\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/struct-types.B.go",
    "content": "package main\n\nfunc main() {\ntype t1 struct {}\ntype t2 struct { Person }\ntype t3 struct {\nf, g int\n}\ntype t4 struct {\np.s1\n h int `json:\"h\"`\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/struct-types.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Constructor\n            (Empty)\n            (Statements))))\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Constructor\n            (Empty)\n            (Field\n              (Identifier)\n              (Statements)))))\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Constructor\n            (Empty)\n            (Field\n              (Identifier)\n              (Statements\n                (Identifier)\n                (Identifier))))))\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Constructor\n            (Empty)\n            (Statements\n              (Field\n                (Statements\n                  (MemberAccess\n                    (Identifier)\n                    (Identifier))))\n              (Field\n                (Identifier)\n                (TextElement)\n                (Statements\n                  (Identifier))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/struct-types.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Constructor\n            (Empty)\n            (Statements))))\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Constructor\n            (Empty)\n            (Field\n              (Identifier)\n              (Statements)))))\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Constructor\n            (Empty)\n            (Field\n              (Identifier)\n              (Statements\n                (Identifier)\n                (Identifier))))))\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Constructor\n            (Empty)\n            (Statements\n              (Field\n                (Statements\n                  (MemberAccess\n                    (Identifier)\n                    (Identifier))))\n              (Field\n                (Identifier)\n                (TextElement)\n                (Statements\n                  (Identifier))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/struct-types.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"s1\") \n            (Type \n              (SimpleType \n                (StructType \n                  (FieldDeclarationList))))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"s2\") \n            (Type \n              (SimpleType \n                (StructType \n                  (FieldDeclarationList \n                    (FieldDeclaration \n                      (TypeIdentifier \"Person\"))))))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"s3\") \n            (Type \n              (SimpleType \n                (StructType \n                  (FieldDeclarationList \n                    (FieldDeclaration \n                      (FieldIdentifier \"f\") \n                      (Token) \n                      (FieldIdentifier \"g\") \n                      (TypeIdentifier \"int\"))))))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"s4\") \n            (Type \n              (SimpleType \n                (StructType \n                  (FieldDeclarationList \n                    (FieldDeclaration \n                      (QualifiedType \n                        (TypeIdentifier \"s1\") \n                        (PackageIdentifier \"p\"))) \n                    (FieldDeclaration \n                      (RawStringLiteral \"`json:\\\"h\\\"`\") \n                      (FieldIdentifier \"h\") \n                      (TypeIdentifier \"int\")))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/struct-types.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"t1\") \n            (Type \n              (SimpleType \n                (StructType \n                  (FieldDeclarationList))))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"t2\") \n            (Type \n              (SimpleType \n                (StructType \n                  (FieldDeclarationList \n                    (FieldDeclaration \n                      (TypeIdentifier \"Person\"))))))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"t3\") \n            (Type \n              (SimpleType \n                (StructType \n                  (FieldDeclarationList \n                    (FieldDeclaration \n                      (FieldIdentifier \"f\") \n                      (Token) \n                      (FieldIdentifier \"g\") \n                      (TypeIdentifier \"int\"))))))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"t4\") \n            (Type \n              (SimpleType \n                (StructType \n                  (FieldDeclarationList \n                    (FieldDeclaration \n                      (QualifiedType \n                        (TypeIdentifier \"s1\") \n                        (PackageIdentifier \"p\"))) \n                    (FieldDeclaration \n                      (RawStringLiteral \"`json:\\\"h\\\"`\") \n                      (FieldIdentifier \"h\") \n                      (TypeIdentifier \"int\")))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/switch-statement.parseA.txt",
    "content": ""
  },
  {
    "path": "semantic/test/fixtures/go/corpus/switch-statements.A.go",
    "content": "package main\n\nfunc main() {\nswitch { case x < y: f1()\ncase x < z:\n  // comment 1\n  g()\n// comment 2\ncase x == 4: h()\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/switch-statements.B.go",
    "content": "package main\n\nfunc main() {\nswitch { case a < b: f1()\ncase c < d: g()\ncase e == 4: f()\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/switch-statements.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Match\n      (Statements)\n      (Pattern\n        (Statements\n          (LessThan\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) })\n          (Call\n            (Identifier)\n            (Statements)\n            (Empty)))\n        (Pattern\n          (Statements\n            (LessThan\n            { (Identifier)\n            ->(Identifier) }\n            { (Identifier)\n            ->(Identifier) })\n          {-(Context\n            {-(Comment)-}\n              (Call\n                (Identifier)\n                (Statements)\n                (Empty)))-})\n        {-(Context\n          {-(Comment)-}\n            (Pattern\n              (Statements\n                (Equal\n                { (Identifier)\n                ->(Identifier) }\n                  (Integer))\n                (Call\n                { (Identifier)\n                ->(Identifier) }\n                  (Statements)\n                  (Empty)))\n              (Statements)))-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/switch-statements.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Match\n      (Statements)\n      (Pattern\n        (Statements\n          (LessThan\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) })\n          (Call\n            (Identifier)\n            (Statements)\n            (Empty)))\n        (Pattern\n          (Statements\n            (LessThan\n            { (Identifier)\n            ->(Identifier) }\n            { (Identifier)\n            ->(Identifier) })\n          {+(Context\n            {+(Comment)+}\n              (Call\n                (Identifier)\n                (Statements)\n                (Empty)))+})\n        {+(Context\n          {+(Comment)+}\n            (Pattern\n              (Statements\n                (Equal\n                { (Identifier)\n                ->(Identifier) }\n                  (Integer))\n                (Call\n                { (Identifier)\n                ->(Identifier) }\n                  (Statements)\n                  (Empty)))\n              (Statements)))+})))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/switch-statements.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ExpressionSwitchStatement \n          (ExpressionCase \n            (ExpressionList \n              (Expression \n                (BinaryExpression \n                  (Token) \n                  (Expression \n                    (Identifier \"x\")) \n                  (Expression \n                    (Identifier \"y\"))))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"f1\")) \n                    (ArgumentList)))))) \n          (ExpressionCase \n            (ExpressionList \n              (Expression \n                (BinaryExpression \n                  (Token) \n                  (Expression \n                    (Identifier \"x\")) \n                  (Expression \n                    (Identifier \"z\"))))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"g\")) \n                    (ArgumentList)))))) \n          (ExpressionCase \n            (ExpressionList \n              (Expression \n                (BinaryExpression \n                  (Token) \n                  (Expression \n                    (Identifier \"x\")) \n                  (Expression \n                    (IntLiteral \"4\"))))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"h\")) \n                    (ArgumentList))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/switch-statements.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (ExpressionSwitchStatement \n          (ExpressionCase \n            (ExpressionList \n              (Expression \n                (BinaryExpression \n                  (Token) \n                  (Expression \n                    (Identifier \"a\")) \n                  (Expression \n                    (Identifier \"b\"))))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"f1\")) \n                    (ArgumentList)))))) \n          (ExpressionCase \n            (ExpressionList \n              (Expression \n                (BinaryExpression \n                  (Token) \n                  (Expression \n                    (Identifier \"c\")) \n                  (Expression \n                    (Identifier \"d\"))))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"g\")) \n                    (ArgumentList)))))) \n          (ExpressionCase \n            (ExpressionList \n              (Expression \n                (BinaryExpression \n                  (Token) \n                  (Expression \n                    (Identifier \"e\")) \n                  (Expression \n                    (IntLiteral \"4\"))))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"f\")) \n                    (ArgumentList))))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-aliases.A.go",
    "content": "package main\n\nfunc main() {\ntype (\n\tnodeList = []*Node\n\tPolar    = polar\n)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-aliases.B.go",
    "content": "package main\n\nfunc main() {\ntype (\n\tnodes = []*Node\n\tRadian = radian\n)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-aliases.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (TypeAlias\n      { (Identifier)\n      ->(Identifier) }\n        (Slice\n          (Pointer\n            (Identifier))))\n      (TypeAlias\n      { (Identifier)\n      ->(Identifier) }\n      { (Identifier)\n      ->(Identifier) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-aliases.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (TypeAlias\n      { (Identifier)\n      ->(Identifier) }\n        (Slice\n          (Pointer\n            (Identifier))))\n      (TypeAlias\n      { (Identifier)\n      ->(Identifier) }\n      { (Identifier)\n      ->(Identifier) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-aliases.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeAlias \n            (TypeIdentifier \"nodeList\") \n            (Type \n              (SimpleType \n                (SliceType \n                  (Type \n                    (SimpleType \n                      (PointerType \n                        (Type \n                          (SimpleType \n                            (TypeIdentifier \"Node\")))))))))) \n          (TypeAlias \n            (TypeIdentifier \"Polar\") \n            (Type \n              (SimpleType \n                (TypeIdentifier \"polar\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-aliases.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeAlias \n            (TypeIdentifier \"nodes\") \n            (Type \n              (SimpleType \n                (SliceType \n                  (Type \n                    (SimpleType \n                      (PointerType \n                        (Type \n                          (SimpleType \n                            (TypeIdentifier \"Node\")))))))))) \n          (TypeAlias \n            (TypeIdentifier \"Radian\") \n            (Type \n              (SimpleType \n                (TypeIdentifier \"radian\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-assertion-expressions.A.go",
    "content": "package main\n\nfunc main() {\nx.(z.Person)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-assertion-expressions.B.go",
    "content": "package main\n\nfunc main() {\nb.(c.Dog)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-assertion-expressions.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (TypeAssertion\n    { (Identifier)\n    ->(Identifier) }\n      (MemberAccess\n      { (Identifier)\n      ->(Identifier) }\n      { (Identifier)\n      ->(Identifier) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-assertion-expressions.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (TypeAssertion\n    { (Identifier)\n    ->(Identifier) }\n      (MemberAccess\n      { (Identifier)\n      ->(Identifier) }\n      { (Identifier)\n      ->(Identifier) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-assertion-expressions.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (TypeAssertionExpression \n              (Type \n                (SimpleType \n                  (QualifiedType \n                    (TypeIdentifier \"Person\") \n                    (PackageIdentifier \"z\")))) \n              (Expression \n                (Identifier \"x\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-assertion-expressions.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (TypeAssertionExpression \n              (Type \n                (SimpleType \n                  (QualifiedType \n                    (TypeIdentifier \"Dog\") \n                    (PackageIdentifier \"c\")))) \n              (Expression \n                (Identifier \"b\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-conversion-expressions.A.go",
    "content": "package main\n\nfunc main() {\n *Point(p)    \n (*Point)(p)\n <-chan int(c)\n (<-chan int)(c)\n func()(x)\n (func())(x)\n (func() int)(x)\n func() int(x)\n []a.b(c.d)\n ([]a.b)(c.d)\n e.f(g)\n (e.f)(g)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-conversion-expressions.B.go",
    "content": "package main\n\nfunc main() {\n *Point(q)\n (*Point)(q)\n <-chan int(d)\n (<-chan int)(d)\n func()(f)\n (func())(f)\n (func() int)(f)\n func() int(f)\n []x.y(z.e)\n ([]f.g)(h.i)\n j.k(l)\n (m.n)(o)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-conversion-expressions.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Pointer\n        (Call\n          (Identifier)\n        { (Identifier)\n        ->(Identifier) }\n          (Empty)))\n      (Call\n        (Pointer\n          (Identifier))\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n      (TypeConversion\n        (ReceiveChannel\n          (Identifier))\n      { (Identifier)\n      ->(Identifier) })\n      (TypeConversion\n        (Parenthesized\n          (ReceiveChannel\n            (Identifier)))\n      { (Identifier)\n      ->(Identifier) })\n      (TypeConversion\n        (Function\n          (Empty))\n      { (Identifier)\n      ->(Identifier) })\n      (TypeConversion\n        (Parenthesized\n          (Function\n            (Empty)))\n      { (Identifier)\n      ->(Identifier) })\n      (TypeConversion\n        (Parenthesized\n          (Function\n            (Identifier)))\n      { (Identifier)\n      ->(Identifier) })\n      (TypeConversion\n        (Function\n          (Identifier))\n      { (Identifier)\n      ->(Identifier) })\n      (TypeConversion\n        (Slice\n          (MemberAccess\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) }))\n        (MemberAccess\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) }))\n      (TypeConversion\n        (Parenthesized\n          (Slice\n            (MemberAccess\n            { (Identifier)\n            ->(Identifier) }\n            { (Identifier)\n            ->(Identifier) })))\n        (MemberAccess\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) }))\n      (Call\n        (MemberAccess\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) })\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n      (Call\n        (MemberAccess\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) })\n      { (Identifier)\n      ->(Identifier) }\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-conversion-expressions.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Pointer\n        (Call\n          (Identifier)\n        { (Identifier)\n        ->(Identifier) }\n          (Empty)))\n      (Call\n        (Pointer\n          (Identifier))\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n      (TypeConversion\n        (ReceiveChannel\n          (Identifier))\n      { (Identifier)\n      ->(Identifier) })\n      (TypeConversion\n        (Parenthesized\n          (ReceiveChannel\n            (Identifier)))\n      { (Identifier)\n      ->(Identifier) })\n      (TypeConversion\n        (Function\n          (Empty))\n      { (Identifier)\n      ->(Identifier) })\n      (TypeConversion\n        (Parenthesized\n          (Function\n            (Empty)))\n      { (Identifier)\n      ->(Identifier) })\n      (TypeConversion\n        (Parenthesized\n          (Function\n            (Identifier)))\n      { (Identifier)\n      ->(Identifier) })\n      (TypeConversion\n        (Function\n          (Identifier))\n      { (Identifier)\n      ->(Identifier) })\n      (TypeConversion\n        (Slice\n          (MemberAccess\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) }))\n        (MemberAccess\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) }))\n      (TypeConversion\n        (Parenthesized\n          (Slice\n            (MemberAccess\n            { (Identifier)\n            ->(Identifier) }\n            { (Identifier)\n            ->(Identifier) })))\n        (MemberAccess\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) }))\n      (Call\n        (MemberAccess\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) })\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n      (Call\n        (MemberAccess\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) })\n      { (Identifier)\n      ->(Identifier) }\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-conversion-expressions.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (UnaryExpression \n              (Token) \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"Point\")) \n                  (ArgumentList \n                    (Expression \n                      (Identifier \"p\"))))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (ParenthesizedExpression \n                  (Expression \n                    (UnaryExpression \n                      (Token) \n                      (Expression \n                        (Identifier \"Point\")))))) \n              (ArgumentList \n                (Expression \n                  (Identifier \"p\"))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (TypeConversionExpression \n              (Type \n                (SimpleType \n                  (ChannelType \n                    (Type \n                      (SimpleType \n                        (TypeIdentifier \"int\")))))) \n              (Expression \n                (Identifier \"c\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (TypeConversionExpression \n              (Type \n                (ParenthesizedType \n                  (Type \n                    (SimpleType \n                      (ChannelType \n                        (Type \n                          (SimpleType \n                            (TypeIdentifier \"int\")))))))) \n              (Expression \n                (Identifier \"c\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (TypeConversionExpression \n              (Type \n                (SimpleType \n                  (FunctionType \n                    (ParameterList)))) \n              (Expression \n                (Identifier \"x\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (TypeConversionExpression \n              (Type \n                (ParenthesizedType \n                  (Type \n                    (SimpleType \n                      (FunctionType \n                        (ParameterList)))))) \n              (Expression \n                (Identifier \"x\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (TypeConversionExpression \n              (Type \n                (ParenthesizedType \n                  (Type \n                    (SimpleType \n                      (FunctionType \n                        (SimpleType \n                          (TypeIdentifier \"int\")) \n                        (ParameterList)))))) \n              (Expression \n                (Identifier \"x\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (TypeConversionExpression \n              (Type \n                (SimpleType \n                  (FunctionType \n                    (SimpleType \n                      (TypeIdentifier \"int\")) \n                    (ParameterList)))) \n              (Expression \n                (Identifier \"x\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (TypeConversionExpression \n              (Type \n                (SimpleType \n                  (SliceType \n                    (Type \n                      (SimpleType \n                        (QualifiedType \n                          (TypeIdentifier \"b\") \n                          (PackageIdentifier \"a\"))))))) \n              (Expression \n                (SelectorExpression \n                  (FieldIdentifier \"d\") \n                  (Expression \n                    (Identifier \"c\")))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (TypeConversionExpression \n              (Type \n                (ParenthesizedType \n                  (Type \n                    (SimpleType \n                      (SliceType \n                        (Type \n                          (SimpleType \n                            (QualifiedType \n                              (TypeIdentifier \"b\") \n                              (PackageIdentifier \"a\"))))))))) \n              (Expression \n                (SelectorExpression \n                  (FieldIdentifier \"d\") \n                  (Expression \n                    (Identifier \"c\")))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (SelectorExpression \n                  (FieldIdentifier \"f\") \n                  (Expression \n                    (Identifier \"e\")))) \n              (ArgumentList \n                (Expression \n                  (Identifier \"g\"))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (ParenthesizedExpression \n                  (Expression \n                    (SelectorExpression \n                      (FieldIdentifier \"f\") \n                      (Expression \n                        (Identifier \"e\")))))) \n              (ArgumentList \n                (Expression \n                  (Identifier \"g\")))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-conversion-expressions.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (UnaryExpression \n              (Token) \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"Point\")) \n                  (ArgumentList \n                    (Expression \n                      (Identifier \"q\"))))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (ParenthesizedExpression \n                  (Expression \n                    (UnaryExpression \n                      (Token) \n                      (Expression \n                        (Identifier \"Point\")))))) \n              (ArgumentList \n                (Expression \n                  (Identifier \"q\"))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (TypeConversionExpression \n              (Type \n                (SimpleType \n                  (ChannelType \n                    (Type \n                      (SimpleType \n                        (TypeIdentifier \"int\")))))) \n              (Expression \n                (Identifier \"d\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (TypeConversionExpression \n              (Type \n                (ParenthesizedType \n                  (Type \n                    (SimpleType \n                      (ChannelType \n                        (Type \n                          (SimpleType \n                            (TypeIdentifier \"int\")))))))) \n              (Expression \n                (Identifier \"d\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (TypeConversionExpression \n              (Type \n                (SimpleType \n                  (FunctionType \n                    (ParameterList)))) \n              (Expression \n                (Identifier \"f\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (TypeConversionExpression \n              (Type \n                (ParenthesizedType \n                  (Type \n                    (SimpleType \n                      (FunctionType \n                        (ParameterList)))))) \n              (Expression \n                (Identifier \"f\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (TypeConversionExpression \n              (Type \n                (ParenthesizedType \n                  (Type \n                    (SimpleType \n                      (FunctionType \n                        (SimpleType \n                          (TypeIdentifier \"int\")) \n                        (ParameterList)))))) \n              (Expression \n                (Identifier \"f\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (TypeConversionExpression \n              (Type \n                (SimpleType \n                  (FunctionType \n                    (SimpleType \n                      (TypeIdentifier \"int\")) \n                    (ParameterList)))) \n              (Expression \n                (Identifier \"f\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (TypeConversionExpression \n              (Type \n                (SimpleType \n                  (SliceType \n                    (Type \n                      (SimpleType \n                        (QualifiedType \n                          (TypeIdentifier \"y\") \n                          (PackageIdentifier \"x\"))))))) \n              (Expression \n                (SelectorExpression \n                  (FieldIdentifier \"e\") \n                  (Expression \n                    (Identifier \"z\")))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (TypeConversionExpression \n              (Type \n                (ParenthesizedType \n                  (Type \n                    (SimpleType \n                      (SliceType \n                        (Type \n                          (SimpleType \n                            (QualifiedType \n                              (TypeIdentifier \"g\") \n                              (PackageIdentifier \"f\"))))))))) \n              (Expression \n                (SelectorExpression \n                  (FieldIdentifier \"i\") \n                  (Expression \n                    (Identifier \"h\")))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (SelectorExpression \n                  (FieldIdentifier \"k\") \n                  (Expression \n                    (Identifier \"j\")))) \n              (ArgumentList \n                (Expression \n                  (Identifier \"l\"))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (CallExpression \n              (Expression \n                (ParenthesizedExpression \n                  (Expression \n                    (SelectorExpression \n                      (FieldIdentifier \"n\") \n                      (Expression \n                        (Identifier \"m\")))))) \n              (ArgumentList \n                (Expression \n                  (Identifier \"o\")))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-declarations.A.go",
    "content": "package main\n\nfunc main() {\ntype a b\ntype (\n  a b\n  c d\n)\ntype (\n// Read(cnt) == (wantStr, wantErr)\ntestRead struct {\n\tcnt     int\n\twantStr string\n\twantErr error\n}\ntestFnc interface{} // testRead | testWriteTo | testRemaining\n)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-declarations.B.go",
    "content": "package main\n\nfunc main() {\ntype x y\ntype (\n  x y\n  e f\n)\ntype (\n// Read(cnt) == (wantStr, wantErr)\ntestWrite struct {\n\tcnt     int\n\twantStr string\n\twantErr error\n}\ntestFac interface{} // testRead | testWriteTo | testRemaining\n)\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-declarations.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) }))\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) })\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) }))\n      (Statements\n        (Context\n          (Comment)\n          (Type\n          { (Identifier)\n          ->(Identifier) }\n            (Constructor\n              (Empty)\n              (Statements\n                (Field\n                  (Identifier)\n                  (Statements\n                    (Identifier)))\n                (Field\n                  (Identifier)\n                  (Statements\n                    (Identifier)))\n                (Field\n                  (Identifier)\n                  (Statements\n                    (Identifier)))))))\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Interface\n            (Statements)))\n        (Context\n          (Comment)\n          (Empty))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-declarations.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) }))\n      (Statements\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) })\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) }))\n      (Statements\n        (Context\n          (Comment)\n          (Type\n          { (Identifier)\n          ->(Identifier) }\n            (Constructor\n              (Empty)\n              (Statements\n                (Field\n                  (Identifier)\n                  (Statements\n                    (Identifier)))\n                (Field\n                  (Identifier)\n                  (Statements\n                    (Identifier)))\n                (Field\n                  (Identifier)\n                  (Statements\n                    (Identifier)))))))\n        (Type\n        { (Identifier)\n        ->(Identifier) }\n          (Interface\n            (Statements)))\n        (Context\n          (Comment)\n          (Empty))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-declarations.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"a\") \n            (Type \n              (SimpleType \n                (TypeIdentifier \"b\")))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"a\") \n            (Type \n              (SimpleType \n                (TypeIdentifier \"b\")))) \n          (TypeSpec \n            (TypeIdentifier \"c\") \n            (Type \n              (SimpleType \n                (TypeIdentifier \"d\")))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"testRead\") \n            (Type \n              (SimpleType \n                (StructType \n                  (FieldDeclarationList \n                    (FieldDeclaration \n                      (FieldIdentifier \"cnt\") \n                      (TypeIdentifier \"int\")) \n                    (FieldDeclaration \n                      (FieldIdentifier \"wantStr\") \n                      (TypeIdentifier \"string\")) \n                    (FieldDeclaration \n                      (FieldIdentifier \"wantErr\") \n                      (TypeIdentifier \"error\"))))))) \n          (TypeSpec \n            (TypeIdentifier \"testFnc\") \n            (Type \n              (SimpleType \n                (InterfaceType \n                  (MethodSpecList)))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-declarations.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"x\") \n            (Type \n              (SimpleType \n                (TypeIdentifier \"y\")))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"x\") \n            (Type \n              (SimpleType \n                (TypeIdentifier \"y\")))) \n          (TypeSpec \n            (TypeIdentifier \"e\") \n            (Type \n              (SimpleType \n                (TypeIdentifier \"f\")))))) \n      (Statement \n        (TypeDeclaration \n          (TypeSpec \n            (TypeIdentifier \"testWrite\") \n            (Type \n              (SimpleType \n                (StructType \n                  (FieldDeclarationList \n                    (FieldDeclaration \n                      (FieldIdentifier \"cnt\") \n                      (TypeIdentifier \"int\")) \n                    (FieldDeclaration \n                      (FieldIdentifier \"wantStr\") \n                      (TypeIdentifier \"string\")) \n                    (FieldDeclaration \n                      (FieldIdentifier \"wantErr\") \n                      (TypeIdentifier \"error\"))))))) \n          (TypeSpec \n            (TypeIdentifier \"testFac\") \n            (Type \n              (SimpleType \n                (InterfaceType \n                  (MethodSpecList)))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-switch-statements.A.go",
    "content": "package main\n\nfunc main() {\nswitch c := d; f.(type) {\n\tcase nil, *obj.LSym:\n\t\t// ok, but no node\n  case []Person:\n    a()\n  case *Dog:\n    break\n}\nswitch v := i.(type) {\ncase int:\n\tfmt.Println(\"twice i is\", v*2)\ncase float64:\n\tfmt.Println(\"the reciprocal of i is\", 1/v)\ncase string:\n\th := len(v) / 2\n\tfmt.Println(\"i swapped by halves is\", v[h:]+v[:h])\ndefault:\n}\nswitch _ := r.(type) { // comment\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-switch-statements.B.go",
    "content": "package main\n\nfunc main() {\nswitch a := b; e.(type) {\n\tcase nil, *obj.LSym:\n\t\t// ok, but no node\n  case []Person:\n    a()\n  case *Dog:\n    break\n  default:\n    break\n}\nswitch x := j.(type) {\ncase float64:\n\tfmt.Println(\"the reciprocal of i is\", 1/x)\ncase int:\n\tfmt.Println(\"twice i is\", x*2)\ncase string:\n\tl := len(x) / 2\n\tfmt.Println(\"i swapped by halves is\", x[l:]+x[:l])\ndefault:\n}\nswitch _ := s.(type) { // comment \n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-switch-statements.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (TypeSwitch\n        (Statements\n          (Assignment\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) })\n        { (Identifier)\n        ->(Identifier) })\n        (Statements\n          (Statements\n            (Identifier)\n            (Pointer\n              (MemberAccess\n                (Identifier)\n                (Identifier))))\n          (Context\n            (Comment)\n            (Statements\n              (Slice\n                (Identifier))\n              (Call\n                (Identifier)\n                (Statements)\n                (Empty))))\n          (Statements\n            (Pointer\n              (Identifier))\n            (Break\n              (Empty)))\n        {+(DefaultPattern\n          {+(Break\n            {+(Empty)+})+})+}))\n      (TypeSwitch\n        (Statements\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) })\n        (Statements\n          (Statements\n          { (Identifier)\n          ->(Identifier) }\n            (Call\n              (MemberAccess\n                (Identifier)\n                (Identifier))\n              (Statements\n                (TextElement)\n              {+(DividedBy\n                {+(Integer)+}\n                {+(Identifier)+})+}\n              {-(Times\n                {-(Identifier)-}\n                {-(Integer)-})-})\n              (Empty)))\n          (Statements\n          { (Identifier)\n          ->(Identifier) }\n            (Call\n              (MemberAccess\n                (Identifier)\n                (Identifier))\n              (Statements\n                (TextElement)\n              {+(Times\n                {+(Identifier)+}\n                {+(Integer)+})+}\n              {-(DividedBy\n                {-(Integer)-}\n                {-(Identifier)-})-})\n              (Empty)))\n          (Statements\n            (Identifier)\n            (Assignment\n            { (Identifier)\n            ->(Identifier) }\n              (DividedBy\n                (Call\n                  (Identifier)\n                { (Identifier)\n                ->(Identifier) }\n                  (Empty))\n                (Integer)))\n            (Call\n              (MemberAccess\n                (Identifier)\n                (Identifier))\n              (Statements\n                (TextElement)\n                (Plus\n                  (Slice\n                  { (Identifier)\n                  ->(Identifier) }\n                  { (Identifier)\n                  ->(Identifier) }\n                    (Empty)\n                    (Empty))\n                  (Slice\n                  { (Identifier)\n                  ->(Identifier) }\n                    (Empty)\n                  { (Identifier)\n                  ->(Identifier) }\n                    (Empty))))\n              (Empty)))\n          (DefaultPattern\n            (Statements))))\n      (TypeSwitch\n        (Empty)\n        (Statements\n          (Identifier)\n        { (Identifier)\n        ->(Identifier) }\n          (Context\n          { (Comment)\n          ->(Comment) }\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-switch-statements.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (TypeSwitch\n        (Statements\n          (Assignment\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) })\n        { (Identifier)\n        ->(Identifier) })\n        (Statements\n          (Statements\n            (Identifier)\n            (Pointer\n              (MemberAccess\n                (Identifier)\n                (Identifier))))\n          (Context\n            (Comment)\n            (Statements\n              (Slice\n                (Identifier))\n              (Call\n                (Identifier)\n                (Statements)\n                (Empty))))\n          (Statements\n            (Pointer\n              (Identifier))\n            (Break\n              (Empty)))\n        {-(DefaultPattern\n          {-(Break\n            {-(Empty)-})-})-}))\n      (TypeSwitch\n        (Statements\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) })\n        (Statements\n          (Statements\n          { (Identifier)\n          ->(Identifier) }\n            (Call\n              (MemberAccess\n                (Identifier)\n                (Identifier))\n              (Statements\n                (TextElement)\n              {+(Times\n                {+(Identifier)+}\n                {+(Integer)+})+}\n              {-(DividedBy\n                {-(Integer)-}\n                {-(Identifier)-})-})\n              (Empty)))\n          (Statements\n          { (Identifier)\n          ->(Identifier) }\n            (Call\n              (MemberAccess\n                (Identifier)\n                (Identifier))\n              (Statements\n                (TextElement)\n              {+(DividedBy\n                {+(Integer)+}\n                {+(Identifier)+})+}\n              {-(Times\n                {-(Identifier)-}\n                {-(Integer)-})-})\n              (Empty)))\n          (Statements\n            (Identifier)\n            (Assignment\n            { (Identifier)\n            ->(Identifier) }\n              (DividedBy\n                (Call\n                  (Identifier)\n                { (Identifier)\n                ->(Identifier) }\n                  (Empty))\n                (Integer)))\n            (Call\n              (MemberAccess\n                (Identifier)\n                (Identifier))\n              (Statements\n                (TextElement)\n                (Plus\n                  (Slice\n                  { (Identifier)\n                  ->(Identifier) }\n                  { (Identifier)\n                  ->(Identifier) }\n                    (Empty)\n                    (Empty))\n                  (Slice\n                  { (Identifier)\n                  ->(Identifier) }\n                    (Empty)\n                  { (Identifier)\n                  ->(Identifier) }\n                    (Empty))))\n              (Empty)))\n          (DefaultPattern\n            (Statements))))\n      (TypeSwitch\n        (Empty)\n        (Statements\n          (Identifier)\n        { (Identifier)\n        ->(Identifier) }\n          (Context\n          { (Comment)\n          ->(Comment) }\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-switch-statements.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeSwitchStatement \n          (Expression \n            (Identifier \"f\")) \n          (SimpleStatement \n            (ShortVarDeclaration \n              (ExpressionList \n                (Expression \n                  (Identifier \"c\"))) \n              (ExpressionList \n                (Expression \n                  (Identifier \"d\"))))) \n          (TypeCase \n            (Type \n              (SimpleType \n                (TypeIdentifier \"nil\"))) \n            (Token) \n            (Type \n              (SimpleType \n                (PointerType \n                  (Type \n                    (SimpleType \n                      (QualifiedType \n                        (TypeIdentifier \"LSym\") \n                        (PackageIdentifier \"obj\")))))))) \n          (TypeCase \n            (Type \n              (SimpleType \n                (SliceType \n                  (Type \n                    (SimpleType \n                      (TypeIdentifier \"Person\")))))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"a\")) \n                    (ArgumentList)))))) \n          (TypeCase \n            (Type \n              (SimpleType \n                (PointerType \n                  (Type \n                    (SimpleType \n                      (TypeIdentifier \"Dog\")))))) \n            (Statement \n              (BreakStatement))))) \n      (Statement \n        (TypeSwitchStatement \n          (Expression \n            (Identifier \"i\")) \n          (ExpressionList \n            (Expression \n              (Identifier \"v\"))) \n          (TypeCase \n            (Type \n              (SimpleType \n                (TypeIdentifier \"int\"))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (SelectorExpression \n                        (FieldIdentifier \"Println\") \n                        (Expression \n                          (Identifier \"fmt\")))) \n                    (ArgumentList \n                      (Expression \n                        (InterpretedStringLiteral)) \n                      (Expression \n                        (BinaryExpression \n                          (Token) \n                          (Expression \n                            (Identifier \"v\")) \n                          (Expression \n                            (IntLiteral \"2\")))))))))) \n          (TypeCase \n            (Type \n              (SimpleType \n                (TypeIdentifier \"float64\"))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (SelectorExpression \n                        (FieldIdentifier \"Println\") \n                        (Expression \n                          (Identifier \"fmt\")))) \n                    (ArgumentList \n                      (Expression \n                        (InterpretedStringLiteral)) \n                      (Expression \n                        (BinaryExpression \n                          (Token) \n                          (Expression \n                            (IntLiteral \"1\")) \n                          (Expression \n                            (Identifier \"v\")))))))))) \n          (TypeCase \n            (Type \n              (SimpleType \n                (TypeIdentifier \"string\"))) \n            (Statement \n              (SimpleStatement \n                (ShortVarDeclaration \n                  (ExpressionList \n                    (Expression \n                      (Identifier \"h\"))) \n                  (ExpressionList \n                    (Expression \n                      (BinaryExpression \n                        (Token) \n                        (Expression \n                          (CallExpression \n                            (Expression \n                              (Identifier \"len\")) \n                            (ArgumentList \n                              (Expression \n                                (Identifier \"v\"))))) \n                        (Expression \n                          (IntLiteral \"2\")))))))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (SelectorExpression \n                        (FieldIdentifier \"Println\") \n                        (Expression \n                          (Identifier \"fmt\")))) \n                    (ArgumentList \n                      (Expression \n                        (InterpretedStringLiteral)) \n                      (Expression \n                        (BinaryExpression \n                          (Token) \n                          (Expression \n                            (SliceExpression \n                              (Expression \n                                (Identifier \"h\")) \n                              (Expression \n                                (Identifier \"v\")))) \n                          (Expression \n                            (SliceExpression \n                              (Expression \n                                (Identifier \"h\")) \n                              (Expression \n                                (Identifier \"v\")))))))))))) \n          (DefaultCase))) \n      (Statement \n        (TypeSwitchStatement \n          (Expression \n            (Identifier \"r\")) \n          (ExpressionList \n            (Expression \n              (Identifier \"_\")))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/type-switch-statements.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (TypeSwitchStatement \n          (Expression \n            (Identifier \"e\")) \n          (SimpleStatement \n            (ShortVarDeclaration \n              (ExpressionList \n                (Expression \n                  (Identifier \"a\"))) \n              (ExpressionList \n                (Expression \n                  (Identifier \"b\"))))) \n          (TypeCase \n            (Type \n              (SimpleType \n                (TypeIdentifier \"nil\"))) \n            (Token) \n            (Type \n              (SimpleType \n                (PointerType \n                  (Type \n                    (SimpleType \n                      (QualifiedType \n                        (TypeIdentifier \"LSym\") \n                        (PackageIdentifier \"obj\")))))))) \n          (TypeCase \n            (Type \n              (SimpleType \n                (SliceType \n                  (Type \n                    (SimpleType \n                      (TypeIdentifier \"Person\")))))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (Identifier \"a\")) \n                    (ArgumentList)))))) \n          (TypeCase \n            (Type \n              (SimpleType \n                (PointerType \n                  (Type \n                    (SimpleType \n                      (TypeIdentifier \"Dog\")))))) \n            (Statement \n              (BreakStatement))) \n          (DefaultCase \n            (Statement \n              (BreakStatement))))) \n      (Statement \n        (TypeSwitchStatement \n          (Expression \n            (Identifier \"j\")) \n          (ExpressionList \n            (Expression \n              (Identifier \"x\"))) \n          (TypeCase \n            (Type \n              (SimpleType \n                (TypeIdentifier \"float64\"))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (SelectorExpression \n                        (FieldIdentifier \"Println\") \n                        (Expression \n                          (Identifier \"fmt\")))) \n                    (ArgumentList \n                      (Expression \n                        (InterpretedStringLiteral)) \n                      (Expression \n                        (BinaryExpression \n                          (Token) \n                          (Expression \n                            (IntLiteral \"1\")) \n                          (Expression \n                            (Identifier \"x\")))))))))) \n          (TypeCase \n            (Type \n              (SimpleType \n                (TypeIdentifier \"int\"))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (SelectorExpression \n                        (FieldIdentifier \"Println\") \n                        (Expression \n                          (Identifier \"fmt\")))) \n                    (ArgumentList \n                      (Expression \n                        (InterpretedStringLiteral)) \n                      (Expression \n                        (BinaryExpression \n                          (Token) \n                          (Expression \n                            (Identifier \"x\")) \n                          (Expression \n                            (IntLiteral \"2\")))))))))) \n          (TypeCase \n            (Type \n              (SimpleType \n                (TypeIdentifier \"string\"))) \n            (Statement \n              (SimpleStatement \n                (ShortVarDeclaration \n                  (ExpressionList \n                    (Expression \n                      (Identifier \"l\"))) \n                  (ExpressionList \n                    (Expression \n                      (BinaryExpression \n                        (Token) \n                        (Expression \n                          (CallExpression \n                            (Expression \n                              (Identifier \"len\")) \n                            (ArgumentList \n                              (Expression \n                                (Identifier \"x\"))))) \n                        (Expression \n                          (IntLiteral \"2\")))))))) \n            (Statement \n              (SimpleStatement \n                (Expression \n                  (CallExpression \n                    (Expression \n                      (SelectorExpression \n                        (FieldIdentifier \"Println\") \n                        (Expression \n                          (Identifier \"fmt\")))) \n                    (ArgumentList \n                      (Expression \n                        (InterpretedStringLiteral)) \n                      (Expression \n                        (BinaryExpression \n                          (Token) \n                          (Expression \n                            (SliceExpression \n                              (Expression \n                                (Identifier \"l\")) \n                              (Expression \n                                (Identifier \"x\")))) \n                          (Expression \n                            (SliceExpression \n                              (Expression \n                                (Identifier \"l\")) \n                              (Expression \n                                (Identifier \"x\")))))))))))) \n          (DefaultCase))) \n      (Statement \n        (TypeSwitchStatement \n          (Expression \n            (Identifier \"s\")) \n          (ExpressionList \n            (Expression \n              (Identifier \"_\")))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/unary-expressions.A.go",
    "content": "package main\n\nfunc main() {\n+a\n-b\n!<-c\n*foo()\n^h\n&bar\n<-d\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/unary-expressions.B.go",
    "content": "package main\n\nfunc main() {\n+b\n-c\n!<-d\n*bar()\n^i\n&foo\n<-e\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/unary-expressions.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n    { (Identifier)\n    ->(Identifier) }\n    {+(Negate\n      {+(Identifier)+})+}\n    {+(Not\n      {+(ReceiveOperator\n        {+(Identifier)+})+})+}\n    {+(Pointer\n      {+(Call\n        {+(Identifier)+}\n        {+(Statements)+}\n        {+(Empty)+})+})+}\n    {+(Complement\n      {+(Identifier)+})+}\n    {+(Reference\n      {+(Identifier)+})+}\n    {+(ReceiveOperator\n      {+(Identifier)+})+}\n    {-(Negate\n      {-(Identifier)-})-}\n    {-(Not\n      {-(ReceiveOperator\n        {-(Identifier)-})-})-}\n    {-(Pointer\n      {-(Call\n        {-(Identifier)-}\n        {-(Statements)-}\n        {-(Empty)-})-})-}\n    {-(Complement\n      {-(Identifier)-})-}\n    {-(Reference\n      {-(Identifier)-})-}\n    {-(ReceiveOperator\n      {-(Identifier)-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/unary-expressions.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n    { (Identifier)\n    ->(Identifier) }\n    {+(Negate\n      {+(Identifier)+})+}\n    {+(Not\n      {+(ReceiveOperator\n        {+(Identifier)+})+})+}\n    {+(Pointer\n      {+(Call\n        {+(Identifier)+}\n        {+(Statements)+}\n        {+(Empty)+})+})+}\n    {+(Complement\n      {+(Identifier)+})+}\n    {+(Reference\n      {+(Identifier)+})+}\n    {+(ReceiveOperator\n      {+(Identifier)+})+}\n    {-(Negate\n      {-(Identifier)-})-}\n    {-(Not\n      {-(ReceiveOperator\n        {-(Identifier)-})-})-}\n    {-(Pointer\n      {-(Call\n        {-(Identifier)-}\n        {-(Statements)-}\n        {-(Empty)-})-})-}\n    {-(Complement\n      {-(Identifier)-})-}\n    {-(Reference\n      {-(Identifier)-})-}\n    {-(ReceiveOperator\n      {-(Identifier)-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/unary-expressions.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (UnaryExpression \n              (Token) \n              (Expression \n                (Identifier \"a\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (UnaryExpression \n              (Token) \n              (Expression \n                (Identifier \"b\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (UnaryExpression \n              (Token) \n              (Expression \n                (UnaryExpression \n                  (Token) \n                  (Expression \n                    (Identifier \"c\")))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (UnaryExpression \n              (Token) \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"foo\")) \n                  (ArgumentList))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (UnaryExpression \n              (Token) \n              (Expression \n                (Identifier \"h\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (UnaryExpression \n              (Token) \n              (Expression \n                (Identifier \"bar\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (UnaryExpression \n              (Token) \n              (Expression \n                (Identifier \"d\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/unary-expressions.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (SimpleStatement \n          (Expression \n            (UnaryExpression \n              (Token) \n              (Expression \n                (Identifier \"b\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (UnaryExpression \n              (Token) \n              (Expression \n                (Identifier \"c\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (UnaryExpression \n              (Token) \n              (Expression \n                (UnaryExpression \n                  (Token) \n                  (Expression \n                    (Identifier \"d\")))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (UnaryExpression \n              (Token) \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"bar\")) \n                  (ArgumentList))))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (UnaryExpression \n              (Token) \n              (Expression \n                (Identifier \"i\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (UnaryExpression \n              (Token) \n              (Expression \n                (Identifier \"foo\")))))) \n      (Statement \n        (SimpleStatement \n          (Expression \n            (UnaryExpression \n              (Token) \n              (Expression \n                (Identifier \"e\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/var-declarations-with-no-expressions.A.go",
    "content": "package main\n\nfunc main() {\nvar zero int\nvar one, two uint64\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/var-declarations-with-no-expressions.B.go",
    "content": "package main\n\nfunc main() {\nvar a int\nvar b, c uint64\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/var-declarations-with-no-expressions.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n        (Annotation\n          (Statements\n          { (Identifier)\n          ->(Identifier) })\n          (Identifier))\n        (Statements))\n      (Assignment\n        (Annotation\n          (Statements\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) })\n          (Identifier))\n        (Statements)))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/var-declarations-with-no-expressions.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n        (Annotation\n          (Statements\n          { (Identifier)\n          ->(Identifier) })\n          (Identifier))\n        (Statements))\n      (Assignment\n        (Annotation\n          (Statements\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) })\n          (Identifier))\n        (Statements)))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/var-declarations-with-no-expressions.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (VarDeclaration \n          (VarSpec \n            (Identifier \"zero\") \n            (Type \n              (SimpleType \n                (TypeIdentifier \"int\")))))) \n      (Statement \n        (VarDeclaration \n          (VarSpec \n            (Identifier \"one\") \n            (Token) \n            (Identifier \"two\") \n            (Type \n              (SimpleType \n                (TypeIdentifier \"uint64\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/var-declarations-with-no-expressions.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (VarDeclaration \n          (VarSpec \n            (Identifier \"a\") \n            (Type \n              (SimpleType \n                (TypeIdentifier \"int\")))))) \n      (Statement \n        (VarDeclaration \n          (VarSpec \n            (Identifier \"b\") \n            (Token) \n            (Identifier \"c\") \n            (Type \n              (SimpleType \n                (TypeIdentifier \"uint64\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/var-declarations-with-types.A.go",
    "content": "package main\n\nfunc main() {\nvar zero int = 0\nvar one, two uint64 = 1, 2\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/var-declarations-with-types.B.go",
    "content": "package main\n\nfunc main() {\nvar a int = 0\n var b, c uint64 = 1, 2\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/var-declarations-with-types.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n        (Annotation\n          (Statements\n          { (Identifier)\n          ->(Identifier) })\n          (Identifier))\n        (Integer))\n      (Assignment\n        (Annotation\n          (Statements\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) })\n          (Identifier))\n        (Statements\n          (Integer)\n          (Integer))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/var-declarations-with-types.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements\n      (Assignment\n        (Annotation\n          (Statements\n          { (Identifier)\n          ->(Identifier) })\n          (Identifier))\n        (Integer))\n      (Assignment\n        (Annotation\n          (Statements\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) })\n          (Identifier))\n        (Statements\n          (Integer)\n          (Integer))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/var-declarations-with-types.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (VarDeclaration \n          (VarSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"0\"))) \n            (Identifier \"zero\") \n            (Type \n              (SimpleType \n                (TypeIdentifier \"int\")))))) \n      (Statement \n        (VarDeclaration \n          (VarSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"1\")) \n              (Expression \n                (IntLiteral \"2\"))) \n            (Identifier \"one\") \n            (Token) \n            (Identifier \"two\") \n            (Type \n              (SimpleType \n                (TypeIdentifier \"uint64\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/var-declarations-with-types.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (VarDeclaration \n          (VarSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"0\"))) \n            (Identifier \"a\") \n            (Type \n              (SimpleType \n                (TypeIdentifier \"int\")))))) \n      (Statement \n        (VarDeclaration \n          (VarSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"1\")) \n              (Expression \n                (IntLiteral \"2\"))) \n            (Identifier \"b\") \n            (Token) \n            (Identifier \"c\") \n            (Type \n              (SimpleType \n                (TypeIdentifier \"uint64\"))))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/var-declarations-without-types.A.go",
    "content": "package main\n\nfunc main() {\nvar zero = 0\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/var-declarations-without-types.B.go",
    "content": "package main\n\nfunc main() {\nvar one, two = 1, 2\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/var-declarations-without-types.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Assignment\n    { (Identifier)\n    ->(Statements\n      {+(Identifier)+}\n      {+(Identifier)+}) }\n    { (Integer)\n    ->(Statements\n      {+(Integer)+}\n      {+(Integer)+}) })))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/var-declarations-without-types.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Assignment\n    { (Statements\n      {-(Identifier)-}\n      {-(Identifier)-})\n    ->(Identifier) }\n    { (Statements\n      {-(Integer)-}\n      {-(Integer)-})\n    ->(Integer) })))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/var-declarations-without-types.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (VarDeclaration \n          (VarSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"0\"))) \n            (Identifier \"zero\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/var-declarations-without-types.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block \n      (Statement \n        (VarDeclaration \n          (VarSpec \n            (ExpressionList \n              (Expression \n                (IntLiteral \"1\")) \n              (Expression \n                (IntLiteral \"2\"))) \n            (Identifier \"one\") \n            (Token) \n            (Identifier \"two\"))))) \n    (Identifier \"main\") \n    (ParameterList)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/variadic-function-declarations.A.go",
    "content": "package main\n\nfunc main() {\n\n}\nfunc f1(a ...*int) {}\nfunc f2(...int) {}\nfunc f3(a, ...bool) {}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/variadic-function-declarations.B.go",
    "content": "package main\n\nfunc main() {\n\n}\nfunc g1(a ...*int) {}\nfunc g2(...int) {}\nfunc g3(a, ...bool) {}\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/variadic-function-declarations.diffA-B.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements))\n  (Function\n  { (Identifier)\n  ->(Identifier) }\n    (Variadic\n      (Pointer\n        (Identifier))\n      (Identifier))\n    (Statements))\n  (Function\n  { (Identifier)\n  ->(Identifier) }\n    (Variadic\n      (Identifier)\n      (Empty))\n    (Statements))\n  (Function\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Identifier))\n    (Variadic\n      (Identifier)\n      (Empty))\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/variadic-function-declarations.diffB-A.txt",
    "content": "(Statements\n  (Package\n    (Identifier))\n  (Function\n    (Identifier)\n    (Statements))\n  (Function\n  { (Identifier)\n  ->(Identifier) }\n    (Variadic\n      (Pointer\n        (Identifier))\n      (Identifier))\n    (Statements))\n  (Function\n  { (Identifier)\n  ->(Identifier) }\n    (Variadic\n      (Identifier)\n      (Empty))\n    (Statements))\n  (Function\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Identifier))\n    (Variadic\n      (Identifier)\n      (Empty))\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/variadic-function-declarations.parseA.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"main\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"f1\") \n    (ParameterList \n      (VariadicParameterDeclaration \n        (Identifier \"a\") \n        (Type \n          (SimpleType \n            (PointerType \n              (Type \n                (SimpleType \n                  (TypeIdentifier \"int\"))))))))) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"f2\") \n    (ParameterList \n      (VariadicParameterDeclaration \n        (Type \n          (SimpleType \n            (TypeIdentifier \"int\")))))) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"f3\") \n    (ParameterList \n      (ParameterDeclaration \n        (Type \n          (SimpleType \n            (TypeIdentifier \"a\")))) \n      (VariadicParameterDeclaration \n        (Type \n          (SimpleType \n            (TypeIdentifier \"bool\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/corpus/variadic-function-declarations.parseB.txt",
    "content": "(SourceFile \n  (PackageClause \n    (PackageIdentifier \"main\")) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"main\") \n    (ParameterList)) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"g1\") \n    (ParameterList \n      (VariadicParameterDeclaration \n        (Identifier \"a\") \n        (Type \n          (SimpleType \n            (PointerType \n              (Type \n                (SimpleType \n                  (TypeIdentifier \"int\"))))))))) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"g2\") \n    (ParameterList \n      (VariadicParameterDeclaration \n        (Type \n          (SimpleType \n            (TypeIdentifier \"int\")))))) \n  (FunctionDeclaration \n    (Block) \n    (Identifier \"g3\") \n    (ParameterList \n      (ParameterDeclaration \n        (Type \n          (SimpleType \n            (TypeIdentifier \"a\")))) \n      (VariadicParameterDeclaration \n        (Type \n          (SimpleType \n            (TypeIdentifier \"bool\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/go/import-graph/main.go",
    "content": "package app\n\nimport _ \"lib/Foo\"\nimport . \"lib/Bar\"\nimport m \"lib/Math\"\nimport \"lib/Math\"\n\nimport (\n\t\"net/http\"\n)\n\nfunc foo() {}\n\nfunc main() {\n\tfoo()\n\n\tm.Sin()\n\tMath.Sin()\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/import-graph/main.json",
    "content": "{\n  \"modules\": {\n    \"app\": {\n      \"imports\": [\n        {\n          \"span\": {\n            \"start\": [\n              3,\n              8\n            ],\n            \"end\": [\n              3,\n              19\n            ]\n          },\n          \"path\": \"lib/Foo\",\n          \"symbols\": [],\n          \"alias\": \"\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              4,\n              8\n            ],\n            \"end\": [\n              4,\n              19\n            ]\n          },\n          \"path\": \"lib/Bar\",\n          \"symbols\": [],\n          \"alias\": \"\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              5,\n              8\n            ],\n            \"end\": [\n              5,\n              20\n            ]\n          },\n          \"path\": \"lib/Math\",\n          \"symbols\": [],\n          \"alias\": \"m\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              6,\n              8\n            ],\n            \"end\": [\n              6,\n              18\n            ]\n          },\n          \"path\": \"lib/Math\",\n          \"symbols\": [],\n          \"alias\": \"Math\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              9,\n              2\n            ],\n            \"end\": [\n              9,\n              12\n            ]\n          },\n          \"path\": \"net/http\",\n          \"symbols\": [],\n          \"alias\": \"http\"\n        }\n      ],\n      \"name\": \"app\",\n      \"language\": \"Go\",\n      \"declarations\": [\n        {\n          \"span\": {\n            \"start\": [\n              12,\n              1\n            ],\n            \"end\": [\n              12,\n              14\n            ]\n          },\n          \"kind\": \"Function\",\n          \"name\": \"foo\",\n          \"module\": \"app\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              14,\n              1\n            ],\n            \"end\": [\n              19,\n              2\n            ]\n          },\n          \"kind\": \"Function\",\n          \"name\": \"main\",\n          \"module\": \"app\"\n        }\n      ],\n      \"paths\": [\n        \"test/fixtures/go/import-graph/main.go\"\n      ],\n      \"calls\": [\n        {\n          \"span\": {\n            \"start\": [\n              15,\n              2\n            ],\n            \"end\": [\n              15,\n              7\n            ]\n          },\n          \"symbol\": \"foo\",\n          \"targets\": []\n        },\n        {\n          \"span\": {\n            \"start\": [\n              17,\n              2\n            ],\n            \"end\": [\n              17,\n              9\n            ]\n          },\n          \"symbol\": \"Sin\",\n          \"targets\": [\n            \"m\"\n          ]\n        },\n        {\n          \"span\": {\n            \"start\": [\n              18,\n              2\n            ],\n            \"end\": [\n              18,\n              12\n            ]\n          },\n          \"symbol\": \"Sin\",\n          \"targets\": [\n            \"Math\"\n          ]\n        }\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/matching/for.go",
    "content": "package main\n\nfunc merle() {\n\tfor ii := 0; ii < 10; ii+=1 {\n\t\tfor jj := 0; jj < 10; jj+=1 {\n\t\t\tprint(ii + jj)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/matching/integers.go",
    "content": "package main\n\nfunc taako() {\n\treturn 1 + 2 + 3\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/tags/method.go",
    "content": "import \"net/http\"\n\nfunc (c *apiClient) CheckAuth(req *http.Request, user, repo string) (*authenticatedActor, error) {}\n"
  },
  {
    "path": "semantic/test/fixtures/go/tags/simple_functions.go",
    "content": "package big\n\nimport \"testing\"\n\n// TestFromBits ...\nfunc TestFromBits(t *testing.T) {\n\tHi()\n}\n\nfunc Hi() {\n}\n"
  },
  {
    "path": "semantic/test/fixtures/go/toc/method-with-receiver.A.go",
    "content": "package lock\n"
  },
  {
    "path": "semantic/test/fixtures/go/toc/method-with-receiver.B.go",
    "content": "package lock\n\nfunc (c *apiClient) CheckAuth(req *http.Request, user, repo string) (*authenticatedActor, error) { }\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/algebraic-datatype-declarations.A.hs",
    "content": "data N\ndata N a = N a\ndata N a = N !a\ndata N a b = N !a b\n\ndata B = A\n       | A0\n       | A9\n       | Aa\n       | A_\n       | Az'\n\ndata N = N { a :: Int }\ndata N = N { a, b :: Int }\ndata N = N { a :: !Int, b :: Int }\ndata N = N { a, b :: {-#  UNPACK #-} !Int, c :: String }\ndata N = N { a :: Int } | O { b :: String }\ndata N = N { b :: Int } | O { c :: String }\n\ndata N = N deriving Show\ndata N = N deriving (Eq, Ord, Enum, Bounded, Show, Read)\n\ndata Show a => N a = N a\ndata (Eq a, Show a, Eq b) => N a b = N a b\ndata (Eq (f a), Functor f) => N f a = N f a\n\ndata Foo bar = HasCallStack => Foo bar\ndata Baz foo = Show foo => Baz foo\n\ndata Foo = Foo !Double#\n\ndata SomeNumber = forall a . Show a => SomeNumber (Number a)\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/algebraic-datatype-declarations.B.hs",
    "content": "data O\ndata O a = O a\ndata O a = O !a\ndata O a b = O !a b\n\ndata A = B\n       | B0\n       | B9\n       | Ba\n       | B_\n       | Bz'\n\ndata O = O { a :: Int }\ndata O = O { a, b :: Int }\ndata O = O { a :: !Int, b :: Int }\ndata O = O { a, b :: {-#  UNPACK #-} !Int, c :: String }\ndata N = N { b :: Int } | O { c :: String }\ndata N = N { b :: Text } | O { c :: Bool }\n\ndata N = N deriving Show\ndata N = N deriving (Functor, Ord, Enum, Bounded, Show, Read)\n\ndata Monad a => N a = N a\ndata (Ord a, Show a, Eq b) => N a b = N a b\ndata (Eq (f a), Applicative f) => N f a = N f a\n\ndata Foo bar = HasCallStack => Wiz bar\ndata Baz a = Show a => Baz a\n\n\ndata Bar = Bar !Double#\n\ndata SomeNumber = forall b . Show b => SomeNumber (Number b)\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/algebraic-datatype-declarations.diffA-B.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters)\n        (Empty))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (TypeParameters\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (TypeParameters\n          (StrictTypeVariable\n            (TypeVariableIdentifier))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (TypeParameters\n          (StrictTypeVariable\n            (TypeVariableIdentifier))\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters)\n        (Empty))\n    {+(Constructor\n      {+(ConstructorIdentifier)+}\n      {+(TypeParameters)+})+}\n    {+(Constructor\n      {+(ConstructorIdentifier)+}\n      {+(TypeParameters)+})+}\n    {+(Constructor\n      {+(ConstructorIdentifier)+}\n      {+(TypeParameters)+})+}\n    {+(Constructor\n      {+(ConstructorIdentifier)+}\n      {+(TypeParameters)+})+}\n    {+(Constructor\n      {+(ConstructorIdentifier)+}\n      {+(TypeParameters)+})+}\n    {+(Constructor\n      {+(ConstructorIdentifier)+}\n      {+(TypeParameters)+})+}\n    {-(Constructor\n      {-(ConstructorIdentifier)-}\n      {-(TypeParameters)-})-}\n    {-(Constructor\n      {-(ConstructorIdentifier)-}\n      {-(TypeParameters)-})-}\n    {-(Constructor\n      {-(ConstructorIdentifier)-}\n      {-(TypeParameters)-})-}\n    {-(Constructor\n      {-(ConstructorIdentifier)-}\n      {-(TypeParameters)-})-}\n    {-(Constructor\n      {-(ConstructorIdentifier)-}\n      {-(TypeParameters)-})-}\n    {-(Constructor\n      {-(ConstructorIdentifier)-}\n      {-(TypeParameters)-})-}\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier)\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (StrictType\n                (TypeConstructorIdentifier)\n                (TypeParameters))\n              (TypeParameters)\n              (Empty)))\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier)\n              (VariableIdentifier))\n            (Type\n              (Context\n                (Pragma)\n                (StrictType\n                  (TypeConstructorIdentifier)\n                  (TypeParameters)))\n              (TypeParameters)\n              (Empty)))\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n  {-(Datatype\n    {-(Empty)-}\n    {-(Type\n      {-(TypeConstructorIdentifier)-}\n      {-(TypeParameters)-}\n      {-(Empty)-})-}\n    {-(RecordDataConstructor\n      {-(ConstructorIdentifier)-}\n      {-(Statements\n        {-(Field\n          {-(Statements\n            {-(VariableIdentifier)-})-}\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-})-})-}\n    {-(RecordDataConstructor\n      {-(ConstructorIdentifier)-}\n      {-(Statements\n        {-(Field\n          {-(Statements\n            {-(VariableIdentifier)-})-}\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-})-})-}\n    {-(Empty)-})-}\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n  {+(Datatype\n    {+(Empty)+}\n    {+(Type\n      {+(TypeConstructorIdentifier)+}\n      {+(TypeParameters)+}\n      {+(Empty)+})+}\n    {+(RecordDataConstructor\n      {+(ConstructorIdentifier)+}\n      {+(Statements\n        {+(Field\n          {+(Statements\n            {+(VariableIdentifier)+})+}\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+})+})+}\n    {+(RecordDataConstructor\n      {+(ConstructorIdentifier)+}\n      {+(Statements\n        {+(Field\n          {+(Statements\n            {+(VariableIdentifier)+})+}\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+})+})+}\n    {+(Empty)+})+}\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Deriving\n        (TypeClassIdentifier)))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Deriving\n      { (TypeClassIdentifier)\n      ->(TypeClassIdentifier) }\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)))\n    (Datatype\n      (Context'\n        (Class\n        { (TypeClassIdentifier)\n        ->(TypeClassIdentifier) }\n          (TypeVariableIdentifier)))\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Context'\n        (Statements\n          (Class\n          { (TypeClassIdentifier)\n          ->(TypeClassIdentifier) }\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (Statements\n              (TypeVariableIdentifier)\n              (TypeVariableIdentifier)))\n          (Class\n          { (TypeClassIdentifier)\n          ->(TypeClassIdentifier) }\n            (TypeVariableIdentifier))))\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (Context'\n          (TypeConstructorIdentifier))\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (TypeParameters\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n        { (TypeVariableIdentifier)\n        ->(TypeVariableIdentifier) })\n        (Empty))\n      (Constructor\n        (Context'\n          (Class\n            (TypeClassIdentifier)\n          { (TypeVariableIdentifier)\n          ->(TypeVariableIdentifier) }))\n        (ConstructorIdentifier)\n        (TypeParameters\n        { (TypeVariableIdentifier)\n        ->(TypeVariableIdentifier) }))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters)\n        (Empty))\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (TypeParameters\n          (StrictTypeVariable\n            (PrimitiveConstructorIdentifier))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (Constructor\n        (ScopedTypeVariables\n        { (TypeVariableIdentifier)\n        ->(TypeVariableIdentifier) })\n        (Context'\n          (Class\n            (TypeClassIdentifier)\n          { (TypeVariableIdentifier)\n          ->(TypeVariableIdentifier) }))\n        (ConstructorIdentifier)\n        (TypeParameters\n          (Statements\n            (TypeConstructorIdentifier)\n          { (TypeVariableIdentifier)\n          ->(TypeVariableIdentifier) })))\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/algebraic-datatype-declarations.diffB-A.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters)\n        (Empty))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (TypeParameters\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (TypeParameters\n          (StrictTypeVariable\n            (TypeVariableIdentifier))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (TypeParameters\n          (StrictTypeVariable\n            (TypeVariableIdentifier))\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters)\n        (Empty))\n    {+(Constructor\n      {+(ConstructorIdentifier)+}\n      {+(TypeParameters)+})+}\n    {+(Constructor\n      {+(ConstructorIdentifier)+}\n      {+(TypeParameters)+})+}\n    {+(Constructor\n      {+(ConstructorIdentifier)+}\n      {+(TypeParameters)+})+}\n    {+(Constructor\n      {+(ConstructorIdentifier)+}\n      {+(TypeParameters)+})+}\n    {+(Constructor\n      {+(ConstructorIdentifier)+}\n      {+(TypeParameters)+})+}\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (TypeParameters))\n    {-(Constructor\n      {-(ConstructorIdentifier)-}\n      {-(TypeParameters)-})-}\n    {-(Constructor\n      {-(ConstructorIdentifier)-}\n      {-(TypeParameters)-})-}\n    {-(Constructor\n      {-(ConstructorIdentifier)-}\n      {-(TypeParameters)-})-}\n    {-(Constructor\n      {-(ConstructorIdentifier)-}\n      {-(TypeParameters)-})-}\n    {-(Constructor\n      {-(ConstructorIdentifier)-}\n      {-(TypeParameters)-})-}\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier)\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (StrictType\n                (TypeConstructorIdentifier)\n                (TypeParameters))\n              (TypeParameters)\n              (Empty)))\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier)\n              (VariableIdentifier))\n            (Type\n              (Context\n                (Pragma)\n                (StrictType\n                  (TypeConstructorIdentifier)\n                  (TypeParameters)))\n              (TypeParameters)\n              (Empty)))\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n  {+(Datatype\n    {+(Empty)+}\n    {+(Type\n      {+(TypeConstructorIdentifier)+}\n      {+(TypeParameters)+}\n      {+(Empty)+})+}\n    {+(RecordDataConstructor\n      {+(ConstructorIdentifier)+}\n      {+(Statements\n        {+(Field\n          {+(Statements\n            {+(VariableIdentifier)+})+}\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+})+})+}\n    {+(RecordDataConstructor\n      {+(ConstructorIdentifier)+}\n      {+(Statements\n        {+(Field\n          {+(Statements\n            {+(VariableIdentifier)+})+}\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+})+})+}\n    {+(Empty)+})+}\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n  {-(Datatype\n    {-(Empty)-}\n    {-(Type\n      {-(TypeConstructorIdentifier)-}\n      {-(TypeParameters)-}\n      {-(Empty)-})-}\n    {-(RecordDataConstructor\n      {-(ConstructorIdentifier)-}\n      {-(Statements\n        {-(Field\n          {-(Statements\n            {-(VariableIdentifier)-})-}\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-})-})-}\n    {-(RecordDataConstructor\n      {-(ConstructorIdentifier)-}\n      {-(Statements\n        {-(Field\n          {-(Statements\n            {-(VariableIdentifier)-})-}\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-})-})-}\n    {-(Empty)-})-}\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Deriving\n        (TypeClassIdentifier)))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Deriving\n      { (TypeClassIdentifier)\n      ->(TypeClassIdentifier) }\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)))\n    (Datatype\n      (Context'\n        (Class\n        { (TypeClassIdentifier)\n        ->(TypeClassIdentifier) }\n          (TypeVariableIdentifier)))\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Context'\n        (Statements\n          (Class\n          { (TypeClassIdentifier)\n          ->(TypeClassIdentifier) }\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (Statements\n              (TypeVariableIdentifier)\n              (TypeVariableIdentifier)))\n          (Class\n          { (TypeClassIdentifier)\n          ->(TypeClassIdentifier) }\n            (TypeVariableIdentifier))))\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (Context'\n          (TypeConstructorIdentifier))\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (TypeParameters\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n        { (TypeVariableIdentifier)\n        ->(TypeVariableIdentifier) })\n        (Empty))\n      (Constructor\n        (Context'\n          (Class\n            (TypeClassIdentifier)\n          { (TypeVariableIdentifier)\n          ->(TypeVariableIdentifier) }))\n        (ConstructorIdentifier)\n        (TypeParameters\n        { (TypeVariableIdentifier)\n        ->(TypeVariableIdentifier) }))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeParameters)\n        (Empty))\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (TypeParameters\n          (StrictTypeVariable\n            (PrimitiveConstructorIdentifier))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (Constructor\n        (ScopedTypeVariables\n        { (TypeVariableIdentifier)\n        ->(TypeVariableIdentifier) })\n        (Context'\n          (Class\n            (TypeClassIdentifier)\n          { (TypeVariableIdentifier)\n          ->(TypeVariableIdentifier) }))\n        (ConstructorIdentifier)\n        (TypeParameters\n          (Statements\n            (TypeConstructorIdentifier)\n          { (TypeVariableIdentifier)\n          ->(TypeVariableIdentifier) })))\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/algebraic-datatype-declarations.parseA.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (StrictTypeVariable\n            (TypeVariableIdentifier))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (StrictTypeVariable\n            (TypeVariableIdentifier))\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier)\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (StrictType\n                (TypeConstructorIdentifier)\n                (TypeParameters))\n              (TypeParameters)\n              (Empty)))\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier)\n              (VariableIdentifier))\n            (Type\n              (Context\n                (Pragma)\n                (StrictType\n                  (TypeConstructorIdentifier)\n                  (TypeParameters)))\n              (TypeParameters)\n              (Empty)))\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Deriving\n        (TypeClassIdentifier)))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Deriving\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)))\n    (Datatype\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (Statements\n              (TypeVariableIdentifier)\n              (TypeVariableIdentifier)))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (Context'\n          (TypeConstructorIdentifier))\n        (ConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (Context'\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier)))\n        (ConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (StrictTypeVariable\n            (PrimitiveConstructorIdentifier))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (Constructor\n        (ScopedTypeVariables\n          (TypeVariableIdentifier))\n        (Context'\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier)))\n        (ConstructorIdentifier)\n        (TypeParameters\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier))))\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/algebraic-datatype-declarations.parseB.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (StrictTypeVariable\n            (TypeVariableIdentifier))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (StrictTypeVariable\n            (TypeVariableIdentifier))\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier)\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (StrictType\n                (TypeConstructorIdentifier)\n                (TypeParameters))\n              (TypeParameters)\n              (Empty)))\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier)\n              (VariableIdentifier))\n            (Type\n              (Context\n                (Pragma)\n                (StrictType\n                  (TypeConstructorIdentifier)\n                  (TypeParameters)))\n              (TypeParameters)\n              (Empty)))\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (RecordDataConstructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Deriving\n        (TypeClassIdentifier)))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters))\n      (Deriving\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)))\n    (Datatype\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (Statements\n              (TypeVariableIdentifier)\n              (TypeVariableIdentifier)))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (Context'\n          (TypeConstructorIdentifier))\n        (ConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier))\n        (Empty))\n      (Constructor\n        (Context'\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier)))\n        (ConstructorIdentifier)\n        (TypeParameters\n          (TypeVariableIdentifier)))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeParameters\n          (StrictTypeVariable\n            (PrimitiveConstructorIdentifier))))\n      (Empty))\n    (Datatype\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (TypeParameters)\n        (Empty))\n      (Constructor\n        (ScopedTypeVariables\n          (TypeVariableIdentifier))\n        (Context'\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier)))\n        (ConstructorIdentifier)\n        (TypeParameters\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier))))\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/blank.A.hs",
    "content": ""
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/blank.parseA.txt",
    "content": "(Module\n  (Empty)\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/cpp-directives.A.hs",
    "content": "#ifndef mingw32_HOST_OS\nimport           System.Posix.Signals\n#endif\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/cpp-directives.B.hs",
    "content": "#ifndef mingw64_HOST_OS\nimport           System.Util.Posix.Signals\n#endif\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/cpp-directives.diffA-B.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n  { (CPPDirective)\n  ->(CPPDirective) }\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n      {+(ModuleIdentifier)+}\n        (ModuleIdentifier)\n        (ModuleIdentifier)))\n    (CPPDirective)))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/cpp-directives.diffB-A.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n  { (CPPDirective)\n  ->(CPPDirective) }\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n      {-(ModuleIdentifier)-}\n        (ModuleIdentifier)\n        (ModuleIdentifier)))\n    (CPPDirective)))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/cpp-directives.parseA.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (CPPDirective)\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)\n        (ModuleIdentifier)))\n    (CPPDirective)))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/cpp-directives.parseB.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (CPPDirective)\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)\n        (ModuleIdentifier)\n        (ModuleIdentifier)))\n    (CPPDirective)))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/default-declaration.A.hs",
    "content": "module A where\n\ndefault ()\ndefault (Integer, Double)\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/default-declaration.B.hs",
    "content": "module A where\n\ndefault (Double, Integer)\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/default-declaration.diffA-B.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Statements\n    (DefaultDeclaration\n    {+(TypeConstructorIdentifier)+}\n    {+(TypeConstructorIdentifier)+})\n  {-(DefaultDeclaration\n    {-(TypeConstructorIdentifier)-}\n    {-(TypeConstructorIdentifier)-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/default-declaration.diffB-A.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Statements\n    (DefaultDeclaration\n    {-(TypeConstructorIdentifier)-}\n    {-(TypeConstructorIdentifier)-})\n  {+(DefaultDeclaration\n    {+(TypeConstructorIdentifier)+}\n    {+(TypeConstructorIdentifier)+})+}))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/default-declaration.parseA.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Statements\n    (DefaultDeclaration)\n    (DefaultDeclaration\n      (TypeConstructorIdentifier)\n      (TypeConstructorIdentifier))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/default-declaration.parseB.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Statements\n    (DefaultDeclaration\n      (TypeConstructorIdentifier)\n      (TypeConstructorIdentifier))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/expressions.A.hs",
    "content": "f = a b\nf = a b c\nf = a b c d\n\nf = Just b\nf = Right b\nf = Example a c d\nf = ()\n\na = [1..]\na = [1,2..]\na = [1..2]\na = [1,2..10]\n\na = [x | x <- xs]\na = [(x, y) | x <- xs, y <- ys]\na = [ x |  xs   <- [ [(1,2),(3,4)], [(5,4),(3,2)] ], (3,x) <- xs ]\na = [(i,j) | i <- [1,2],\n             j <- [1..4] ]\na = [ [ (i,j) | i <- [1,2] ] | j <- [1..] ]\n\nf = take 5 [ [ (i,j) | i <- [1,2] ] | j <- [1..] ]\n\na = (: a)\na = (:< a)\n\na = (a :)\na = (a :|)\n\ng = h `i` j\n\na = Data.Just\n\nparseJSON (JSON.Object r) = IncPK <$>\n  r .: \"id\" <*>\n  r .: \"nullable_string\" <*>\n  r .: \"non_nullable_string\" <*>\n  r .: \"inserted_at\"\n\nf = do\n  a <- b =<< c\n  b <- e >>= g\n\nf = \\ x -> x\n\nf = \\ (Just a) -> a\n\nf = \\ x -> x : a : xs\n\nf = \\ g a b -> g <$> a <*> b\n\nf = (-)\nf = 1 - 1\nf = (-1)\nf = (-a)\nf = -(1)\n\nfoo = catMaybes $ fmap (\\p -> (p,) . Just <$> bar p) waz\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/expressions.B.hs",
    "content": "g = a b\ng = a b c\ng = a b c d\n\ng = Just b\ng = Right b\ng = Example a c d\ng = ()\n\na = [2..]\na = [2,3..]\na = [2..9]\na = [2,3..18]\n\nb = [x | x <- xs]\nb = [(x, y) | x <- xs, y <- ys]\nb = [ x |  xs   <- [ [(10,20),(30,40)], [(50,40),(30,20)] ], (30,x) <- xs ]\nb = [(i,j) | i <- [1,2,3,4],\n             j <- [1..10] ]\nb = [ [ (i,j) | i <- [2,4] ] | j <- [5..] ]\n\nb = take 7 [ [ (i,j) | i <- [1,2] ] | j <- [1..] ]\n\nb = (: a)\nb = (:< a)\n\nb = (b :)\nb = (b :|)\n\nb = h `i` j\n\nb = Data.Just\n\nparseJSON (JSON.Object s) = IncPK <$>\n  s .: \"id\" <*>\n  s .: \"nullable_string\" <*>\n  s .: \"non_nullable_string\" <*>\n  s .: \"inserted_at\"\n\ng = do\n  b <- d =<< e\n  c <- f >>= h\n\ng = \\ x -> x\n\ng = \\ (Just a) -> a\n\ng = \\ x -> x : a : xs\n\ng = \\ g a b -> g <$> a <*> b\n\ng = (-)\ng = 1 - 1\ng = (-1)\ng = (-a)\ng = -(1)\n\nbar = catMaybes $ fmap (\\q -> (q,) . Just <$> baz q) waz\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/expressions.diffA-B.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (App\n          (VariableIdentifier)\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (App\n          (App\n            (VariableIdentifier)\n            (Empty)\n            (VariableIdentifier))\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (App\n          (App\n            (App\n              (VariableIdentifier)\n              (Empty)\n              (VariableIdentifier))\n            (Empty)\n            (VariableIdentifier))\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (App\n          (ConstructorIdentifier)\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (App\n          (ConstructorIdentifier)\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (App\n          (App\n            (App\n              (ConstructorIdentifier)\n              (Empty)\n              (VariableIdentifier))\n            (Empty)\n            (VariableIdentifier))\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (UnitConstructor)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ArithmeticSequence\n        { (Integer)\n        ->(Integer) })))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ArithmeticSequence\n        { (Integer)\n        ->(Integer) }\n        { (Integer)\n        ->(Integer) })))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ArithmeticSequence\n        { (Integer)\n        ->(Integer) }\n        { (Integer)\n        ->(Integer) })))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ArithmeticSequence\n        { (Integer)\n        ->(Integer) }\n        { (Integer)\n        ->(Integer) }\n        { (Integer)\n        ->(Integer) })))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (ListComprehension\n          (VariableIdentifier)\n          (Generator\n            (VariableIdentifier)\n            (VariableIdentifier)))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (ListComprehension\n          (Tuple\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (Generator\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (Generator\n            (VariableIdentifier)\n            (VariableIdentifier)))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (ListComprehension\n          (VariableIdentifier)\n          (Generator\n            (VariableIdentifier)\n            (Array\n              (Array\n                (Tuple\n                { (Integer)\n                ->(Integer) }\n                { (Integer)\n                ->(Integer) })\n                (Tuple\n                { (Integer)\n                ->(Integer) }\n                { (Integer)\n                ->(Integer) }))\n              (Array\n                (Tuple\n                { (Integer)\n                ->(Integer) }\n                { (Integer)\n                ->(Integer) })\n                (Tuple\n                { (Integer)\n                ->(Integer) }\n                { (Integer)\n                ->(Integer) }))))\n          (Generator\n            (TuplePattern\n            { (Integer)\n            ->(Integer) }\n              (VariableIdentifier))\n            (VariableIdentifier)))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (ListComprehension\n          (Tuple\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (Generator\n            (VariableIdentifier)\n            (Array\n              (Integer)\n              (Integer)\n            {+(Integer)+}\n            {+(Integer)+}))\n          (Generator\n            (VariableIdentifier)\n            (ArithmeticSequence\n              (Integer)\n            { (Integer)\n            ->(Integer) })))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (ListComprehension\n          (ListComprehension\n            (Tuple\n              (VariableIdentifier)\n              (VariableIdentifier))\n            (Generator\n              (VariableIdentifier)\n              (Array\n              {-(Integer)-}\n                (Integer)\n              {+(Integer)+})))\n          (Generator\n            (VariableIdentifier)\n            (ArithmeticSequence\n            { (Integer)\n            ->(Integer) })))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (App\n          (App\n            (VariableIdentifier)\n            (Empty)\n          { (Integer)\n          ->(Integer) })\n          (Empty)\n          (ListComprehension\n            (ListComprehension\n              (Tuple\n                (VariableIdentifier)\n                (VariableIdentifier))\n              (Generator\n                (VariableIdentifier)\n                (Array\n                  (Integer)\n                  (Integer))))\n            (Generator\n              (VariableIdentifier)\n              (ArithmeticSequence\n                (Integer)))))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (RightOperatorSection\n          (ConstructorOperator\n            (ConstructorSymbol))\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (RightOperatorSection\n          (ConstructorOperator\n            (ConstructorSymbol))\n          (VariableIdentifier))))\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(LeftOperatorSection\n        {+(VariableIdentifier)+}\n        {+(ConstructorOperator\n          {+(ConstructorSymbol)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(LeftOperatorSection\n        {+(VariableIdentifier)+}\n        {+(ConstructorOperator\n          {+(ConstructorSymbol)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(InfixVariableIdentifier)+})+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(QualifiedConstructorIdentifier\n        {+(ModuleIdentifier)+}\n        {+(ConstructorIdentifier)+})+})+})+}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(LeftOperatorSection\n        {-(VariableIdentifier)-}\n        {-(ConstructorOperator\n          {-(ConstructorSymbol)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(LeftOperatorSection\n        {-(VariableIdentifier)-}\n        {-(ConstructorOperator\n          {-(ConstructorSymbol)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(InfixVariableIdentifier)-})-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(QualifiedConstructorIdentifier\n        {-(ModuleIdentifier)-}\n        {-(ConstructorIdentifier)-})-})-})-}\n    (Function\n      (VariableIdentifier)\n      (ConstructorPattern\n        (Statements\n          (QualifiedConstructorIdentifier\n            (ModuleIdentifier)\n            (ConstructorIdentifier))\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }))\n      (Statements\n        (InfixOperatorApp\n          (ConstructorIdentifier)\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (InfixOperatorApp\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n            (Empty)\n            (VariableOperator\n              (VariableSymbol))\n            (InfixOperatorApp\n              (TextElement)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (InfixOperatorApp\n              { (VariableIdentifier)\n              ->(VariableIdentifier) }\n                (Empty)\n                (VariableOperator\n                  (VariableSymbol))\n                (InfixOperatorApp\n                  (TextElement)\n                  (Empty)\n                  (VariableOperator\n                    (VariableSymbol))\n                  (InfixOperatorApp\n                  { (VariableIdentifier)\n                  ->(VariableIdentifier) }\n                    (Empty)\n                    (VariableOperator\n                      (VariableSymbol))\n                    (InfixOperatorApp\n                      (TextElement)\n                      (Empty)\n                      (VariableOperator\n                        (VariableSymbol))\n                      (InfixOperatorApp\n                      { (VariableIdentifier)\n                      ->(VariableIdentifier) }\n                        (Empty)\n                        (VariableOperator\n                          (VariableSymbol))\n                        (TextElement)))))))))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (Do\n          (BindPattern\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n            (InfixOperatorApp\n            { (VariableIdentifier)\n            ->(VariableIdentifier) }\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n            { (VariableIdentifier)\n            ->(VariableIdentifier) }))\n          (BindPattern\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n            (InfixOperatorApp\n            { (VariableIdentifier)\n            ->(VariableIdentifier) }\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n            { (VariableIdentifier)\n            ->(VariableIdentifier) })))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (Lambda\n          (VariableIdentifier)\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (Lambda\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (VariableIdentifier)))\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (Lambda\n          (VariableIdentifier)\n          (InfixOperatorApp\n            (VariableIdentifier)\n            (Empty)\n            (ConstructorOperator\n              (ConstructorSymbol))\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (ConstructorOperator\n                (ConstructorSymbol))\n              (VariableIdentifier))))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (Lambda\n          (Statements\n            (VariableIdentifier)\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (InfixOperatorApp\n            (VariableIdentifier)\n            (Empty)\n            (VariableOperator\n              (VariableSymbol))\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (VariableIdentifier))))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (VariableOperator\n          (VariableSymbol))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (InfixOperatorApp\n          (Integer)\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (Integer))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (PrefixNegation\n          (Integer))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (PrefixNegation\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (PrefixNegation\n          (Integer))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (App\n            (App\n              (VariableIdentifier)\n              (Empty)\n              (Lambda\n              { (VariableIdentifier)\n              ->(VariableIdentifier) }\n                (InfixOperatorApp\n                  (Tuple\n                  { (VariableIdentifier)\n                  ->(VariableIdentifier) })\n                  (Empty)\n                  (VariableOperator\n                    (VariableSymbol))\n                  (InfixOperatorApp\n                    (ConstructorIdentifier)\n                    (Empty)\n                    (VariableOperator\n                      (VariableSymbol))\n                    (App\n                    { (VariableIdentifier)\n                    ->(VariableIdentifier) }\n                      (Empty)\n                    { (VariableIdentifier)\n                    ->(VariableIdentifier) })))))\n            (Empty)\n            (VariableIdentifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/expressions.diffB-A.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (App\n          (VariableIdentifier)\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (App\n          (App\n            (VariableIdentifier)\n            (Empty)\n            (VariableIdentifier))\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (App\n          (App\n            (App\n              (VariableIdentifier)\n              (Empty)\n              (VariableIdentifier))\n            (Empty)\n            (VariableIdentifier))\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (App\n          (ConstructorIdentifier)\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (App\n          (ConstructorIdentifier)\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (App\n          (App\n            (App\n              (ConstructorIdentifier)\n              (Empty)\n              (VariableIdentifier))\n            (Empty)\n            (VariableIdentifier))\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (UnitConstructor)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ArithmeticSequence\n        { (Integer)\n        ->(Integer) })))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ArithmeticSequence\n        { (Integer)\n        ->(Integer) }\n        { (Integer)\n        ->(Integer) })))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ArithmeticSequence\n        { (Integer)\n        ->(Integer) }\n        { (Integer)\n        ->(Integer) })))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ArithmeticSequence\n        { (Integer)\n        ->(Integer) }\n        { (Integer)\n        ->(Integer) }\n        { (Integer)\n        ->(Integer) })))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (ListComprehension\n          (VariableIdentifier)\n          (Generator\n            (VariableIdentifier)\n            (VariableIdentifier)))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (ListComprehension\n          (Tuple\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (Generator\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (Generator\n            (VariableIdentifier)\n            (VariableIdentifier)))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (ListComprehension\n          (VariableIdentifier)\n          (Generator\n            (VariableIdentifier)\n            (Array\n              (Array\n                (Tuple\n                { (Integer)\n                ->(Integer) }\n                { (Integer)\n                ->(Integer) })\n                (Tuple\n                { (Integer)\n                ->(Integer) }\n                { (Integer)\n                ->(Integer) }))\n              (Array\n                (Tuple\n                { (Integer)\n                ->(Integer) }\n                { (Integer)\n                ->(Integer) })\n                (Tuple\n                { (Integer)\n                ->(Integer) }\n                { (Integer)\n                ->(Integer) }))))\n          (Generator\n            (TuplePattern\n            { (Integer)\n            ->(Integer) }\n              (VariableIdentifier))\n            (VariableIdentifier)))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (ListComprehension\n          (Tuple\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (Generator\n            (VariableIdentifier)\n            (Array\n              (Integer)\n              (Integer)\n            {-(Integer)-}\n            {-(Integer)-}))\n          (Generator\n            (VariableIdentifier)\n            (ArithmeticSequence\n              (Integer)\n            { (Integer)\n            ->(Integer) })))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (ListComprehension\n          (ListComprehension\n            (Tuple\n              (VariableIdentifier)\n              (VariableIdentifier))\n            (Generator\n              (VariableIdentifier)\n              (Array\n              {+(Integer)+}\n                (Integer)\n              {-(Integer)-})))\n          (Generator\n            (VariableIdentifier)\n            (ArithmeticSequence\n            { (Integer)\n            ->(Integer) })))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (App\n          (App\n            (VariableIdentifier)\n            (Empty)\n          { (Integer)\n          ->(Integer) })\n          (Empty)\n          (ListComprehension\n            (ListComprehension\n              (Tuple\n                (VariableIdentifier)\n                (VariableIdentifier))\n              (Generator\n                (VariableIdentifier)\n                (Array\n                  (Integer)\n                  (Integer))))\n            (Generator\n              (VariableIdentifier)\n              (ArithmeticSequence\n                (Integer)))))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (RightOperatorSection\n          (ConstructorOperator\n            (ConstructorSymbol))\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (RightOperatorSection\n          (ConstructorOperator\n            (ConstructorSymbol))\n          (VariableIdentifier))))\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(LeftOperatorSection\n        {+(VariableIdentifier)+}\n        {+(ConstructorOperator\n          {+(ConstructorSymbol)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(LeftOperatorSection\n        {+(VariableIdentifier)+}\n        {+(ConstructorOperator\n          {+(ConstructorSymbol)+})+})+})+})+}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(LeftOperatorSection\n        {-(VariableIdentifier)-}\n        {-(ConstructorOperator\n          {-(ConstructorSymbol)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(LeftOperatorSection\n        {-(VariableIdentifier)-}\n        {-(ConstructorOperator\n          {-(ConstructorSymbol)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(InfixVariableIdentifier)-})-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(QualifiedConstructorIdentifier\n        {-(ModuleIdentifier)-}\n        {-(ConstructorIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(ConstructorPattern\n      {-(Statements\n        {-(QualifiedConstructorIdentifier\n          {-(ModuleIdentifier)-}\n          {-(ConstructorIdentifier)-})-}\n        {-(VariableIdentifier)-})-})-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(ConstructorIdentifier)-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(InfixOperatorApp\n          {-(VariableIdentifier)-}\n          {-(Empty)-}\n          {-(VariableOperator\n            {-(VariableSymbol)-})-}\n          {-(InfixOperatorApp\n            {-(TextElement)-}\n            {-(Empty)-}\n            {-(VariableOperator\n              {-(VariableSymbol)-})-}\n            {-(InfixOperatorApp\n              {-(VariableIdentifier)-}\n              {-(Empty)-}\n              {-(VariableOperator\n                {-(VariableSymbol)-})-}\n              {-(InfixOperatorApp\n                {-(TextElement)-}\n                {-(Empty)-}\n                {-(VariableOperator\n                  {-(VariableSymbol)-})-}\n                {-(InfixOperatorApp\n                  {-(VariableIdentifier)-}\n                  {-(Empty)-}\n                  {-(VariableOperator\n                    {-(VariableSymbol)-})-}\n                  {-(InfixOperatorApp\n                    {-(TextElement)-}\n                    {-(Empty)-}\n                    {-(VariableOperator\n                      {-(VariableSymbol)-})-}\n                    {-(InfixOperatorApp\n                      {-(VariableIdentifier)-}\n                      {-(Empty)-}\n                      {-(VariableOperator\n                        {-(VariableSymbol)-})-}\n                      {-(TextElement)-})-})-})-})-})-})-})-})-})-})-}\n    (Function\n      (VariableIdentifier)\n      (Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(InfixVariableIdentifier)+})+}\n        {+(VariableIdentifier)+})+}\n      {-(Do\n        {-(BindPattern\n          {-(VariableIdentifier)-}\n          {-(InfixOperatorApp\n            {-(VariableIdentifier)-}\n            {-(Empty)-}\n            {-(VariableOperator\n              {-(VariableSymbol)-})-}\n            {-(VariableIdentifier)-})-})-}\n        {-(BindPattern\n          {-(VariableIdentifier)-}\n          {-(InfixOperatorApp\n            {-(VariableIdentifier)-}\n            {-(Empty)-}\n            {-(VariableOperator\n              {-(VariableSymbol)-})-}\n            {-(VariableIdentifier)-})-})-})-}))\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(QualifiedConstructorIdentifier\n        {+(ModuleIdentifier)+}\n        {+(ConstructorIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(ConstructorPattern\n      {+(Statements\n        {+(QualifiedConstructorIdentifier\n          {+(ModuleIdentifier)+}\n          {+(ConstructorIdentifier)+})+}\n        {+(VariableIdentifier)+})+})+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(ConstructorIdentifier)+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(InfixOperatorApp\n          {+(VariableIdentifier)+}\n          {+(Empty)+}\n          {+(VariableOperator\n            {+(VariableSymbol)+})+}\n          {+(InfixOperatorApp\n            {+(TextElement)+}\n            {+(Empty)+}\n            {+(VariableOperator\n              {+(VariableSymbol)+})+}\n            {+(InfixOperatorApp\n              {+(VariableIdentifier)+}\n              {+(Empty)+}\n              {+(VariableOperator\n                {+(VariableSymbol)+})+}\n              {+(InfixOperatorApp\n                {+(TextElement)+}\n                {+(Empty)+}\n                {+(VariableOperator\n                  {+(VariableSymbol)+})+}\n                {+(InfixOperatorApp\n                  {+(VariableIdentifier)+}\n                  {+(Empty)+}\n                  {+(VariableOperator\n                    {+(VariableSymbol)+})+}\n                  {+(InfixOperatorApp\n                    {+(TextElement)+}\n                    {+(Empty)+}\n                    {+(VariableOperator\n                      {+(VariableSymbol)+})+}\n                    {+(InfixOperatorApp\n                      {+(VariableIdentifier)+}\n                      {+(Empty)+}\n                      {+(VariableOperator\n                        {+(VariableSymbol)+})+}\n                      {+(TextElement)+})+})+})+})+})+})+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Do\n        {+(BindPattern\n          {+(VariableIdentifier)+}\n          {+(InfixOperatorApp\n            {+(VariableIdentifier)+}\n            {+(Empty)+}\n            {+(VariableOperator\n              {+(VariableSymbol)+})+}\n            {+(VariableIdentifier)+})+})+}\n        {+(BindPattern\n          {+(VariableIdentifier)+}\n          {+(InfixOperatorApp\n            {+(VariableIdentifier)+}\n            {+(Empty)+}\n            {+(VariableOperator\n              {+(VariableSymbol)+})+}\n            {+(VariableIdentifier)+})+})+})+})+})+}\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (Lambda\n          (VariableIdentifier)\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (Lambda\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (VariableIdentifier)))\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (Lambda\n          (VariableIdentifier)\n          (InfixOperatorApp\n            (VariableIdentifier)\n            (Empty)\n            (ConstructorOperator\n              (ConstructorSymbol))\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (ConstructorOperator\n                (ConstructorSymbol))\n              (VariableIdentifier))))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (Lambda\n          (Statements\n            (VariableIdentifier)\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (InfixOperatorApp\n            (VariableIdentifier)\n            (Empty)\n            (VariableOperator\n              (VariableSymbol))\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (VariableIdentifier))))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (VariableOperator\n          (VariableSymbol))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (InfixOperatorApp\n          (Integer)\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (Integer))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (PrefixNegation\n          (Integer))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (PrefixNegation\n          (VariableIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (PrefixNegation\n          (Integer))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (App\n            (App\n              (VariableIdentifier)\n              (Empty)\n              (Lambda\n              { (VariableIdentifier)\n              ->(VariableIdentifier) }\n                (InfixOperatorApp\n                  (Tuple\n                  { (VariableIdentifier)\n                  ->(VariableIdentifier) })\n                  (Empty)\n                  (VariableOperator\n                    (VariableSymbol))\n                  (InfixOperatorApp\n                    (ConstructorIdentifier)\n                    (Empty)\n                    (VariableOperator\n                      (VariableSymbol))\n                    (App\n                    { (VariableIdentifier)\n                    ->(VariableIdentifier) }\n                      (Empty)\n                    { (VariableIdentifier)\n                    ->(VariableIdentifier) })))))\n            (Empty)\n            (VariableIdentifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/expressions.parseA.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (App\n          (VariableIdentifier)\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (App\n          (App\n            (VariableIdentifier)\n            (Empty)\n            (VariableIdentifier))\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (App\n          (App\n            (App\n              (VariableIdentifier)\n              (Empty)\n              (VariableIdentifier))\n            (Empty)\n            (VariableIdentifier))\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (App\n          (ConstructorIdentifier)\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (App\n          (ConstructorIdentifier)\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (App\n          (App\n            (App\n              (ConstructorIdentifier)\n              (Empty)\n              (VariableIdentifier))\n            (Empty)\n            (VariableIdentifier))\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (UnitConstructor)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ArithmeticSequence\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ArithmeticSequence\n          (Integer)\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ArithmeticSequence\n          (Integer)\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ArithmeticSequence\n          (Integer)\n          (Integer)\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ListComprehension\n          (VariableIdentifier)\n          (Generator\n            (VariableIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ListComprehension\n          (Tuple\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (Generator\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (Generator\n            (VariableIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ListComprehension\n          (VariableIdentifier)\n          (Generator\n            (VariableIdentifier)\n            (Array\n              (Array\n                (Tuple\n                  (Integer)\n                  (Integer))\n                (Tuple\n                  (Integer)\n                  (Integer)))\n              (Array\n                (Tuple\n                  (Integer)\n                  (Integer))\n                (Tuple\n                  (Integer)\n                  (Integer)))))\n          (Generator\n            (TuplePattern\n              (Integer)\n              (VariableIdentifier))\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ListComprehension\n          (Tuple\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (Generator\n            (VariableIdentifier)\n            (Array\n              (Integer)\n              (Integer)))\n          (Generator\n            (VariableIdentifier)\n            (ArithmeticSequence\n              (Integer)\n              (Integer))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ListComprehension\n          (ListComprehension\n            (Tuple\n              (VariableIdentifier)\n              (VariableIdentifier))\n            (Generator\n              (VariableIdentifier)\n              (Array\n                (Integer)\n                (Integer))))\n          (Generator\n            (VariableIdentifier)\n            (ArithmeticSequence\n              (Integer))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (App\n          (App\n            (VariableIdentifier)\n            (Empty)\n            (Integer))\n          (Empty)\n          (ListComprehension\n            (ListComprehension\n              (Tuple\n                (VariableIdentifier)\n                (VariableIdentifier))\n              (Generator\n                (VariableIdentifier)\n                (Array\n                  (Integer)\n                  (Integer))))\n            (Generator\n              (VariableIdentifier)\n              (ArithmeticSequence\n                (Integer)))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (RightOperatorSection\n          (ConstructorOperator\n            (ConstructorSymbol))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (RightOperatorSection\n          (ConstructorOperator\n            (ConstructorSymbol))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (LeftOperatorSection\n          (VariableIdentifier)\n          (ConstructorOperator\n            (ConstructorSymbol)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (LeftOperatorSection\n          (VariableIdentifier)\n          (ConstructorOperator\n            (ConstructorSymbol)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (Empty)\n          (VariableOperator\n            (InfixVariableIdentifier))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (QualifiedConstructorIdentifier\n          (ModuleIdentifier)\n          (ConstructorIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (ConstructorPattern\n        (Statements\n          (QualifiedConstructorIdentifier\n            (ModuleIdentifier)\n            (ConstructorIdentifier))\n          (VariableIdentifier)))\n      (Statements\n        (InfixOperatorApp\n          (ConstructorIdentifier)\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (InfixOperatorApp\n            (VariableIdentifier)\n            (Empty)\n            (VariableOperator\n              (VariableSymbol))\n            (InfixOperatorApp\n              (TextElement)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (InfixOperatorApp\n                (VariableIdentifier)\n                (Empty)\n                (VariableOperator\n                  (VariableSymbol))\n                (InfixOperatorApp\n                  (TextElement)\n                  (Empty)\n                  (VariableOperator\n                    (VariableSymbol))\n                  (InfixOperatorApp\n                    (VariableIdentifier)\n                    (Empty)\n                    (VariableOperator\n                      (VariableSymbol))\n                    (InfixOperatorApp\n                      (TextElement)\n                      (Empty)\n                      (VariableOperator\n                        (VariableSymbol))\n                      (InfixOperatorApp\n                        (VariableIdentifier)\n                        (Empty)\n                        (VariableOperator\n                          (VariableSymbol))\n                        (TextElement)))))))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Do\n          (BindPattern\n            (VariableIdentifier)\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (VariableIdentifier)))\n          (BindPattern\n            (VariableIdentifier)\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (VariableIdentifier))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Lambda\n          (VariableIdentifier)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Lambda\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (VariableIdentifier)))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Lambda\n          (VariableIdentifier)\n          (InfixOperatorApp\n            (VariableIdentifier)\n            (Empty)\n            (ConstructorOperator\n              (ConstructorSymbol))\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (ConstructorOperator\n                (ConstructorSymbol))\n              (VariableIdentifier))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Lambda\n          (Statements\n            (VariableIdentifier)\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (InfixOperatorApp\n            (VariableIdentifier)\n            (Empty)\n            (VariableOperator\n              (VariableSymbol))\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (VariableIdentifier))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableOperator\n          (VariableSymbol))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (Integer)\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (PrefixNegation\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (PrefixNegation\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (PrefixNegation\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (App\n            (App\n              (VariableIdentifier)\n              (Empty)\n              (Lambda\n                (VariableIdentifier)\n                (InfixOperatorApp\n                  (Tuple\n                    (VariableIdentifier))\n                  (Empty)\n                  (VariableOperator\n                    (VariableSymbol))\n                  (InfixOperatorApp\n                    (ConstructorIdentifier)\n                    (Empty)\n                    (VariableOperator\n                      (VariableSymbol))\n                    (App\n                      (VariableIdentifier)\n                      (Empty)\n                      (VariableIdentifier))))))\n            (Empty)\n            (VariableIdentifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/expressions.parseB.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (App\n          (VariableIdentifier)\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (App\n          (App\n            (VariableIdentifier)\n            (Empty)\n            (VariableIdentifier))\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (App\n          (App\n            (App\n              (VariableIdentifier)\n              (Empty)\n              (VariableIdentifier))\n            (Empty)\n            (VariableIdentifier))\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (App\n          (ConstructorIdentifier)\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (App\n          (ConstructorIdentifier)\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (App\n          (App\n            (App\n              (ConstructorIdentifier)\n              (Empty)\n              (VariableIdentifier))\n            (Empty)\n            (VariableIdentifier))\n          (Empty)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (UnitConstructor)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ArithmeticSequence\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ArithmeticSequence\n          (Integer)\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ArithmeticSequence\n          (Integer)\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ArithmeticSequence\n          (Integer)\n          (Integer)\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ListComprehension\n          (VariableIdentifier)\n          (Generator\n            (VariableIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ListComprehension\n          (Tuple\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (Generator\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (Generator\n            (VariableIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ListComprehension\n          (VariableIdentifier)\n          (Generator\n            (VariableIdentifier)\n            (Array\n              (Array\n                (Tuple\n                  (Integer)\n                  (Integer))\n                (Tuple\n                  (Integer)\n                  (Integer)))\n              (Array\n                (Tuple\n                  (Integer)\n                  (Integer))\n                (Tuple\n                  (Integer)\n                  (Integer)))))\n          (Generator\n            (TuplePattern\n              (Integer)\n              (VariableIdentifier))\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ListComprehension\n          (Tuple\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (Generator\n            (VariableIdentifier)\n            (Array\n              (Integer)\n              (Integer)\n              (Integer)\n              (Integer)))\n          (Generator\n            (VariableIdentifier)\n            (ArithmeticSequence\n              (Integer)\n              (Integer))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ListComprehension\n          (ListComprehension\n            (Tuple\n              (VariableIdentifier)\n              (VariableIdentifier))\n            (Generator\n              (VariableIdentifier)\n              (Array\n                (Integer)\n                (Integer))))\n          (Generator\n            (VariableIdentifier)\n            (ArithmeticSequence\n              (Integer))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (App\n          (App\n            (VariableIdentifier)\n            (Empty)\n            (Integer))\n          (Empty)\n          (ListComprehension\n            (ListComprehension\n              (Tuple\n                (VariableIdentifier)\n                (VariableIdentifier))\n              (Generator\n                (VariableIdentifier)\n                (Array\n                  (Integer)\n                  (Integer))))\n            (Generator\n              (VariableIdentifier)\n              (ArithmeticSequence\n                (Integer)))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (RightOperatorSection\n          (ConstructorOperator\n            (ConstructorSymbol))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (RightOperatorSection\n          (ConstructorOperator\n            (ConstructorSymbol))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (LeftOperatorSection\n          (VariableIdentifier)\n          (ConstructorOperator\n            (ConstructorSymbol)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (LeftOperatorSection\n          (VariableIdentifier)\n          (ConstructorOperator\n            (ConstructorSymbol)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (Empty)\n          (VariableOperator\n            (InfixVariableIdentifier))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (QualifiedConstructorIdentifier\n          (ModuleIdentifier)\n          (ConstructorIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (ConstructorPattern\n        (Statements\n          (QualifiedConstructorIdentifier\n            (ModuleIdentifier)\n            (ConstructorIdentifier))\n          (VariableIdentifier)))\n      (Statements\n        (InfixOperatorApp\n          (ConstructorIdentifier)\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (InfixOperatorApp\n            (VariableIdentifier)\n            (Empty)\n            (VariableOperator\n              (VariableSymbol))\n            (InfixOperatorApp\n              (TextElement)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (InfixOperatorApp\n                (VariableIdentifier)\n                (Empty)\n                (VariableOperator\n                  (VariableSymbol))\n                (InfixOperatorApp\n                  (TextElement)\n                  (Empty)\n                  (VariableOperator\n                    (VariableSymbol))\n                  (InfixOperatorApp\n                    (VariableIdentifier)\n                    (Empty)\n                    (VariableOperator\n                      (VariableSymbol))\n                    (InfixOperatorApp\n                      (TextElement)\n                      (Empty)\n                      (VariableOperator\n                        (VariableSymbol))\n                      (InfixOperatorApp\n                        (VariableIdentifier)\n                        (Empty)\n                        (VariableOperator\n                          (VariableSymbol))\n                        (TextElement)))))))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Do\n          (BindPattern\n            (VariableIdentifier)\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (VariableIdentifier)))\n          (BindPattern\n            (VariableIdentifier)\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (VariableIdentifier))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Lambda\n          (VariableIdentifier)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Lambda\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (VariableIdentifier)))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Lambda\n          (VariableIdentifier)\n          (InfixOperatorApp\n            (VariableIdentifier)\n            (Empty)\n            (ConstructorOperator\n              (ConstructorSymbol))\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (ConstructorOperator\n                (ConstructorSymbol))\n              (VariableIdentifier))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Lambda\n          (Statements\n            (VariableIdentifier)\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (InfixOperatorApp\n            (VariableIdentifier)\n            (Empty)\n            (VariableOperator\n              (VariableSymbol))\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (VariableIdentifier))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableOperator\n          (VariableSymbol))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (Integer)\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (PrefixNegation\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (PrefixNegation\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (PrefixNegation\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (App\n            (App\n              (VariableIdentifier)\n              (Empty)\n              (Lambda\n                (VariableIdentifier)\n                (InfixOperatorApp\n                  (Tuple\n                    (VariableIdentifier))\n                  (Empty)\n                  (VariableOperator\n                    (VariableSymbol))\n                  (InfixOperatorApp\n                    (ConstructorIdentifier)\n                    (Empty)\n                    (VariableOperator\n                      (VariableSymbol))\n                    (App\n                      (VariableIdentifier)\n                      (Empty)\n                      (VariableIdentifier))))))\n            (Empty)\n            (VariableIdentifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/function-declarations.A.hs",
    "content": "f num1 num2 = num2\nf (Ex 1) = Ex 1\nf n@num1 x@num2 = x\nf _ num2 = num2\nf 1 2 = 3\nf \"hello\" \"world\" = \"goodbye\"\nf 'a' 'b' = 'c'\nf 1.0 2.0 = 3.0\nf Ex { a = 1 } = 1\nf Ex { a = 1, b = 2 } = 2\nf Ex {} = 2\nf Blob{start, end} = [start, end]\nf Blob{..} = [start, end]\nf Blob{start, end = end', ..} = [start, end', name, path]\nf (1) = 1\nf (-(1)) = 1\nf (Example a b c) = a\nf (a :<: f) = 2\nf ([]) = 1\nf (1, 2) = 1\nf ((Just 1), Just 2) = Just 1\nf (Just a, Nothing) = Nothing\nf (Left a, Right b, -(1)) = b\nf [] = 0\nf [a] = a\nf (a:bs) = a\nf (a:b:cs) = a\nf (a:b:c:ds) = a\nf ~a = 1\nf ~(-(1)) = 1\nf ~(~(a, b), c) = c\nf x = case x of\n  Just a | a < 10 -> True\n         | a < 20 -> False\n         | a > 19 -> True\n\ng x = case x of\n  Just a | a < 10, True, let b :: Int -> Int\n                             b x = x -> True\n  Nothing -> False\n\nf x = case x of\n  Just _ -> x where x = True\n  Nothing -> False\n\nf a = case a of\n  Just a -> g\n    where g = h\n          h = 1\n  Nothing -> i\n    where i = j\n          j = 2\n\nf a = case a of\n  Just a -> g\n  Nothing -> i\n  where g = 1\n        i = 2\n\nf = (\n    \\ a ->\n      case a of\n        A -> b\n        )\na = reify tcName >>= \\case\n      TyConI (DataD _ _ _ _ cons _) -> do\n        sigs <- filter (const makeSigs) <$> traverse genSig cons\n        decs <- traverse genDecl cons\n        pure $ sigs ++ decs\n\n      _ ->\n        fail \"makeEff expects a type constructor\"\n\nf x | x < 10, x > 2 = True\n    | otherwise = False\n\nf x = do\n  let z = x\n  y <- a\n  pure y\n\nf x = do\n  let z = x\n  a\n  y\n  where y = pure a\n        a = 1\n\nf y@Example = y { a = 1, b = 2 }\nf y@(Example { a = a', b = b' }) = y { a = a' + 1, b = b' ++ \" !\" }\n\nf = read @Int\nf = read @Int \"5\"\nf = read @Prelude.Int \"5\"\nf = read @Int . Prelude.id\nf = read @Prelude.Int . Prelude.id\nf = read @Int . id\nf = read @Prelude.Int . Prelude.id\nf = read @Int .id\nf = read @Prelude.Int .Prelude.id\nf = read @Int. id\nf = read @Prelude.Int. Prelude.id\nf = read @(x (Bar a))\n\nf = Data.List.uncons . id\nf = Data.List.uncons . Prelude.id\nf = Data.List.uncons. id\nf = Data.List.uncons. Prelude.id\nf = Data.List.uncons .id\nf = Data.List.uncons .Prelude.id\nf = Data.List.uncons.id\nf = Data.List.uncons.Prelude.id\n\nf = Bar ': Baz\nf = Bar ':<: Baz\n\nf = (<>)\nf = a <>\n\nf = 1 where\ng = 2 where\n\nf = a where\n  {- comment -}\nf = a where\n  {-\n-}\nf = a where\n  --\nf = a where\n  {-# COLUMN 42 #-}\n\nb = 2\n\neval (a :< b) (fmap subtermValue -> QualifiedName name iden) = bar\n\nsort :: (?cmp :: a -> a -> Bool) => [a] -> [a]\nsort = sortBy ?cmp\n\nb (E (u :: Union e b) q) = a\n\nifte :: ( IvoryStore a\n        , IvoryZero ('Stored a)\n        , GetAlloc eff ~ 'Scope s\n        ) => IBool\n          -> Ivory eff a\n          -> Ivory eff a\n          -> Ivory eff a\n\nnullErrorReporter logger = pure reportError\n  where\n    reportError ErrorReport{..} = let\n      msg = takeWhile (/= '\\n') (displayException errorReportException)\n      in logger msg errorReportContext\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/function-declarations.B.hs",
    "content": "g num1 num2 = num2\ng (Ex 1) = Ex 1\ng n@num1 x@num2 = x\ng _ num2 = num2\ng 1 2 = 3\ng \"hello\" \"world\" = \"goodbye\"\ng 'a' 'b' = 'c'\ng 1.0 2.0 = 3.0\ng Ex { a = 1 } = 1\ng Ex { a = 1, b = 2 } = 2\ng Ex {} = 2\ng Blob{start, end} = [start, end]\ng Blob{..} = [start, end]\ng Blob{start, end = end', ..} = [start, end', name, path]\ng c@Ex { a = 1 } = c\ng (1) = 1\ng (-(1)) = 1\ng (Example a b c) = a\ng (a :<: f) = 2\ng ([]) = 1\ng (1, 2) = 1\ng ((Just 1), Just 2) = Just 1\ng (Just a, Nothing) = Nothing\ng (Left a, Right b, -(1)) = b\ng [] = 0\ng [a] = a\ng (a:bs) = a\ng (a:b:cs) = a\ng (a:b:c:ds) = a\ng ~a = 1\ng ~(-(1)) = 1\ng ~(~(a, b), c) = c\ng x = case x of\n  Just a | a < 10 -> True\n         | a < 20 -> False\n         | a > 19 -> True\n\nf x = case x of\n  Just a | a < 10, True, let b :: Int -> Int\n                             b x = x -> True\n  Nothing -> False\n\ng x = case x of\n  Just _ -> x where x = True\n  Nothing -> False\n\ng a = case a of\n  Just a -> g\n    where g = h\n          h = 1\n  Nothing -> i\n    where i = j\n          j = 2\n\ng a = case a of\n  Just a -> g\n  Nothing -> i\n  where g = 1\n        i = 2\n\ng = (\n    \\ a ->\n      case a of\n        A -> b\n        )\nb = reify tcName >>= \\case\n      TyConI (DataD _ _ _ _ cons _) -> do\n        sigs <- filter (const makeSigs) <$> traverse genSig cons\n        decs <- traverse genDecl cons\n        pure $ sigs ++ decs\n\n      _ ->\n        fail \"makeEff expects a type constructor\"\n\ng y | y < 10, y > 2 = True\n    | otherwise = False\n\ng x = do\n  let z = x\n  y <- a\n  pure y\n\ng x = do\n  let z = x\n  a\n  y\n  where y = pure a\n        a = 1\n\ng y@Example = y { a = 1, b = 2 }\ng y@(Example { a = a', b = b' }) = y { a = a' + 1, b = b' ++ \" !\" }\n\ng = read @Int\ng = read @Int \"5\"\ng = read @Prelude.Int \"5\"\ng = read @Int . Prelude.id\ng = read @Prelude.Int . Prelude.id\ng = read @Int . id\ng = read @Prelude.Int . Prelude.id\ng = read @Int .id\ng = read @Prelude.Int .Prelude.id\ng = read @Int. id\ng = read @Prelude.Int. Prelude.id\ng = read @(x (Bar a))\n\ng = Data.List.uncons . id\ng = Data.List.uncons . Prelude.id\ng = Data.List.uncons. id\ng = Data.List.uncons. Prelude.id\ng = Data.List.uncons .id\ng = Data.List.uncons .Prelude.id\ng = Data.List.uncons.id\ng = Data.List.uncons.Prelude.id\n\ng = Bar ': Baz\ng = Bar ':<: Baz\n\ng = (<>)\ng = a <>\n\ng = 1 where\nh = 2 where\n\ng = a where\n  {- comment -}\ng = a where\n  {-\n-}\ng = a where\n  --\ng = a where\n  {-# COLUMN 42 #-}\n\nc = 2\n\neval' (a :< b) (fmap subtermValue -> QualifiedName name' iden) = foo\n\nsort' :: (?cmp :: a -> a -> Bool) => [a] -> [a]\nsort' = sortBy ?cmp\n\nc (F (u :: Union e b) q) = b\n\ng :: ( IvoryStore a\n     , IvoryZero ('Stored a)\n     , GetAlloc eff ~ 'Scope s\n     ) => IBool\n       -> Ivory eff a\n       -> Ivory eff a\n       -> Ivory eff a\n\nemptyErrorReporter logger = pure reportError\n  where\n    reportError ErrorReport{..} = let\n      msg = takeWhile (/= '\\n') (displayException errorReportException)\n      in logger msg errorReportContext\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/function-declarations.diffA-B.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(VariableIdentifier)-}\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(ConstructorPattern\n      {-(Statements\n        {-(ConstructorIdentifier)-}\n        {-(Integer)-})-})-}\n    {-(Statements\n      {-(App\n        {-(ConstructorIdentifier)-}\n        {-(Empty)-}\n        {-(Integer)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(AsPattern\n      {-(VariableIdentifier)-}\n      {-(VariableIdentifier)-})-}\n    {-(AsPattern\n      {-(VariableIdentifier)-}\n      {-(VariableIdentifier)-})-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Wildcard)-}\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Integer)-}\n    {-(Integer)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(TextElement)-}\n    {-(TextElement)-}\n    {-(Statements\n      {-(TextElement)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Character)-}\n    {-(Character)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Float)-}\n    {-(Float)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(LabeledPattern\n      {-(Statements\n        {-(ConstructorIdentifier)-}\n        {-(FieldPattern\n          {-(VariableIdentifier)-}\n          {-(Integer)-})-})-})-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(LabeledPattern\n      {-(Statements\n        {-(ConstructorIdentifier)-}\n        {-(FieldPattern\n          {-(VariableIdentifier)-}\n          {-(Integer)-})-}\n        {-(FieldPattern\n          {-(VariableIdentifier)-}\n          {-(Integer)-})-})-})-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(LabeledPattern\n      {-(ConstructorIdentifier)-})-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(LabeledPattern\n      {-(Statements\n        {-(ConstructorIdentifier)-}\n        {-(NamedFieldPun\n          {-(VariableIdentifier)-})-}\n        {-(NamedFieldPun\n          {-(VariableIdentifier)-})-})-})-}\n    {-(Statements\n      {-(Array\n        {-(VariableIdentifier)-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(LabeledPattern\n      {-(Statements\n        {-(ConstructorIdentifier)-}\n        {-(RecordWildCards)-})-})-}\n    {-(Statements\n      {-(Array\n        {-(VariableIdentifier)-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(LabeledPattern\n      {-(Statements\n        {-(ConstructorIdentifier)-}\n        {-(NamedFieldPun\n          {-(VariableIdentifier)-})-}\n        {-(FieldPattern\n          {-(VariableIdentifier)-}\n          {-(VariableIdentifier)-})-}\n        {-(RecordWildCards)-})-})-}\n    {-(Statements\n      {-(Array\n        {-(VariableIdentifier)-}\n        {-(VariableIdentifier)-}\n        {-(VariableIdentifier)-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Integer)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(NegativeLiteral\n      {-(Integer)-})-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(ConstructorPattern\n      {-(Statements\n        {-(ConstructorIdentifier)-}\n        {-(VariableIdentifier)-}\n        {-(VariableIdentifier)-}\n        {-(VariableIdentifier)-})-})-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(ConstructorOperator\n        {-(ConstructorSymbol)-})-}\n      {-(VariableIdentifier)-})-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(ListConstructor)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(TuplePattern\n      {-(Integer)-}\n      {-(Integer)-})-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(TuplePattern\n      {-(ConstructorPattern\n        {-(Statements\n          {-(ConstructorIdentifier)-}\n          {-(Integer)-})-})-}\n      {-(ConstructorPattern\n        {-(Statements\n          {-(ConstructorIdentifier)-}\n          {-(Integer)-})-})-})-}\n    {-(Statements\n      {-(App\n        {-(ConstructorIdentifier)-}\n        {-(Empty)-}\n        {-(Integer)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(TuplePattern\n      {-(ConstructorPattern\n        {-(Statements\n          {-(ConstructorIdentifier)-}\n          {-(VariableIdentifier)-})-})-}\n      {-(ConstructorIdentifier)-})-}\n    {-(Statements\n      {-(ConstructorIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(TuplePattern\n      {-(ConstructorPattern\n        {-(Statements\n          {-(ConstructorIdentifier)-}\n          {-(VariableIdentifier)-})-})-}\n      {-(ConstructorPattern\n        {-(Statements\n          {-(ConstructorIdentifier)-}\n          {-(VariableIdentifier)-})-})-}\n      {-(NegativeLiteral\n        {-(Integer)-})-})-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(ListConstructor)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(ListPattern\n      {-(VariableIdentifier)-})-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(ConstructorOperator\n        {-(ConstructorSymbol)-})-}\n      {-(VariableIdentifier)-})-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(ConstructorOperator\n        {-(ConstructorSymbol)-})-}\n      {-(VariableIdentifier)-}\n      {-(ConstructorOperator\n        {-(ConstructorSymbol)-})-}\n      {-(VariableIdentifier)-})-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(ConstructorOperator\n        {-(ConstructorSymbol)-})-}\n      {-(VariableIdentifier)-}\n      {-(ConstructorOperator\n        {-(ConstructorSymbol)-})-}\n      {-(VariableIdentifier)-}\n      {-(ConstructorOperator\n        {-(ConstructorSymbol)-})-}\n      {-(VariableIdentifier)-})-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(IrrefutablePattern\n      {-(VariableIdentifier)-})-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(IrrefutablePattern\n      {-(NegativeLiteral\n        {-(Integer)-})-})-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(IrrefutablePattern\n      {-(TuplePattern\n        {-(IrrefutablePattern\n          {-(TuplePattern\n            {-(VariableIdentifier)-}\n            {-(VariableIdentifier)-})-})-}\n        {-(VariableIdentifier)-})-})-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Match\n        {-(VariableIdentifier)-}\n        {-(Pattern\n          {-(ConstructorPattern\n            {-(Statements\n              {-(ConstructorIdentifier)-}\n              {-(VariableIdentifier)-})-})-}\n          {-(Statements\n            {-(CaseGuardPattern\n              {-(Guard\n                {-(InfixOperatorApp\n                  {-(VariableIdentifier)-}\n                  {-(Empty)-}\n                  {-(VariableOperator\n                    {-(VariableSymbol)-})-}\n                  {-(Integer)-})-})-}\n              {-(ConstructorIdentifier)-})-}\n            {-(CaseGuardPattern\n              {-(Guard\n                {-(InfixOperatorApp\n                  {-(VariableIdentifier)-}\n                  {-(Empty)-}\n                  {-(VariableOperator\n                    {-(VariableSymbol)-})-}\n                  {-(Integer)-})-})-}\n              {-(ConstructorIdentifier)-})-}\n            {-(CaseGuardPattern\n              {-(Guard\n                {-(InfixOperatorApp\n                  {-(VariableIdentifier)-}\n                  {-(Empty)-}\n                  {-(VariableOperator\n                    {-(VariableSymbol)-})-}\n                  {-(Integer)-})-})-}\n              {-(ConstructorIdentifier)-})-})-})-})-})-})-}\n    (Function\n      (VariableIdentifier)\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n    {+(VariableIdentifier)+}\n      (Statements\n      {+(VariableIdentifier)+}\n      {-(Match\n        {-(VariableIdentifier)-}\n        {-(Statements\n          {-(Pattern\n            {-(ConstructorPattern\n              {-(Statements\n                {-(ConstructorIdentifier)-}\n                {-(VariableIdentifier)-})-})-}\n            {-(CaseGuardPattern\n              {-(Guard\n                {-(InfixOperatorApp\n                  {-(VariableIdentifier)-}\n                  {-(Empty)-}\n                  {-(VariableOperator\n                    {-(VariableSymbol)-})-}\n                  {-(Integer)-})-})-}\n              {-(Guard\n                {-(ConstructorIdentifier)-})-}\n              {-(Guard\n                {-(Let\n                  {-(TypeSignature\n                    {-(VariableIdentifier)-}\n                    {-(FunctionType\n                      {-(Type\n                        {-(TypeConstructorIdentifier)-}\n                        {-(TypeParameters)-}\n                        {-(Empty)-})-}\n                      {-(Type\n                        {-(TypeConstructorIdentifier)-}\n                        {-(TypeParameters)-}\n                        {-(Empty)-})-})-})-}\n                  {-(Function\n                    {-(VariableIdentifier)-}\n                    {-(VariableIdentifier)-}\n                    {-(Statements\n                      {-(VariableIdentifier)-})-})-}\n                  {-(Empty)-})-})-}\n              {-(ConstructorIdentifier)-})-})-}\n          {-(Pattern\n            {-(ConstructorIdentifier)-}\n            {-(ConstructorIdentifier)-})-})-})-}))\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Match\n        {-(VariableIdentifier)-}\n        {-(Statements\n          {-(Pattern\n            {-(ConstructorPattern\n              {-(Statements\n                {-(ConstructorIdentifier)-}\n                {-(Wildcard)-})-})-}\n            {-(Statements\n              {-(VariableIdentifier)-}\n              {-(Statements\n                {-(Function\n                  {-(VariableIdentifier)-}\n                  {-(Statements\n                    {-(ConstructorIdentifier)-})-})-})-})-})-}\n          {-(Pattern\n            {-(ConstructorIdentifier)-}\n            {-(ConstructorIdentifier)-})-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Match\n        {-(VariableIdentifier)-}\n        {-(Statements\n          {-(Pattern\n            {-(ConstructorPattern\n              {-(Statements\n                {-(ConstructorIdentifier)-}\n                {-(VariableIdentifier)-})-})-}\n            {-(Statements\n              {-(VariableIdentifier)-}\n              {-(Statements\n                {-(Function\n                  {-(VariableIdentifier)-}\n                  {-(Statements\n                    {-(VariableIdentifier)-})-})-}\n                {-(Function\n                  {-(VariableIdentifier)-}\n                  {-(Statements\n                    {-(Integer)-})-})-})-})-})-}\n          {-(Pattern\n            {-(ConstructorIdentifier)-}\n            {-(Statements\n              {-(VariableIdentifier)-}\n              {-(Statements\n                {-(Function\n                  {-(VariableIdentifier)-}\n                  {-(Statements\n                    {-(VariableIdentifier)-})-})-}\n                {-(Function\n                  {-(VariableIdentifier)-}\n                  {-(Statements\n                    {-(Integer)-})-})-})-})-})-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Match\n        {-(VariableIdentifier)-}\n        {-(Statements\n          {-(Pattern\n            {-(ConstructorPattern\n              {-(Statements\n                {-(ConstructorIdentifier)-}\n                {-(VariableIdentifier)-})-})-}\n            {-(VariableIdentifier)-})-}\n          {-(Pattern\n            {-(ConstructorIdentifier)-}\n            {-(VariableIdentifier)-})-}\n          {-(Statements\n            {-(Function\n              {-(VariableIdentifier)-}\n              {-(Statements\n                {-(Integer)-})-})-}\n            {-(Function\n              {-(VariableIdentifier)-}\n              {-(Statements\n                {-(Integer)-})-})-})-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Lambda\n        {-(VariableIdentifier)-}\n        {-(Match\n          {-(VariableIdentifier)-}\n          {-(Pattern\n            {-(ConstructorIdentifier)-}\n            {-(VariableIdentifier)-})-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(App\n          {-(VariableIdentifier)-}\n          {-(Empty)-}\n          {-(VariableIdentifier)-})-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(LambdaCase\n          {-(Pattern\n            {-(ConstructorPattern\n              {-(Statements\n                {-(ConstructorIdentifier)-}\n                {-(ConstructorPattern\n                  {-(Statements\n                    {-(ConstructorIdentifier)-}\n                    {-(Wildcard)-}\n                    {-(Wildcard)-}\n                    {-(Wildcard)-}\n                    {-(Wildcard)-}\n                    {-(VariableIdentifier)-}\n                    {-(Wildcard)-})-})-})-})-}\n            {-(Do\n              {-(BindPattern\n                {-(VariableIdentifier)-}\n                {-(InfixOperatorApp\n                  {-(App\n                    {-(VariableIdentifier)-}\n                    {-(Empty)-}\n                    {-(App\n                      {-(VariableIdentifier)-}\n                      {-(Empty)-}\n                      {-(VariableIdentifier)-})-})-}\n                  {-(Empty)-}\n                  {-(VariableOperator\n                    {-(VariableSymbol)-})-}\n                  {-(App\n                    {-(App\n                      {-(VariableIdentifier)-}\n                      {-(Empty)-}\n                      {-(VariableIdentifier)-})-}\n                    {-(Empty)-}\n                    {-(VariableIdentifier)-})-})-})-}\n              {-(BindPattern\n                {-(VariableIdentifier)-}\n                {-(App\n                  {-(App\n                    {-(VariableIdentifier)-}\n                    {-(Empty)-}\n                    {-(VariableIdentifier)-})-}\n                  {-(Empty)-}\n                  {-(VariableIdentifier)-})-})-}\n              {-(InfixOperatorApp\n                {-(VariableIdentifier)-}\n                {-(Empty)-}\n                {-(VariableOperator\n                  {-(VariableSymbol)-})-}\n                {-(InfixOperatorApp\n                  {-(VariableIdentifier)-}\n                  {-(Empty)-}\n                  {-(VariableOperator\n                    {-(VariableSymbol)-})-}\n                  {-(VariableIdentifier)-})-})-})-})-}\n          {-(Pattern\n            {-(Wildcard)-}\n            {-(App\n              {-(VariableIdentifier)-}\n              {-(Empty)-}\n              {-(TextElement)-})-})-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(FunctionGuardPattern\n        {-(Guard\n          {-(InfixOperatorApp\n            {-(VariableIdentifier)-}\n            {-(Empty)-}\n            {-(VariableOperator\n              {-(VariableSymbol)-})-}\n            {-(Integer)-})-})-}\n        {-(Guard\n          {-(InfixOperatorApp\n            {-(VariableIdentifier)-}\n            {-(Empty)-}\n            {-(VariableOperator\n              {-(VariableSymbol)-})-}\n            {-(Integer)-})-})-}\n        {-(ConstructorIdentifier)-})-}\n      {-(FunctionGuardPattern\n        {-(Guard\n          {-(VariableIdentifier)-})-}\n        {-(ConstructorIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Do\n        {-(Let\n          {-(Function\n            {-(VariableIdentifier)-}\n            {-(Statements\n              {-(VariableIdentifier)-})-})-}\n          {-(Empty)-})-}\n        {-(BindPattern\n          {-(VariableIdentifier)-}\n          {-(VariableIdentifier)-})-}\n        {-(App\n          {-(VariableIdentifier)-}\n          {-(Empty)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Do\n        {-(Let\n          {-(Function\n            {-(VariableIdentifier)-}\n            {-(Statements\n              {-(VariableIdentifier)-})-})-}\n          {-(Empty)-})-}\n        {-(VariableIdentifier)-}\n        {-(VariableIdentifier)-}\n        {-(Statements\n          {-(Function\n            {-(VariableIdentifier)-}\n            {-(Statements\n              {-(App\n                {-(VariableIdentifier)-}\n                {-(Empty)-}\n                {-(VariableIdentifier)-})-})-})-}\n          {-(Function\n            {-(VariableIdentifier)-}\n            {-(Statements\n              {-(Integer)-})-})-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(AsPattern\n      {-(VariableIdentifier)-}\n      {-(ConstructorIdentifier)-})-}\n    {-(Statements\n      {-(LabeledUpdate\n        {-(VariableIdentifier)-}\n        {-(FieldBind\n          {-(VariableIdentifier)-}\n          {-(Integer)-})-}\n        {-(FieldBind\n          {-(VariableIdentifier)-}\n          {-(Integer)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(AsPattern\n      {-(VariableIdentifier)-}\n      {-(LabeledPattern\n        {-(Statements\n          {-(ConstructorIdentifier)-}\n          {-(FieldPattern\n            {-(VariableIdentifier)-}\n            {-(VariableIdentifier)-})-}\n          {-(FieldPattern\n            {-(VariableIdentifier)-}\n            {-(VariableIdentifier)-})-})-})-})-}\n    {-(Statements\n      {-(LabeledUpdate\n        {-(VariableIdentifier)-}\n        {-(FieldBind\n          {-(VariableIdentifier)-}\n          {-(InfixOperatorApp\n            {-(VariableIdentifier)-}\n            {-(Empty)-}\n            {-(VariableOperator\n              {-(VariableSymbol)-})-}\n            {-(Integer)-})-})-}\n        {-(FieldBind\n          {-(VariableIdentifier)-}\n          {-(InfixOperatorApp\n            {-(VariableIdentifier)-}\n            {-(Empty)-}\n            {-(VariableOperator\n              {-(VariableSymbol)-})-}\n            {-(TextElement)-})-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(TypeApp\n        {-(ConstructorIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(TypeApp\n        {-(ConstructorPattern\n          {-(Statements\n            {-(ConstructorIdentifier)-}\n            {-(TextElement)-})-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(TypeApp\n        {-(ConstructorPattern\n          {-(Statements\n            {-(QualifiedConstructorIdentifier\n              {-(ModuleIdentifier)-}\n              {-(ConstructorIdentifier)-})-}\n            {-(TextElement)-})-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(TypeApp\n          {-(ConstructorIdentifier)-})-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(QualifiedVariableIdentifier\n          {-(ModuleIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(TypeApp\n          {-(QualifiedConstructorIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ConstructorIdentifier)-})-})-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(QualifiedVariableIdentifier\n          {-(ModuleIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(TypeApp\n          {-(ConstructorIdentifier)-})-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(TypeApp\n          {-(QualifiedConstructorIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ConstructorIdentifier)-})-})-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(QualifiedVariableIdentifier\n          {-(ModuleIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(TypeApp\n          {-(ConstructorIdentifier)-})-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(TypeApp\n          {-(QualifiedConstructorIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ConstructorIdentifier)-})-})-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(QualifiedVariableIdentifier\n          {-(ModuleIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(TypeApp\n          {-(ConstructorIdentifier)-})-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(TypeApp\n          {-(QualifiedConstructorIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ConstructorIdentifier)-})-})-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(QualifiedVariableIdentifier\n          {-(ModuleIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(TypeApp\n        {-(App\n          {-(VariableIdentifier)-}\n          {-(Empty)-}\n          {-(App\n            {-(ConstructorIdentifier)-}\n            {-(Empty)-}\n            {-(VariableIdentifier)-})-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(QualifiedVariableIdentifier\n          {-(QualifiedModuleIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ModuleIdentifier)-})-}\n          {-(VariableIdentifier)-})-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(QualifiedVariableIdentifier\n          {-(QualifiedModuleIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ModuleIdentifier)-})-}\n          {-(VariableIdentifier)-})-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(QualifiedVariableIdentifier\n          {-(ModuleIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(QualifiedVariableIdentifier\n          {-(QualifiedModuleIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ModuleIdentifier)-})-}\n          {-(VariableIdentifier)-})-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(QualifiedVariableIdentifier\n          {-(QualifiedModuleIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ModuleIdentifier)-})-}\n          {-(VariableIdentifier)-})-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(QualifiedVariableIdentifier\n          {-(ModuleIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(QualifiedVariableIdentifier\n          {-(QualifiedModuleIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ModuleIdentifier)-})-}\n          {-(VariableIdentifier)-})-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(QualifiedVariableIdentifier\n          {-(QualifiedModuleIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ModuleIdentifier)-})-}\n          {-(VariableIdentifier)-})-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(QualifiedVariableIdentifier\n          {-(ModuleIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(QualifiedVariableIdentifier\n          {-(QualifiedModuleIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ModuleIdentifier)-})-}\n          {-(VariableIdentifier)-})-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(QualifiedVariableIdentifier\n          {-(QualifiedModuleIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ModuleIdentifier)-})-}\n          {-(VariableIdentifier)-})-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(QualifiedVariableIdentifier\n          {-(ModuleIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(ConstructorIdentifier)-}\n        {-(Empty)-}\n        {-(PromotedTypeOperator\n          {-(ConstructorOperator\n            {-(ConstructorSymbol)-})-})-}\n        {-(ConstructorIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(ConstructorIdentifier)-}\n        {-(Empty)-}\n        {-(PromotedTypeOperator\n          {-(ConstructorOperator\n            {-(ConstructorSymbol)-})-})-}\n        {-(ConstructorIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableOperator\n        {-(VariableSymbol)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(Statements)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Integer)-}\n      {-(Statements)-})-})-}\n    (Function\n      (VariableIdentifier)\n    {+(ConstructorPattern\n      {+(Statements\n        {+(ConstructorIdentifier)+}\n        {+(Integer)+})+})+}\n      (Statements\n      {+(App\n        {+(ConstructorIdentifier)+}\n        {+(Empty)+}\n        {+(Integer)+})+}\n      {-(Integer)-}\n      {-(Statements)-}))\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(AsPattern\n      {+(VariableIdentifier)+}\n      {+(VariableIdentifier)+})+}\n    {+(AsPattern\n      {+(VariableIdentifier)+}\n      {+(VariableIdentifier)+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Wildcard)+}\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Integer)+}\n    {+(Integer)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(TextElement)+}\n    {+(TextElement)+}\n    {+(Statements\n      {+(TextElement)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Character)+}\n    {+(Character)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Float)+}\n    {+(Float)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(LabeledPattern\n      {+(Statements\n        {+(ConstructorIdentifier)+}\n        {+(FieldPattern\n          {+(VariableIdentifier)+}\n          {+(Integer)+})+})+})+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(LabeledPattern\n      {+(Statements\n        {+(ConstructorIdentifier)+}\n        {+(FieldPattern\n          {+(VariableIdentifier)+}\n          {+(Integer)+})+}\n        {+(FieldPattern\n          {+(VariableIdentifier)+}\n          {+(Integer)+})+})+})+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(LabeledPattern\n      {+(ConstructorIdentifier)+})+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(LabeledPattern\n      {+(Statements\n        {+(ConstructorIdentifier)+}\n        {+(NamedFieldPun\n          {+(VariableIdentifier)+})+}\n        {+(NamedFieldPun\n          {+(VariableIdentifier)+})+})+})+}\n    {+(Statements\n      {+(Array\n        {+(VariableIdentifier)+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(LabeledPattern\n      {+(Statements\n        {+(ConstructorIdentifier)+}\n        {+(RecordWildCards)+})+})+}\n    {+(Statements\n      {+(Array\n        {+(VariableIdentifier)+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(LabeledPattern\n      {+(Statements\n        {+(ConstructorIdentifier)+}\n        {+(NamedFieldPun\n          {+(VariableIdentifier)+})+}\n        {+(FieldPattern\n          {+(VariableIdentifier)+}\n          {+(VariableIdentifier)+})+}\n        {+(RecordWildCards)+})+})+}\n    {+(Statements\n      {+(Array\n        {+(VariableIdentifier)+}\n        {+(VariableIdentifier)+}\n        {+(VariableIdentifier)+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(AsPattern\n      {+(VariableIdentifier)+}\n      {+(LabeledPattern\n        {+(Statements\n          {+(ConstructorIdentifier)+}\n          {+(FieldPattern\n            {+(VariableIdentifier)+}\n            {+(Integer)+})+})+})+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Integer)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(NegativeLiteral\n      {+(Integer)+})+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(ConstructorPattern\n      {+(Statements\n        {+(ConstructorIdentifier)+}\n        {+(VariableIdentifier)+}\n        {+(VariableIdentifier)+}\n        {+(VariableIdentifier)+})+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(ConstructorOperator\n        {+(ConstructorSymbol)+})+}\n      {+(VariableIdentifier)+})+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(ListConstructor)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(TuplePattern\n      {+(Integer)+}\n      {+(Integer)+})+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(TuplePattern\n      {+(ConstructorPattern\n        {+(Statements\n          {+(ConstructorIdentifier)+}\n          {+(Integer)+})+})+}\n      {+(ConstructorPattern\n        {+(Statements\n          {+(ConstructorIdentifier)+}\n          {+(Integer)+})+})+})+}\n    {+(Statements\n      {+(App\n        {+(ConstructorIdentifier)+}\n        {+(Empty)+}\n        {+(Integer)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(TuplePattern\n      {+(ConstructorPattern\n        {+(Statements\n          {+(ConstructorIdentifier)+}\n          {+(VariableIdentifier)+})+})+}\n      {+(ConstructorIdentifier)+})+}\n    {+(Statements\n      {+(ConstructorIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(TuplePattern\n      {+(ConstructorPattern\n        {+(Statements\n          {+(ConstructorIdentifier)+}\n          {+(VariableIdentifier)+})+})+}\n      {+(ConstructorPattern\n        {+(Statements\n          {+(ConstructorIdentifier)+}\n          {+(VariableIdentifier)+})+})+}\n      {+(NegativeLiteral\n        {+(Integer)+})+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(ListConstructor)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(ListPattern\n      {+(VariableIdentifier)+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(ConstructorOperator\n        {+(ConstructorSymbol)+})+}\n      {+(VariableIdentifier)+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(ConstructorOperator\n        {+(ConstructorSymbol)+})+}\n      {+(VariableIdentifier)+}\n      {+(ConstructorOperator\n        {+(ConstructorSymbol)+})+}\n      {+(VariableIdentifier)+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(ConstructorOperator\n        {+(ConstructorSymbol)+})+}\n      {+(VariableIdentifier)+}\n      {+(ConstructorOperator\n        {+(ConstructorSymbol)+})+}\n      {+(VariableIdentifier)+}\n      {+(ConstructorOperator\n        {+(ConstructorSymbol)+})+}\n      {+(VariableIdentifier)+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(IrrefutablePattern\n      {+(VariableIdentifier)+})+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(IrrefutablePattern\n      {+(NegativeLiteral\n        {+(Integer)+})+})+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(IrrefutablePattern\n      {+(TuplePattern\n        {+(IrrefutablePattern\n          {+(TuplePattern\n            {+(VariableIdentifier)+}\n            {+(VariableIdentifier)+})+})+}\n        {+(VariableIdentifier)+})+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Match\n        {+(VariableIdentifier)+}\n        {+(Pattern\n          {+(ConstructorPattern\n            {+(Statements\n              {+(ConstructorIdentifier)+}\n              {+(VariableIdentifier)+})+})+}\n          {+(Statements\n            {+(CaseGuardPattern\n              {+(Guard\n                {+(InfixOperatorApp\n                  {+(VariableIdentifier)+}\n                  {+(Empty)+}\n                  {+(VariableOperator\n                    {+(VariableSymbol)+})+}\n                  {+(Integer)+})+})+}\n              {+(ConstructorIdentifier)+})+}\n            {+(CaseGuardPattern\n              {+(Guard\n                {+(InfixOperatorApp\n                  {+(VariableIdentifier)+}\n                  {+(Empty)+}\n                  {+(VariableOperator\n                    {+(VariableSymbol)+})+}\n                  {+(Integer)+})+})+}\n              {+(ConstructorIdentifier)+})+}\n            {+(CaseGuardPattern\n              {+(Guard\n                {+(InfixOperatorApp\n                  {+(VariableIdentifier)+}\n                  {+(Empty)+}\n                  {+(VariableOperator\n                    {+(VariableSymbol)+})+}\n                  {+(Integer)+})+})+}\n              {+(ConstructorIdentifier)+})+})+})+})+})+})+}\n    (Function\n      (VariableIdentifier)\n    {+(VariableIdentifier)+}\n      (Statements\n      {+(Match\n        {+(VariableIdentifier)+}\n        {+(Statements\n          {+(Pattern\n            {+(ConstructorPattern\n              {+(Statements\n                {+(ConstructorIdentifier)+}\n                {+(VariableIdentifier)+})+})+}\n            {+(CaseGuardPattern\n              {+(Guard\n                {+(InfixOperatorApp\n                  {+(VariableIdentifier)+}\n                  {+(Empty)+}\n                  {+(VariableOperator\n                    {+(VariableSymbol)+})+}\n                  {+(Integer)+})+})+}\n              {+(Guard\n                {+(ConstructorIdentifier)+})+}\n              {+(Guard\n                {+(Let\n                  {+(TypeSignature\n                    {+(VariableIdentifier)+}\n                    {+(FunctionType\n                      {+(Type\n                        {+(TypeConstructorIdentifier)+}\n                        {+(TypeParameters)+}\n                        {+(Empty)+})+}\n                      {+(Type\n                        {+(TypeConstructorIdentifier)+}\n                        {+(TypeParameters)+}\n                        {+(Empty)+})+})+})+}\n                  {+(Function\n                    {+(VariableIdentifier)+}\n                    {+(VariableIdentifier)+}\n                    {+(Statements\n                      {+(VariableIdentifier)+})+})+}\n                  {+(Empty)+})+})+}\n              {+(ConstructorIdentifier)+})+})+}\n          {+(Pattern\n            {+(ConstructorIdentifier)+}\n            {+(ConstructorIdentifier)+})+})+})+}\n      {-(VariableIdentifier)-}\n      {-(Statements\n        {-(Comment)-})-}))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n    {+(VariableIdentifier)+}\n      (Statements\n      {+(Match\n        {+(VariableIdentifier)+}\n        {+(Statements\n          {+(Pattern\n            {+(ConstructorPattern\n              {+(Statements\n                {+(ConstructorIdentifier)+}\n                {+(Wildcard)+})+})+}\n            {+(Statements\n              {+(VariableIdentifier)+}\n              {+(Statements\n                {+(Function\n                  {+(VariableIdentifier)+}\n                  {+(Statements\n                    {+(ConstructorIdentifier)+})+})+})+})+})+}\n          {+(Pattern\n            {+(ConstructorIdentifier)+}\n            {+(ConstructorIdentifier)+})+})+})+}\n      {-(VariableIdentifier)-}\n      {-(Statements\n        {-(Comment)-})-}))\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Match\n        {+(VariableIdentifier)+}\n        {+(Statements\n          {+(Pattern\n            {+(ConstructorPattern\n              {+(Statements\n                {+(ConstructorIdentifier)+}\n                {+(VariableIdentifier)+})+})+}\n            {+(Statements\n              {+(VariableIdentifier)+}\n              {+(Statements\n                {+(Function\n                  {+(VariableIdentifier)+}\n                  {+(Statements\n                    {+(VariableIdentifier)+})+})+}\n                {+(Function\n                  {+(VariableIdentifier)+}\n                  {+(Statements\n                    {+(Integer)+})+})+})+})+})+}\n          {+(Pattern\n            {+(ConstructorIdentifier)+}\n            {+(Statements\n              {+(VariableIdentifier)+}\n              {+(Statements\n                {+(Function\n                  {+(VariableIdentifier)+}\n                  {+(Statements\n                    {+(VariableIdentifier)+})+})+}\n                {+(Function\n                  {+(VariableIdentifier)+}\n                  {+(Statements\n                    {+(Integer)+})+})+})+})+})+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Match\n        {+(VariableIdentifier)+}\n        {+(Statements\n          {+(Pattern\n            {+(ConstructorPattern\n              {+(Statements\n                {+(ConstructorIdentifier)+}\n                {+(VariableIdentifier)+})+})+}\n            {+(VariableIdentifier)+})+}\n          {+(Pattern\n            {+(ConstructorIdentifier)+}\n            {+(VariableIdentifier)+})+}\n          {+(Statements\n            {+(Function\n              {+(VariableIdentifier)+}\n              {+(Statements\n                {+(Integer)+})+})+}\n            {+(Function\n              {+(VariableIdentifier)+}\n              {+(Statements\n                {+(Integer)+})+})+})+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Lambda\n        {+(VariableIdentifier)+}\n        {+(Match\n          {+(VariableIdentifier)+}\n          {+(Pattern\n            {+(ConstructorIdentifier)+}\n            {+(VariableIdentifier)+})+})+})+})+})+}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(Statements\n        {-(Comment)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(Statements\n        {-(Pragma)-})-})-})-}\n    (Function\n      (VariableIdentifier)\n      (Statements\n      {+(InfixOperatorApp\n        {+(App\n          {+(VariableIdentifier)+}\n          {+(Empty)+}\n          {+(VariableIdentifier)+})+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(LambdaCase\n          {+(Pattern\n            {+(ConstructorPattern\n              {+(Statements\n                {+(ConstructorIdentifier)+}\n                {+(ConstructorPattern\n                  {+(Statements\n                    {+(ConstructorIdentifier)+}\n                    {+(Wildcard)+}\n                    {+(Wildcard)+}\n                    {+(Wildcard)+}\n                    {+(Wildcard)+}\n                    {+(VariableIdentifier)+}\n                    {+(Wildcard)+})+})+})+})+}\n            {+(Do\n              {+(BindPattern\n                {+(VariableIdentifier)+}\n                {+(InfixOperatorApp\n                  {+(App\n                    {+(VariableIdentifier)+}\n                    {+(Empty)+}\n                    {+(App\n                      {+(VariableIdentifier)+}\n                      {+(Empty)+}\n                      {+(VariableIdentifier)+})+})+}\n                  {+(Empty)+}\n                  {+(VariableOperator\n                    {+(VariableSymbol)+})+}\n                  {+(App\n                    {+(App\n                      {+(VariableIdentifier)+}\n                      {+(Empty)+}\n                      {+(VariableIdentifier)+})+}\n                    {+(Empty)+}\n                    {+(VariableIdentifier)+})+})+})+}\n              {+(BindPattern\n                {+(VariableIdentifier)+}\n                {+(App\n                  {+(App\n                    {+(VariableIdentifier)+}\n                    {+(Empty)+}\n                    {+(VariableIdentifier)+})+}\n                  {+(Empty)+}\n                  {+(VariableIdentifier)+})+})+}\n              {+(InfixOperatorApp\n                {+(VariableIdentifier)+}\n                {+(Empty)+}\n                {+(VariableOperator\n                  {+(VariableSymbol)+})+}\n                {+(InfixOperatorApp\n                  {+(VariableIdentifier)+}\n                  {+(Empty)+}\n                  {+(VariableOperator\n                    {+(VariableSymbol)+})+}\n                  {+(VariableIdentifier)+})+})+})+})+}\n          {+(Pattern\n            {+(Wildcard)+}\n            {+(App\n              {+(VariableIdentifier)+}\n              {+(Empty)+}\n              {+(TextElement)+})+})+})+})+}\n      {-(Integer)-}))\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(FunctionGuardPattern\n        {+(Guard\n          {+(InfixOperatorApp\n            {+(VariableIdentifier)+}\n            {+(Empty)+}\n            {+(VariableOperator\n              {+(VariableSymbol)+})+}\n            {+(Integer)+})+})+}\n        {+(Guard\n          {+(InfixOperatorApp\n            {+(VariableIdentifier)+}\n            {+(Empty)+}\n            {+(VariableOperator\n              {+(VariableSymbol)+})+}\n            {+(Integer)+})+})+}\n        {+(ConstructorIdentifier)+})+}\n      {+(FunctionGuardPattern\n        {+(Guard\n          {+(VariableIdentifier)+})+}\n        {+(ConstructorIdentifier)+})+})+})+}\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n    {+(VariableIdentifier)+}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(ConstructorOperator\n        {-(ConstructorSymbol)-})-}\n      {-(VariableIdentifier)-})-}\n    {-(ViewPattern\n      {-(App\n        {-(VariableIdentifier)-}\n        {-(Empty)-}\n        {-(VariableIdentifier)-})-}\n      {-(ConstructorPattern\n        {-(Statements\n          {-(ConstructorIdentifier)-}\n          {-(VariableIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-}\n      (Statements\n      {+(Do\n        {+(Let\n          {+(Function\n            {+(VariableIdentifier)+}\n            {+(Statements\n              {+(VariableIdentifier)+})+})+}\n          {+(Empty)+})+}\n        {+(BindPattern\n          {+(VariableIdentifier)+}\n          {+(VariableIdentifier)+})+}\n        {+(App\n          {+(VariableIdentifier)+}\n          {+(Empty)+}\n          {+(VariableIdentifier)+})+})+}\n      {-(VariableIdentifier)-}))\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Do\n        {+(Let\n          {+(Function\n            {+(VariableIdentifier)+}\n            {+(Statements\n              {+(VariableIdentifier)+})+})+}\n          {+(Empty)+})+}\n        {+(VariableIdentifier)+}\n        {+(VariableIdentifier)+}\n        {+(Statements\n          {+(Function\n            {+(VariableIdentifier)+}\n            {+(Statements\n              {+(App\n                {+(VariableIdentifier)+}\n                {+(Empty)+}\n                {+(VariableIdentifier)+})+})+})+}\n          {+(Function\n            {+(VariableIdentifier)+}\n            {+(Statements\n              {+(Integer)+})+})+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(AsPattern\n      {+(VariableIdentifier)+}\n      {+(ConstructorIdentifier)+})+}\n    {+(Statements\n      {+(LabeledUpdate\n        {+(VariableIdentifier)+}\n        {+(FieldBind\n          {+(VariableIdentifier)+}\n          {+(Integer)+})+}\n        {+(FieldBind\n          {+(VariableIdentifier)+}\n          {+(Integer)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(AsPattern\n      {+(VariableIdentifier)+}\n      {+(LabeledPattern\n        {+(Statements\n          {+(ConstructorIdentifier)+}\n          {+(FieldPattern\n            {+(VariableIdentifier)+}\n            {+(VariableIdentifier)+})+}\n          {+(FieldPattern\n            {+(VariableIdentifier)+}\n            {+(VariableIdentifier)+})+})+})+})+}\n    {+(Statements\n      {+(LabeledUpdate\n        {+(VariableIdentifier)+}\n        {+(FieldBind\n          {+(VariableIdentifier)+}\n          {+(InfixOperatorApp\n            {+(VariableIdentifier)+}\n            {+(Empty)+}\n            {+(VariableOperator\n              {+(VariableSymbol)+})+}\n            {+(Integer)+})+})+}\n        {+(FieldBind\n          {+(VariableIdentifier)+}\n          {+(InfixOperatorApp\n            {+(VariableIdentifier)+}\n            {+(Empty)+}\n            {+(VariableOperator\n              {+(VariableSymbol)+})+}\n            {+(TextElement)+})+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(TypeApp\n        {+(ConstructorIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(TypeApp\n        {+(ConstructorPattern\n          {+(Statements\n            {+(ConstructorIdentifier)+}\n            {+(TextElement)+})+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(TypeApp\n        {+(ConstructorPattern\n          {+(Statements\n            {+(QualifiedConstructorIdentifier\n              {+(ModuleIdentifier)+}\n              {+(ConstructorIdentifier)+})+}\n            {+(TextElement)+})+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(TypeApp\n          {+(ConstructorIdentifier)+})+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(QualifiedVariableIdentifier\n          {+(ModuleIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(TypeApp\n          {+(QualifiedConstructorIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ConstructorIdentifier)+})+})+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(QualifiedVariableIdentifier\n          {+(ModuleIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(TypeApp\n          {+(ConstructorIdentifier)+})+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(TypeApp\n          {+(QualifiedConstructorIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ConstructorIdentifier)+})+})+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(QualifiedVariableIdentifier\n          {+(ModuleIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(TypeApp\n          {+(ConstructorIdentifier)+})+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(TypeApp\n          {+(QualifiedConstructorIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ConstructorIdentifier)+})+})+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(QualifiedVariableIdentifier\n          {+(ModuleIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(TypeApp\n          {+(ConstructorIdentifier)+})+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(TypeApp\n          {+(QualifiedConstructorIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ConstructorIdentifier)+})+})+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(QualifiedVariableIdentifier\n          {+(ModuleIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(TypeApp\n        {+(App\n          {+(VariableIdentifier)+}\n          {+(Empty)+}\n          {+(App\n            {+(ConstructorIdentifier)+}\n            {+(Empty)+}\n            {+(VariableIdentifier)+})+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(QualifiedVariableIdentifier\n          {+(QualifiedModuleIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ModuleIdentifier)+})+}\n          {+(VariableIdentifier)+})+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(QualifiedVariableIdentifier\n          {+(QualifiedModuleIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ModuleIdentifier)+})+}\n          {+(VariableIdentifier)+})+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(QualifiedVariableIdentifier\n          {+(ModuleIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(QualifiedVariableIdentifier\n          {+(QualifiedModuleIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ModuleIdentifier)+})+}\n          {+(VariableIdentifier)+})+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(QualifiedVariableIdentifier\n          {+(QualifiedModuleIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ModuleIdentifier)+})+}\n          {+(VariableIdentifier)+})+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(QualifiedVariableIdentifier\n          {+(ModuleIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(QualifiedVariableIdentifier\n          {+(QualifiedModuleIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ModuleIdentifier)+})+}\n          {+(VariableIdentifier)+})+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(QualifiedVariableIdentifier\n          {+(QualifiedModuleIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ModuleIdentifier)+})+}\n          {+(VariableIdentifier)+})+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(QualifiedVariableIdentifier\n          {+(ModuleIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(QualifiedVariableIdentifier\n          {+(QualifiedModuleIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ModuleIdentifier)+})+}\n          {+(VariableIdentifier)+})+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(QualifiedVariableIdentifier\n          {+(QualifiedModuleIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ModuleIdentifier)+})+}\n          {+(VariableIdentifier)+})+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(QualifiedVariableIdentifier\n          {+(ModuleIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(ConstructorIdentifier)+}\n        {+(Empty)+}\n        {+(PromotedTypeOperator\n          {+(ConstructorOperator\n            {+(ConstructorSymbol)+})+})+}\n        {+(ConstructorIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(ConstructorIdentifier)+}\n        {+(Empty)+}\n        {+(PromotedTypeOperator\n          {+(ConstructorOperator\n            {+(ConstructorSymbol)+})+})+}\n        {+(ConstructorIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableOperator\n        {+(VariableSymbol)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(Statements)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Integer)+}\n      {+(Statements)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Integer)+}\n      {+(Statements)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(Statements\n        {+(Comment)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(Statements\n        {+(Comment)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(Statements\n        {+(Comment)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(Statements\n        {+(Pragma)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(ConstructorOperator\n        {+(ConstructorSymbol)+})+}\n      {+(VariableIdentifier)+})+}\n    {+(ViewPattern\n      {+(App\n        {+(VariableIdentifier)+}\n        {+(Empty)+}\n        {+(VariableIdentifier)+})+}\n      {+(ConstructorPattern\n        {+(Statements\n          {+(ConstructorIdentifier)+}\n          {+(VariableIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n    (TypeSignature\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (ContextAlt\n        (TypeSignature\n          (ImplicitParameterIdentifier)\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))))))\n      (FunctionType\n        (Type\n          (Array\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))\n        (Type\n          (Array\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (App\n          (VariableIdentifier)\n          (Empty)\n          (ImplicitParameterIdentifier))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (ConstructorPattern\n        (Statements\n        { (ConstructorIdentifier)\n        ->(ConstructorIdentifier) }\n          (AnnotatedTypeVariable\n            (TypeVariableIdentifier)\n            (ConstructorPattern\n              (Statements\n                (ConstructorIdentifier)\n                (VariableIdentifier)\n                (VariableIdentifier))))\n          (VariableIdentifier)))\n      (Statements\n      { (VariableIdentifier)\n      ->(VariableIdentifier) }))\n    (TypeSignature\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (ContextAlt\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (Statements\n              (QuotedName\n                (TypeConstructorIdentifier))\n              (TypeVariableIdentifier)))\n          (EqualityConstraint\n            (Class\n              (TypeClassIdentifier)\n              (TypeVariableIdentifier))\n            (Class\n              (QuotedName\n                (TypeConstructorIdentifier))\n              (TypeVariableIdentifier)))))\n      (FunctionType\n        (Type\n          (TypeConstructorIdentifier)\n          (TypeParameters)\n          (Empty))\n        (FunctionType\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))\n          (FunctionType\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeVariableIdentifier)\n                (TypeVariableIdentifier))\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeVariableIdentifier)\n                (TypeVariableIdentifier))\n              (Empty))))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (VariableIdentifier)\n      (Statements\n        (App\n          (VariableIdentifier)\n          (Empty)\n          (VariableIdentifier))\n        (Statements\n          (Function\n            (VariableIdentifier)\n            (LabeledPattern\n              (Statements\n                (ConstructorIdentifier)\n                (RecordWildCards)))\n            (Statements\n              (Let\n                (Function\n                  (VariableIdentifier)\n                  (Statements\n                    (App\n                      (App\n                        (VariableIdentifier)\n                        (Empty)\n                        (RightOperatorSection\n                          (VariableOperator\n                            (VariableSymbol))\n                          (Character)))\n                      (Empty)\n                      (App\n                        (VariableIdentifier)\n                        (Empty)\n                        (VariableIdentifier)))))\n                (App\n                  (App\n                    (VariableIdentifier)\n                    (Empty)\n                    (VariableIdentifier))\n                  (Empty)\n                  (VariableIdentifier))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/function-declarations.diffB-A.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(VariableIdentifier)+}\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(ConstructorPattern\n      {+(Statements\n        {+(ConstructorIdentifier)+}\n        {+(Integer)+})+})+}\n    {+(Statements\n      {+(App\n        {+(ConstructorIdentifier)+}\n        {+(Empty)+}\n        {+(Integer)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(AsPattern\n      {+(VariableIdentifier)+}\n      {+(VariableIdentifier)+})+}\n    {+(AsPattern\n      {+(VariableIdentifier)+}\n      {+(VariableIdentifier)+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Wildcard)+}\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Integer)+}\n    {+(Integer)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(TextElement)+}\n    {+(TextElement)+}\n    {+(Statements\n      {+(TextElement)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Character)+}\n    {+(Character)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Float)+}\n    {+(Float)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(LabeledPattern\n      {+(Statements\n        {+(ConstructorIdentifier)+}\n        {+(FieldPattern\n          {+(VariableIdentifier)+}\n          {+(Integer)+})+})+})+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(LabeledPattern\n      {+(Statements\n        {+(ConstructorIdentifier)+}\n        {+(FieldPattern\n          {+(VariableIdentifier)+}\n          {+(Integer)+})+}\n        {+(FieldPattern\n          {+(VariableIdentifier)+}\n          {+(Integer)+})+})+})+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(LabeledPattern\n      {+(ConstructorIdentifier)+})+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(LabeledPattern\n      {+(Statements\n        {+(ConstructorIdentifier)+}\n        {+(NamedFieldPun\n          {+(VariableIdentifier)+})+}\n        {+(NamedFieldPun\n          {+(VariableIdentifier)+})+})+})+}\n    {+(Statements\n      {+(Array\n        {+(VariableIdentifier)+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(LabeledPattern\n      {+(Statements\n        {+(ConstructorIdentifier)+}\n        {+(RecordWildCards)+})+})+}\n    {+(Statements\n      {+(Array\n        {+(VariableIdentifier)+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(LabeledPattern\n      {+(Statements\n        {+(ConstructorIdentifier)+}\n        {+(NamedFieldPun\n          {+(VariableIdentifier)+})+}\n        {+(FieldPattern\n          {+(VariableIdentifier)+}\n          {+(VariableIdentifier)+})+}\n        {+(RecordWildCards)+})+})+}\n    {+(Statements\n      {+(Array\n        {+(VariableIdentifier)+}\n        {+(VariableIdentifier)+}\n        {+(VariableIdentifier)+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Integer)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(NegativeLiteral\n      {+(Integer)+})+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(ConstructorPattern\n      {+(Statements\n        {+(ConstructorIdentifier)+}\n        {+(VariableIdentifier)+}\n        {+(VariableIdentifier)+}\n        {+(VariableIdentifier)+})+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(ConstructorOperator\n        {+(ConstructorSymbol)+})+}\n      {+(VariableIdentifier)+})+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(ListConstructor)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(TuplePattern\n      {+(Integer)+}\n      {+(Integer)+})+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(TuplePattern\n      {+(ConstructorPattern\n        {+(Statements\n          {+(ConstructorIdentifier)+}\n          {+(Integer)+})+})+}\n      {+(ConstructorPattern\n        {+(Statements\n          {+(ConstructorIdentifier)+}\n          {+(Integer)+})+})+})+}\n    {+(Statements\n      {+(App\n        {+(ConstructorIdentifier)+}\n        {+(Empty)+}\n        {+(Integer)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(TuplePattern\n      {+(ConstructorPattern\n        {+(Statements\n          {+(ConstructorIdentifier)+}\n          {+(VariableIdentifier)+})+})+}\n      {+(ConstructorIdentifier)+})+}\n    {+(Statements\n      {+(ConstructorIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(TuplePattern\n      {+(ConstructorPattern\n        {+(Statements\n          {+(ConstructorIdentifier)+}\n          {+(VariableIdentifier)+})+})+}\n      {+(ConstructorPattern\n        {+(Statements\n          {+(ConstructorIdentifier)+}\n          {+(VariableIdentifier)+})+})+}\n      {+(NegativeLiteral\n        {+(Integer)+})+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(ListConstructor)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(ListPattern\n      {+(VariableIdentifier)+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(ConstructorOperator\n        {+(ConstructorSymbol)+})+}\n      {+(VariableIdentifier)+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(ConstructorOperator\n        {+(ConstructorSymbol)+})+}\n      {+(VariableIdentifier)+}\n      {+(ConstructorOperator\n        {+(ConstructorSymbol)+})+}\n      {+(VariableIdentifier)+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(ConstructorOperator\n        {+(ConstructorSymbol)+})+}\n      {+(VariableIdentifier)+}\n      {+(ConstructorOperator\n        {+(ConstructorSymbol)+})+}\n      {+(VariableIdentifier)+}\n      {+(ConstructorOperator\n        {+(ConstructorSymbol)+})+}\n      {+(VariableIdentifier)+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(IrrefutablePattern\n      {+(VariableIdentifier)+})+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(IrrefutablePattern\n      {+(NegativeLiteral\n        {+(Integer)+})+})+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(IrrefutablePattern\n      {+(TuplePattern\n        {+(IrrefutablePattern\n          {+(TuplePattern\n            {+(VariableIdentifier)+}\n            {+(VariableIdentifier)+})+})+}\n        {+(VariableIdentifier)+})+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Match\n        {+(VariableIdentifier)+}\n        {+(Pattern\n          {+(ConstructorPattern\n            {+(Statements\n              {+(ConstructorIdentifier)+}\n              {+(VariableIdentifier)+})+})+}\n          {+(Statements\n            {+(CaseGuardPattern\n              {+(Guard\n                {+(InfixOperatorApp\n                  {+(VariableIdentifier)+}\n                  {+(Empty)+}\n                  {+(VariableOperator\n                    {+(VariableSymbol)+})+}\n                  {+(Integer)+})+})+}\n              {+(ConstructorIdentifier)+})+}\n            {+(CaseGuardPattern\n              {+(Guard\n                {+(InfixOperatorApp\n                  {+(VariableIdentifier)+}\n                  {+(Empty)+}\n                  {+(VariableOperator\n                    {+(VariableSymbol)+})+}\n                  {+(Integer)+})+})+}\n              {+(ConstructorIdentifier)+})+}\n            {+(CaseGuardPattern\n              {+(Guard\n                {+(InfixOperatorApp\n                  {+(VariableIdentifier)+}\n                  {+(Empty)+}\n                  {+(VariableOperator\n                    {+(VariableSymbol)+})+}\n                  {+(Integer)+})+})+}\n              {+(ConstructorIdentifier)+})+})+})+})+})+})+}\n    (Function\n      (VariableIdentifier)\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n    {-(VariableIdentifier)-}\n      (Statements\n      {+(Match\n        {+(VariableIdentifier)+}\n        {+(Statements\n          {+(Pattern\n            {+(ConstructorPattern\n              {+(Statements\n                {+(ConstructorIdentifier)+}\n                {+(VariableIdentifier)+})+})+}\n            {+(CaseGuardPattern\n              {+(Guard\n                {+(InfixOperatorApp\n                  {+(VariableIdentifier)+}\n                  {+(Empty)+}\n                  {+(VariableOperator\n                    {+(VariableSymbol)+})+}\n                  {+(Integer)+})+})+}\n              {+(Guard\n                {+(ConstructorIdentifier)+})+}\n              {+(Guard\n                {+(Let\n                  {+(TypeSignature\n                    {+(VariableIdentifier)+}\n                    {+(FunctionType\n                      {+(Type\n                        {+(TypeConstructorIdentifier)+}\n                        {+(TypeParameters)+}\n                        {+(Empty)+})+}\n                      {+(Type\n                        {+(TypeConstructorIdentifier)+}\n                        {+(TypeParameters)+}\n                        {+(Empty)+})+})+})+}\n                  {+(Function\n                    {+(VariableIdentifier)+}\n                    {+(VariableIdentifier)+}\n                    {+(Statements\n                      {+(VariableIdentifier)+})+})+}\n                  {+(Empty)+})+})+}\n              {+(ConstructorIdentifier)+})+})+}\n          {+(Pattern\n            {+(ConstructorIdentifier)+}\n            {+(ConstructorIdentifier)+})+})+})+}\n      {-(VariableIdentifier)-}))\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(ConstructorPattern\n      {-(Statements\n        {-(ConstructorIdentifier)-}\n        {-(Integer)-})-})-}\n    {-(Statements\n      {-(App\n        {-(ConstructorIdentifier)-}\n        {-(Empty)-}\n        {-(Integer)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(AsPattern\n      {-(VariableIdentifier)-}\n      {-(VariableIdentifier)-})-}\n    {-(AsPattern\n      {-(VariableIdentifier)-}\n      {-(VariableIdentifier)-})-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Wildcard)-}\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Integer)-}\n    {-(Integer)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(TextElement)-}\n    {-(TextElement)-}\n    {-(Statements\n      {-(TextElement)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Character)-}\n    {-(Character)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Float)-}\n    {-(Float)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(LabeledPattern\n      {-(Statements\n        {-(ConstructorIdentifier)-}\n        {-(FieldPattern\n          {-(VariableIdentifier)-}\n          {-(Integer)-})-})-})-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(LabeledPattern\n      {-(Statements\n        {-(ConstructorIdentifier)-}\n        {-(FieldPattern\n          {-(VariableIdentifier)-}\n          {-(Integer)-})-}\n        {-(FieldPattern\n          {-(VariableIdentifier)-}\n          {-(Integer)-})-})-})-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(LabeledPattern\n      {-(ConstructorIdentifier)-})-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(LabeledPattern\n      {-(Statements\n        {-(ConstructorIdentifier)-}\n        {-(NamedFieldPun\n          {-(VariableIdentifier)-})-}\n        {-(NamedFieldPun\n          {-(VariableIdentifier)-})-})-})-}\n    {-(Statements\n      {-(Array\n        {-(VariableIdentifier)-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(LabeledPattern\n      {-(Statements\n        {-(ConstructorIdentifier)-}\n        {-(RecordWildCards)-})-})-}\n    {-(Statements\n      {-(Array\n        {-(VariableIdentifier)-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(LabeledPattern\n      {-(Statements\n        {-(ConstructorIdentifier)-}\n        {-(NamedFieldPun\n          {-(VariableIdentifier)-})-}\n        {-(FieldPattern\n          {-(VariableIdentifier)-}\n          {-(VariableIdentifier)-})-}\n        {-(RecordWildCards)-})-})-}\n    {-(Statements\n      {-(Array\n        {-(VariableIdentifier)-}\n        {-(VariableIdentifier)-}\n        {-(VariableIdentifier)-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(AsPattern\n      {-(VariableIdentifier)-}\n      {-(LabeledPattern\n        {-(Statements\n          {-(ConstructorIdentifier)-}\n          {-(FieldPattern\n            {-(VariableIdentifier)-}\n            {-(Integer)-})-})-})-})-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Integer)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(NegativeLiteral\n      {-(Integer)-})-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(ConstructorPattern\n      {-(Statements\n        {-(ConstructorIdentifier)-}\n        {-(VariableIdentifier)-}\n        {-(VariableIdentifier)-}\n        {-(VariableIdentifier)-})-})-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(ConstructorOperator\n        {-(ConstructorSymbol)-})-}\n      {-(VariableIdentifier)-})-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(ListConstructor)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(TuplePattern\n      {-(Integer)-}\n      {-(Integer)-})-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(TuplePattern\n      {-(ConstructorPattern\n        {-(Statements\n          {-(ConstructorIdentifier)-}\n          {-(Integer)-})-})-}\n      {-(ConstructorPattern\n        {-(Statements\n          {-(ConstructorIdentifier)-}\n          {-(Integer)-})-})-})-}\n    {-(Statements\n      {-(App\n        {-(ConstructorIdentifier)-}\n        {-(Empty)-}\n        {-(Integer)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(TuplePattern\n      {-(ConstructorPattern\n        {-(Statements\n          {-(ConstructorIdentifier)-}\n          {-(VariableIdentifier)-})-})-}\n      {-(ConstructorIdentifier)-})-}\n    {-(Statements\n      {-(ConstructorIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(TuplePattern\n      {-(ConstructorPattern\n        {-(Statements\n          {-(ConstructorIdentifier)-}\n          {-(VariableIdentifier)-})-})-}\n      {-(ConstructorPattern\n        {-(Statements\n          {-(ConstructorIdentifier)-}\n          {-(VariableIdentifier)-})-})-}\n      {-(NegativeLiteral\n        {-(Integer)-})-})-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(ListConstructor)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(ListPattern\n      {-(VariableIdentifier)-})-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(ConstructorOperator\n        {-(ConstructorSymbol)-})-}\n      {-(VariableIdentifier)-})-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(ConstructorOperator\n        {-(ConstructorSymbol)-})-}\n      {-(VariableIdentifier)-}\n      {-(ConstructorOperator\n        {-(ConstructorSymbol)-})-}\n      {-(VariableIdentifier)-})-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(ConstructorOperator\n        {-(ConstructorSymbol)-})-}\n      {-(VariableIdentifier)-}\n      {-(ConstructorOperator\n        {-(ConstructorSymbol)-})-}\n      {-(VariableIdentifier)-}\n      {-(ConstructorOperator\n        {-(ConstructorSymbol)-})-}\n      {-(VariableIdentifier)-})-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(IrrefutablePattern\n      {-(VariableIdentifier)-})-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(IrrefutablePattern\n      {-(NegativeLiteral\n        {-(Integer)-})-})-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(IrrefutablePattern\n      {-(TuplePattern\n        {-(IrrefutablePattern\n          {-(TuplePattern\n            {-(VariableIdentifier)-}\n            {-(VariableIdentifier)-})-})-}\n        {-(VariableIdentifier)-})-})-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Match\n        {-(VariableIdentifier)-}\n        {-(Pattern\n          {-(ConstructorPattern\n            {-(Statements\n              {-(ConstructorIdentifier)-}\n              {-(VariableIdentifier)-})-})-}\n          {-(Statements\n            {-(CaseGuardPattern\n              {-(Guard\n                {-(InfixOperatorApp\n                  {-(VariableIdentifier)-}\n                  {-(Empty)-}\n                  {-(VariableOperator\n                    {-(VariableSymbol)-})-}\n                  {-(Integer)-})-})-}\n              {-(ConstructorIdentifier)-})-}\n            {-(CaseGuardPattern\n              {-(Guard\n                {-(InfixOperatorApp\n                  {-(VariableIdentifier)-}\n                  {-(Empty)-}\n                  {-(VariableOperator\n                    {-(VariableSymbol)-})-}\n                  {-(Integer)-})-})-}\n              {-(ConstructorIdentifier)-})-}\n            {-(CaseGuardPattern\n              {-(Guard\n                {-(InfixOperatorApp\n                  {-(VariableIdentifier)-}\n                  {-(Empty)-}\n                  {-(VariableOperator\n                    {-(VariableSymbol)-})-}\n                  {-(Integer)-})-})-}\n              {-(ConstructorIdentifier)-})-})-})-})-})-})-}\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (Match\n          (VariableIdentifier)\n          (Statements\n            (Pattern\n              (ConstructorPattern\n                (Statements\n                  (ConstructorIdentifier)\n                {+(Wildcard)+}\n                {-(VariableIdentifier)-}))\n            { (CaseGuardPattern\n              {-(Guard\n                {-(InfixOperatorApp\n                  {-(VariableIdentifier)-}\n                  {-(Empty)-}\n                  {-(VariableOperator\n                    {-(VariableSymbol)-})-}\n                  {-(Integer)-})-})-}\n              {-(Guard\n                {-(ConstructorIdentifier)-})-}\n              {-(Guard\n                {-(Let\n                  {-(TypeSignature\n                    {-(VariableIdentifier)-}\n                    {-(FunctionType\n                      {-(Type\n                        {-(TypeConstructorIdentifier)-}\n                        {-(TypeParameters)-}\n                        {-(Empty)-})-}\n                      {-(Type\n                        {-(TypeConstructorIdentifier)-}\n                        {-(TypeParameters)-}\n                        {-(Empty)-})-})-})-}\n                  {-(Function\n                    {-(VariableIdentifier)-}\n                    {-(VariableIdentifier)-}\n                    {-(Statements\n                      {-(VariableIdentifier)-})-})-}\n                  {-(Empty)-})-})-}\n              {-(ConstructorIdentifier)-})\n            ->(Statements\n              {+(VariableIdentifier)+}\n              {+(Statements\n                {+(Function\n                  {+(VariableIdentifier)+}\n                  {+(Statements\n                    {+(ConstructorIdentifier)+})+})+})+}) })\n            (Pattern\n              (ConstructorIdentifier)\n              (ConstructorIdentifier))))))\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Match\n        {+(VariableIdentifier)+}\n        {+(Statements\n          {+(Pattern\n            {+(ConstructorPattern\n              {+(Statements\n                {+(ConstructorIdentifier)+}\n                {+(VariableIdentifier)+})+})+}\n            {+(Statements\n              {+(VariableIdentifier)+}\n              {+(Statements\n                {+(Function\n                  {+(VariableIdentifier)+}\n                  {+(Statements\n                    {+(VariableIdentifier)+})+})+}\n                {+(Function\n                  {+(VariableIdentifier)+}\n                  {+(Statements\n                    {+(Integer)+})+})+})+})+})+}\n          {+(Pattern\n            {+(ConstructorIdentifier)+}\n            {+(Statements\n              {+(VariableIdentifier)+}\n              {+(Statements\n                {+(Function\n                  {+(VariableIdentifier)+}\n                  {+(Statements\n                    {+(VariableIdentifier)+})+})+}\n                {+(Function\n                  {+(VariableIdentifier)+}\n                  {+(Statements\n                    {+(Integer)+})+})+})+})+})+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Match\n        {+(VariableIdentifier)+}\n        {+(Statements\n          {+(Pattern\n            {+(ConstructorPattern\n              {+(Statements\n                {+(ConstructorIdentifier)+}\n                {+(VariableIdentifier)+})+})+}\n            {+(VariableIdentifier)+})+}\n          {+(Pattern\n            {+(ConstructorIdentifier)+}\n            {+(VariableIdentifier)+})+}\n          {+(Statements\n            {+(Function\n              {+(VariableIdentifier)+}\n              {+(Statements\n                {+(Integer)+})+})+}\n            {+(Function\n              {+(VariableIdentifier)+}\n              {+(Statements\n                {+(Integer)+})+})+})+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Lambda\n        {+(VariableIdentifier)+}\n        {+(Match\n          {+(VariableIdentifier)+}\n          {+(Pattern\n            {+(ConstructorIdentifier)+}\n            {+(VariableIdentifier)+})+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(App\n          {+(VariableIdentifier)+}\n          {+(Empty)+}\n          {+(VariableIdentifier)+})+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(LambdaCase\n          {+(Pattern\n            {+(ConstructorPattern\n              {+(Statements\n                {+(ConstructorIdentifier)+}\n                {+(ConstructorPattern\n                  {+(Statements\n                    {+(ConstructorIdentifier)+}\n                    {+(Wildcard)+}\n                    {+(Wildcard)+}\n                    {+(Wildcard)+}\n                    {+(Wildcard)+}\n                    {+(VariableIdentifier)+}\n                    {+(Wildcard)+})+})+})+})+}\n            {+(Do\n              {+(BindPattern\n                {+(VariableIdentifier)+}\n                {+(InfixOperatorApp\n                  {+(App\n                    {+(VariableIdentifier)+}\n                    {+(Empty)+}\n                    {+(App\n                      {+(VariableIdentifier)+}\n                      {+(Empty)+}\n                      {+(VariableIdentifier)+})+})+}\n                  {+(Empty)+}\n                  {+(VariableOperator\n                    {+(VariableSymbol)+})+}\n                  {+(App\n                    {+(App\n                      {+(VariableIdentifier)+}\n                      {+(Empty)+}\n                      {+(VariableIdentifier)+})+}\n                    {+(Empty)+}\n                    {+(VariableIdentifier)+})+})+})+}\n              {+(BindPattern\n                {+(VariableIdentifier)+}\n                {+(App\n                  {+(App\n                    {+(VariableIdentifier)+}\n                    {+(Empty)+}\n                    {+(VariableIdentifier)+})+}\n                  {+(Empty)+}\n                  {+(VariableIdentifier)+})+})+}\n              {+(InfixOperatorApp\n                {+(VariableIdentifier)+}\n                {+(Empty)+}\n                {+(VariableOperator\n                  {+(VariableSymbol)+})+}\n                {+(InfixOperatorApp\n                  {+(VariableIdentifier)+}\n                  {+(Empty)+}\n                  {+(VariableOperator\n                    {+(VariableSymbol)+})+}\n                  {+(VariableIdentifier)+})+})+})+})+}\n          {+(Pattern\n            {+(Wildcard)+}\n            {+(App\n              {+(VariableIdentifier)+}\n              {+(Empty)+}\n              {+(TextElement)+})+})+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(FunctionGuardPattern\n        {+(Guard\n          {+(InfixOperatorApp\n            {+(VariableIdentifier)+}\n            {+(Empty)+}\n            {+(VariableOperator\n              {+(VariableSymbol)+})+}\n            {+(Integer)+})+})+}\n        {+(Guard\n          {+(InfixOperatorApp\n            {+(VariableIdentifier)+}\n            {+(Empty)+}\n            {+(VariableOperator\n              {+(VariableSymbol)+})+}\n            {+(Integer)+})+})+}\n        {+(ConstructorIdentifier)+})+}\n      {+(FunctionGuardPattern\n        {+(Guard\n          {+(VariableIdentifier)+})+}\n        {+(ConstructorIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Do\n        {+(Let\n          {+(Function\n            {+(VariableIdentifier)+}\n            {+(Statements\n              {+(VariableIdentifier)+})+})+}\n          {+(Empty)+})+}\n        {+(BindPattern\n          {+(VariableIdentifier)+}\n          {+(VariableIdentifier)+})+}\n        {+(App\n          {+(VariableIdentifier)+}\n          {+(Empty)+}\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Do\n        {+(Let\n          {+(Function\n            {+(VariableIdentifier)+}\n            {+(Statements\n              {+(VariableIdentifier)+})+})+}\n          {+(Empty)+})+}\n        {+(VariableIdentifier)+}\n        {+(VariableIdentifier)+}\n        {+(Statements\n          {+(Function\n            {+(VariableIdentifier)+}\n            {+(Statements\n              {+(App\n                {+(VariableIdentifier)+}\n                {+(Empty)+}\n                {+(VariableIdentifier)+})+})+})+}\n          {+(Function\n            {+(VariableIdentifier)+}\n            {+(Statements\n              {+(Integer)+})+})+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(AsPattern\n      {+(VariableIdentifier)+}\n      {+(ConstructorIdentifier)+})+}\n    {+(Statements\n      {+(LabeledUpdate\n        {+(VariableIdentifier)+}\n        {+(FieldBind\n          {+(VariableIdentifier)+}\n          {+(Integer)+})+}\n        {+(FieldBind\n          {+(VariableIdentifier)+}\n          {+(Integer)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(AsPattern\n      {+(VariableIdentifier)+}\n      {+(LabeledPattern\n        {+(Statements\n          {+(ConstructorIdentifier)+}\n          {+(FieldPattern\n            {+(VariableIdentifier)+}\n            {+(VariableIdentifier)+})+}\n          {+(FieldPattern\n            {+(VariableIdentifier)+}\n            {+(VariableIdentifier)+})+})+})+})+}\n    {+(Statements\n      {+(LabeledUpdate\n        {+(VariableIdentifier)+}\n        {+(FieldBind\n          {+(VariableIdentifier)+}\n          {+(InfixOperatorApp\n            {+(VariableIdentifier)+}\n            {+(Empty)+}\n            {+(VariableOperator\n              {+(VariableSymbol)+})+}\n            {+(Integer)+})+})+}\n        {+(FieldBind\n          {+(VariableIdentifier)+}\n          {+(InfixOperatorApp\n            {+(VariableIdentifier)+}\n            {+(Empty)+}\n            {+(VariableOperator\n              {+(VariableSymbol)+})+}\n            {+(TextElement)+})+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(TypeApp\n        {+(ConstructorIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(TypeApp\n        {+(ConstructorPattern\n          {+(Statements\n            {+(ConstructorIdentifier)+}\n            {+(TextElement)+})+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(TypeApp\n        {+(ConstructorPattern\n          {+(Statements\n            {+(QualifiedConstructorIdentifier\n              {+(ModuleIdentifier)+}\n              {+(ConstructorIdentifier)+})+}\n            {+(TextElement)+})+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(TypeApp\n          {+(ConstructorIdentifier)+})+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(QualifiedVariableIdentifier\n          {+(ModuleIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(TypeApp\n          {+(QualifiedConstructorIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ConstructorIdentifier)+})+})+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(QualifiedVariableIdentifier\n          {+(ModuleIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(TypeApp\n          {+(ConstructorIdentifier)+})+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(TypeApp\n          {+(QualifiedConstructorIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ConstructorIdentifier)+})+})+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(QualifiedVariableIdentifier\n          {+(ModuleIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(TypeApp\n          {+(ConstructorIdentifier)+})+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(TypeApp\n          {+(QualifiedConstructorIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ConstructorIdentifier)+})+})+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(QualifiedVariableIdentifier\n          {+(ModuleIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(TypeApp\n          {+(ConstructorIdentifier)+})+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(TypeApp\n          {+(QualifiedConstructorIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ConstructorIdentifier)+})+})+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(QualifiedVariableIdentifier\n          {+(ModuleIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(TypeApp\n        {+(App\n          {+(VariableIdentifier)+}\n          {+(Empty)+}\n          {+(App\n            {+(ConstructorIdentifier)+}\n            {+(Empty)+}\n            {+(VariableIdentifier)+})+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(QualifiedVariableIdentifier\n          {+(QualifiedModuleIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ModuleIdentifier)+})+}\n          {+(VariableIdentifier)+})+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(QualifiedVariableIdentifier\n          {+(QualifiedModuleIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ModuleIdentifier)+})+}\n          {+(VariableIdentifier)+})+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(QualifiedVariableIdentifier\n          {+(ModuleIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(QualifiedVariableIdentifier\n          {+(QualifiedModuleIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ModuleIdentifier)+})+}\n          {+(VariableIdentifier)+})+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(QualifiedVariableIdentifier\n          {+(QualifiedModuleIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ModuleIdentifier)+})+}\n          {+(VariableIdentifier)+})+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(QualifiedVariableIdentifier\n          {+(ModuleIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(QualifiedVariableIdentifier\n          {+(QualifiedModuleIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ModuleIdentifier)+})+}\n          {+(VariableIdentifier)+})+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(QualifiedVariableIdentifier\n          {+(QualifiedModuleIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ModuleIdentifier)+})+}\n          {+(VariableIdentifier)+})+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(QualifiedVariableIdentifier\n          {+(ModuleIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(QualifiedVariableIdentifier\n          {+(QualifiedModuleIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ModuleIdentifier)+})+}\n          {+(VariableIdentifier)+})+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(VariableIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(QualifiedVariableIdentifier\n          {+(QualifiedModuleIdentifier\n            {+(ModuleIdentifier)+}\n            {+(ModuleIdentifier)+})+}\n          {+(VariableIdentifier)+})+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(QualifiedVariableIdentifier\n          {+(ModuleIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(ConstructorIdentifier)+}\n        {+(Empty)+}\n        {+(PromotedTypeOperator\n          {+(ConstructorOperator\n            {+(ConstructorSymbol)+})+})+}\n        {+(ConstructorIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(ConstructorIdentifier)+}\n        {+(Empty)+}\n        {+(PromotedTypeOperator\n          {+(ConstructorOperator\n            {+(ConstructorSymbol)+})+})+}\n        {+(ConstructorIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableOperator\n        {+(VariableSymbol)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(InfixOperatorApp\n        {+(VariableIdentifier)+}\n        {+(Empty)+}\n        {+(VariableOperator\n          {+(VariableSymbol)+})+}\n        {+(Statements)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Integer)+}\n      {+(Statements)+})+})+}\n    (Function\n      (VariableIdentifier)\n    {-(VariableIdentifier)-}\n      (Statements\n      {+(Integer)+}\n      {+(Statements)+}\n      {-(Match\n        {-(VariableIdentifier)-}\n        {-(Statements\n          {-(Pattern\n            {-(ConstructorPattern\n              {-(Statements\n                {-(ConstructorIdentifier)-}\n                {-(Wildcard)-})-})-}\n            {-(Statements\n              {-(VariableIdentifier)-}\n              {-(Statements\n                {-(Function\n                  {-(VariableIdentifier)-}\n                  {-(Statements\n                    {-(ConstructorIdentifier)-})-})-})-})-})-}\n          {-(Pattern\n            {-(ConstructorIdentifier)-}\n            {-(ConstructorIdentifier)-})-})-})-}))\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(Statements\n        {+(Comment)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(Statements\n        {+(Comment)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(Statements\n        {+(Comment)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(Statements\n        {+(Pragma)+})+})+})+}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Match\n        {-(VariableIdentifier)-}\n        {-(Statements\n          {-(Pattern\n            {-(ConstructorPattern\n              {-(Statements\n                {-(ConstructorIdentifier)-}\n                {-(VariableIdentifier)-})-})-}\n            {-(Statements\n              {-(VariableIdentifier)-}\n              {-(Statements\n                {-(Function\n                  {-(VariableIdentifier)-}\n                  {-(Statements\n                    {-(VariableIdentifier)-})-})-}\n                {-(Function\n                  {-(VariableIdentifier)-}\n                  {-(Statements\n                    {-(Integer)-})-})-})-})-})-}\n          {-(Pattern\n            {-(ConstructorIdentifier)-}\n            {-(Statements\n              {-(VariableIdentifier)-}\n              {-(Statements\n                {-(Function\n                  {-(VariableIdentifier)-}\n                  {-(Statements\n                    {-(VariableIdentifier)-})-})-}\n                {-(Function\n                  {-(VariableIdentifier)-}\n                  {-(Statements\n                    {-(Integer)-})-})-})-})-})-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Match\n        {-(VariableIdentifier)-}\n        {-(Statements\n          {-(Pattern\n            {-(ConstructorPattern\n              {-(Statements\n                {-(ConstructorIdentifier)-}\n                {-(VariableIdentifier)-})-})-}\n            {-(VariableIdentifier)-})-}\n          {-(Pattern\n            {-(ConstructorIdentifier)-}\n            {-(VariableIdentifier)-})-}\n          {-(Statements\n            {-(Function\n              {-(VariableIdentifier)-}\n              {-(Statements\n                {-(Integer)-})-})-}\n            {-(Function\n              {-(VariableIdentifier)-}\n              {-(Statements\n                {-(Integer)-})-})-})-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Lambda\n        {-(VariableIdentifier)-}\n        {-(Match\n          {-(VariableIdentifier)-}\n          {-(Pattern\n            {-(ConstructorIdentifier)-}\n            {-(VariableIdentifier)-})-})-})-})-})-}\n    (Function\n      (VariableIdentifier)\n      (Statements\n      {+(Integer)+}\n      {-(InfixOperatorApp\n        {-(App\n          {-(VariableIdentifier)-}\n          {-(Empty)-}\n          {-(VariableIdentifier)-})-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(LambdaCase\n          {-(Pattern\n            {-(ConstructorPattern\n              {-(Statements\n                {-(ConstructorIdentifier)-}\n                {-(ConstructorPattern\n                  {-(Statements\n                    {-(ConstructorIdentifier)-}\n                    {-(Wildcard)-}\n                    {-(Wildcard)-}\n                    {-(Wildcard)-}\n                    {-(Wildcard)-}\n                    {-(VariableIdentifier)-}\n                    {-(Wildcard)-})-})-})-})-}\n            {-(Do\n              {-(BindPattern\n                {-(VariableIdentifier)-}\n                {-(InfixOperatorApp\n                  {-(App\n                    {-(VariableIdentifier)-}\n                    {-(Empty)-}\n                    {-(App\n                      {-(VariableIdentifier)-}\n                      {-(Empty)-}\n                      {-(VariableIdentifier)-})-})-}\n                  {-(Empty)-}\n                  {-(VariableOperator\n                    {-(VariableSymbol)-})-}\n                  {-(App\n                    {-(App\n                      {-(VariableIdentifier)-}\n                      {-(Empty)-}\n                      {-(VariableIdentifier)-})-}\n                    {-(Empty)-}\n                    {-(VariableIdentifier)-})-})-})-}\n              {-(BindPattern\n                {-(VariableIdentifier)-}\n                {-(App\n                  {-(App\n                    {-(VariableIdentifier)-}\n                    {-(Empty)-}\n                    {-(VariableIdentifier)-})-}\n                  {-(Empty)-}\n                  {-(VariableIdentifier)-})-})-}\n              {-(InfixOperatorApp\n                {-(VariableIdentifier)-}\n                {-(Empty)-}\n                {-(VariableOperator\n                  {-(VariableSymbol)-})-}\n                {-(InfixOperatorApp\n                  {-(VariableIdentifier)-}\n                  {-(Empty)-}\n                  {-(VariableOperator\n                    {-(VariableSymbol)-})-}\n                  {-(VariableIdentifier)-})-})-})-})-}\n          {-(Pattern\n            {-(Wildcard)-}\n            {-(App\n              {-(VariableIdentifier)-}\n              {-(Empty)-}\n              {-(TextElement)-})-})-})-})-}))\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+}\n      {+(ConstructorOperator\n        {+(ConstructorSymbol)+})+}\n      {+(VariableIdentifier)+})+}\n    {+(ViewPattern\n      {+(App\n        {+(VariableIdentifier)+}\n        {+(Empty)+}\n        {+(VariableIdentifier)+})+}\n      {+(ConstructorPattern\n        {+(Statements\n          {+(ConstructorIdentifier)+}\n          {+(VariableIdentifier)+}\n          {+(VariableIdentifier)+})+})+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(ContextAlt\n      {+(TypeSignature\n        {+(ImplicitParameterIdentifier)+}\n        {+(FunctionType\n          {+(Type\n            {+(TypeVariableIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+}\n          {+(FunctionType\n            {+(Type\n              {+(TypeVariableIdentifier)+}\n              {+(TypeParameters)+}\n              {+(Empty)+})+}\n            {+(Type\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeParameters)+}\n              {+(Empty)+})+})+})+})+})+}\n    {+(FunctionType\n      {+(Type\n        {+(Array\n          {+(Type\n            {+(TypeVariableIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(Type\n        {+(Array\n          {+(Type\n            {+(TypeVariableIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(App\n        {+(VariableIdentifier)+}\n        {+(Empty)+}\n        {+(ImplicitParameterIdentifier)+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(ConstructorPattern\n      {+(Statements\n        {+(ConstructorIdentifier)+}\n        {+(AnnotatedTypeVariable\n          {+(TypeVariableIdentifier)+}\n          {+(ConstructorPattern\n            {+(Statements\n              {+(ConstructorIdentifier)+}\n              {+(VariableIdentifier)+}\n              {+(VariableIdentifier)+})+})+})+}\n        {+(VariableIdentifier)+})+})+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(ContextAlt\n      {+(Statements\n        {+(Class\n          {+(TypeClassIdentifier)+}\n          {+(TypeVariableIdentifier)+})+}\n        {+(Class\n          {+(TypeClassIdentifier)+}\n          {+(Statements\n            {+(QuotedName\n              {+(TypeConstructorIdentifier)+})+}\n            {+(TypeVariableIdentifier)+})+})+}\n        {+(EqualityConstraint\n          {+(Class\n            {+(TypeClassIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Class\n            {+(QuotedName\n              {+(TypeConstructorIdentifier)+})+}\n            {+(TypeVariableIdentifier)+})+})+})+})+}\n    {+(FunctionType\n      {+(Type\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(FunctionType\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeVariableIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Empty)+})+}\n        {+(FunctionType\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters\n              {+(TypeVariableIdentifier)+}\n              {+(TypeVariableIdentifier)+})+}\n            {+(Empty)+})+}\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters\n              {+(TypeVariableIdentifier)+}\n              {+(TypeVariableIdentifier)+})+}\n            {+(Empty)+})+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(App\n        {+(VariableIdentifier)+}\n        {+(Empty)+}\n        {+(VariableIdentifier)+})+}\n      {+(Statements\n        {+(Function\n          {+(VariableIdentifier)+}\n          {+(LabeledPattern\n            {+(Statements\n              {+(ConstructorIdentifier)+}\n              {+(RecordWildCards)+})+})+}\n          {+(Statements\n            {+(Let\n              {+(Function\n                {+(VariableIdentifier)+}\n                {+(Statements\n                  {+(App\n                    {+(App\n                      {+(VariableIdentifier)+}\n                      {+(Empty)+}\n                      {+(RightOperatorSection\n                        {+(VariableOperator\n                          {+(VariableSymbol)+})+}\n                        {+(Character)+})+})+}\n                    {+(Empty)+}\n                    {+(App\n                      {+(VariableIdentifier)+}\n                      {+(Empty)+}\n                      {+(VariableIdentifier)+})+})+})+})+}\n              {+(App\n                {+(App\n                  {+(VariableIdentifier)+}\n                  {+(Empty)+}\n                  {+(VariableIdentifier)+})+}\n                {+(Empty)+}\n                {+(VariableIdentifier)+})+})+})+})+})+})+})+}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(FunctionGuardPattern\n        {-(Guard\n          {-(InfixOperatorApp\n            {-(VariableIdentifier)-}\n            {-(Empty)-}\n            {-(VariableOperator\n              {-(VariableSymbol)-})-}\n            {-(Integer)-})-})-}\n        {-(Guard\n          {-(InfixOperatorApp\n            {-(VariableIdentifier)-}\n            {-(Empty)-}\n            {-(VariableOperator\n              {-(VariableSymbol)-})-}\n            {-(Integer)-})-})-}\n        {-(ConstructorIdentifier)-})-}\n      {-(FunctionGuardPattern\n        {-(Guard\n          {-(VariableIdentifier)-})-}\n        {-(ConstructorIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Do\n        {-(Let\n          {-(Function\n            {-(VariableIdentifier)-}\n            {-(Statements\n              {-(VariableIdentifier)-})-})-}\n          {-(Empty)-})-}\n        {-(BindPattern\n          {-(VariableIdentifier)-}\n          {-(VariableIdentifier)-})-}\n        {-(App\n          {-(VariableIdentifier)-}\n          {-(Empty)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Do\n        {-(Let\n          {-(Function\n            {-(VariableIdentifier)-}\n            {-(Statements\n              {-(VariableIdentifier)-})-})-}\n          {-(Empty)-})-}\n        {-(VariableIdentifier)-}\n        {-(VariableIdentifier)-}\n        {-(Statements\n          {-(Function\n            {-(VariableIdentifier)-}\n            {-(Statements\n              {-(App\n                {-(VariableIdentifier)-}\n                {-(Empty)-}\n                {-(VariableIdentifier)-})-})-})-}\n          {-(Function\n            {-(VariableIdentifier)-}\n            {-(Statements\n              {-(Integer)-})-})-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(AsPattern\n      {-(VariableIdentifier)-}\n      {-(ConstructorIdentifier)-})-}\n    {-(Statements\n      {-(LabeledUpdate\n        {-(VariableIdentifier)-}\n        {-(FieldBind\n          {-(VariableIdentifier)-}\n          {-(Integer)-})-}\n        {-(FieldBind\n          {-(VariableIdentifier)-}\n          {-(Integer)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(AsPattern\n      {-(VariableIdentifier)-}\n      {-(LabeledPattern\n        {-(Statements\n          {-(ConstructorIdentifier)-}\n          {-(FieldPattern\n            {-(VariableIdentifier)-}\n            {-(VariableIdentifier)-})-}\n          {-(FieldPattern\n            {-(VariableIdentifier)-}\n            {-(VariableIdentifier)-})-})-})-})-}\n    {-(Statements\n      {-(LabeledUpdate\n        {-(VariableIdentifier)-}\n        {-(FieldBind\n          {-(VariableIdentifier)-}\n          {-(InfixOperatorApp\n            {-(VariableIdentifier)-}\n            {-(Empty)-}\n            {-(VariableOperator\n              {-(VariableSymbol)-})-}\n            {-(Integer)-})-})-}\n        {-(FieldBind\n          {-(VariableIdentifier)-}\n          {-(InfixOperatorApp\n            {-(VariableIdentifier)-}\n            {-(Empty)-}\n            {-(VariableOperator\n              {-(VariableSymbol)-})-}\n            {-(TextElement)-})-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(TypeApp\n        {-(ConstructorIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(TypeApp\n        {-(ConstructorPattern\n          {-(Statements\n            {-(ConstructorIdentifier)-}\n            {-(TextElement)-})-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(TypeApp\n        {-(ConstructorPattern\n          {-(Statements\n            {-(QualifiedConstructorIdentifier\n              {-(ModuleIdentifier)-}\n              {-(ConstructorIdentifier)-})-}\n            {-(TextElement)-})-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(TypeApp\n          {-(ConstructorIdentifier)-})-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(QualifiedVariableIdentifier\n          {-(ModuleIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(TypeApp\n          {-(QualifiedConstructorIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ConstructorIdentifier)-})-})-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(QualifiedVariableIdentifier\n          {-(ModuleIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(TypeApp\n          {-(ConstructorIdentifier)-})-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(TypeApp\n          {-(QualifiedConstructorIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ConstructorIdentifier)-})-})-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(QualifiedVariableIdentifier\n          {-(ModuleIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(TypeApp\n          {-(ConstructorIdentifier)-})-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(TypeApp\n          {-(QualifiedConstructorIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ConstructorIdentifier)-})-})-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(QualifiedVariableIdentifier\n          {-(ModuleIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(TypeApp\n          {-(ConstructorIdentifier)-})-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(TypeApp\n          {-(QualifiedConstructorIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ConstructorIdentifier)-})-})-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(QualifiedVariableIdentifier\n          {-(ModuleIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(TypeApp\n        {-(App\n          {-(VariableIdentifier)-}\n          {-(Empty)-}\n          {-(App\n            {-(ConstructorIdentifier)-}\n            {-(Empty)-}\n            {-(VariableIdentifier)-})-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(QualifiedVariableIdentifier\n          {-(QualifiedModuleIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ModuleIdentifier)-})-}\n          {-(VariableIdentifier)-})-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(QualifiedVariableIdentifier\n          {-(QualifiedModuleIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ModuleIdentifier)-})-}\n          {-(VariableIdentifier)-})-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(QualifiedVariableIdentifier\n          {-(ModuleIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(QualifiedVariableIdentifier\n          {-(QualifiedModuleIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ModuleIdentifier)-})-}\n          {-(VariableIdentifier)-})-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(QualifiedVariableIdentifier\n          {-(QualifiedModuleIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ModuleIdentifier)-})-}\n          {-(VariableIdentifier)-})-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(QualifiedVariableIdentifier\n          {-(ModuleIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(QualifiedVariableIdentifier\n          {-(QualifiedModuleIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ModuleIdentifier)-})-}\n          {-(VariableIdentifier)-})-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(QualifiedVariableIdentifier\n          {-(QualifiedModuleIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ModuleIdentifier)-})-}\n          {-(VariableIdentifier)-})-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(QualifiedVariableIdentifier\n          {-(ModuleIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(QualifiedVariableIdentifier\n          {-(QualifiedModuleIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ModuleIdentifier)-})-}\n          {-(VariableIdentifier)-})-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(VariableIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(QualifiedVariableIdentifier\n          {-(QualifiedModuleIdentifier\n            {-(ModuleIdentifier)-}\n            {-(ModuleIdentifier)-})-}\n          {-(VariableIdentifier)-})-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(QualifiedVariableIdentifier\n          {-(ModuleIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(ConstructorIdentifier)-}\n        {-(Empty)-}\n        {-(PromotedTypeOperator\n          {-(ConstructorOperator\n            {-(ConstructorSymbol)-})-})-}\n        {-(ConstructorIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(ConstructorIdentifier)-}\n        {-(Empty)-}\n        {-(PromotedTypeOperator\n          {-(ConstructorOperator\n            {-(ConstructorSymbol)-})-})-}\n        {-(ConstructorIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableOperator\n        {-(VariableSymbol)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(InfixOperatorApp\n        {-(VariableIdentifier)-}\n        {-(Empty)-}\n        {-(VariableOperator\n          {-(VariableSymbol)-})-}\n        {-(Statements)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Integer)-}\n      {-(Statements)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Integer)-}\n      {-(Statements)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(Statements\n        {-(Comment)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(Statements\n        {-(Comment)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(Statements\n        {-(Comment)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(Statements\n        {-(Pragma)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-}\n      {-(ConstructorOperator\n        {-(ConstructorSymbol)-})-}\n      {-(VariableIdentifier)-})-}\n    {-(ViewPattern\n      {-(App\n        {-(VariableIdentifier)-}\n        {-(Empty)-}\n        {-(VariableIdentifier)-})-}\n      {-(ConstructorPattern\n        {-(Statements\n          {-(ConstructorIdentifier)-}\n          {-(VariableIdentifier)-}\n          {-(VariableIdentifier)-})-})-})-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(ContextAlt\n      {-(TypeSignature\n        {-(ImplicitParameterIdentifier)-}\n        {-(FunctionType\n          {-(Type\n            {-(TypeVariableIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-}\n          {-(FunctionType\n            {-(Type\n              {-(TypeVariableIdentifier)-}\n              {-(TypeParameters)-}\n              {-(Empty)-})-}\n            {-(Type\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeParameters)-}\n              {-(Empty)-})-})-})-})-})-}\n    {-(FunctionType\n      {-(Type\n        {-(Array\n          {-(Type\n            {-(TypeVariableIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(Type\n        {-(Array\n          {-(Type\n            {-(TypeVariableIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(App\n        {-(VariableIdentifier)-}\n        {-(Empty)-}\n        {-(ImplicitParameterIdentifier)-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(ConstructorPattern\n      {-(Statements\n        {-(ConstructorIdentifier)-}\n        {-(AnnotatedTypeVariable\n          {-(TypeVariableIdentifier)-}\n          {-(ConstructorPattern\n            {-(Statements\n              {-(ConstructorIdentifier)-}\n              {-(VariableIdentifier)-}\n              {-(VariableIdentifier)-})-})-})-}\n        {-(VariableIdentifier)-})-})-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(ContextAlt\n      {-(Statements\n        {-(Class\n          {-(TypeClassIdentifier)-}\n          {-(TypeVariableIdentifier)-})-}\n        {-(Class\n          {-(TypeClassIdentifier)-}\n          {-(Statements\n            {-(QuotedName\n              {-(TypeConstructorIdentifier)-})-}\n            {-(TypeVariableIdentifier)-})-})-}\n        {-(EqualityConstraint\n          {-(Class\n            {-(TypeClassIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Class\n            {-(QuotedName\n              {-(TypeConstructorIdentifier)-})-}\n            {-(TypeVariableIdentifier)-})-})-})-})-}\n    {-(FunctionType\n      {-(Type\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(FunctionType\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeVariableIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Empty)-})-}\n        {-(FunctionType\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters\n              {-(TypeVariableIdentifier)-}\n              {-(TypeVariableIdentifier)-})-}\n            {-(Empty)-})-}\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters\n              {-(TypeVariableIdentifier)-}\n              {-(TypeVariableIdentifier)-})-}\n            {-(Empty)-})-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(App\n        {-(VariableIdentifier)-}\n        {-(Empty)-}\n        {-(VariableIdentifier)-})-}\n      {-(Statements\n        {-(Function\n          {-(VariableIdentifier)-}\n          {-(LabeledPattern\n            {-(Statements\n              {-(ConstructorIdentifier)-}\n              {-(RecordWildCards)-})-})-}\n          {-(Statements\n            {-(Let\n              {-(Function\n                {-(VariableIdentifier)-}\n                {-(Statements\n                  {-(App\n                    {-(App\n                      {-(VariableIdentifier)-}\n                      {-(Empty)-}\n                      {-(RightOperatorSection\n                        {-(VariableOperator\n                          {-(VariableSymbol)-})-}\n                        {-(Character)-})-})-}\n                    {-(Empty)-}\n                    {-(App\n                      {-(VariableIdentifier)-}\n                      {-(Empty)-}\n                      {-(VariableIdentifier)-})-})-})-})-}\n              {-(App\n                {-(App\n                  {-(VariableIdentifier)-}\n                  {-(Empty)-}\n                  {-(VariableIdentifier)-})-}\n                {-(Empty)-}\n                {-(VariableIdentifier)-})-})-})-})-})-})-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/function-declarations.parseA.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (ConstructorPattern\n        (Statements\n          (ConstructorIdentifier)\n          (Integer)))\n      (Statements\n        (App\n          (ConstructorIdentifier)\n          (Empty)\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (AsPattern\n        (VariableIdentifier)\n        (VariableIdentifier))\n      (AsPattern\n        (VariableIdentifier)\n        (VariableIdentifier))\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Wildcard)\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Integer)\n      (Integer)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (TextElement)\n      (TextElement)\n      (Statements\n        (TextElement)))\n    (Function\n      (VariableIdentifier)\n      (Character)\n      (Character)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Float)\n      (Float)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (LabeledPattern\n        (Statements\n          (ConstructorIdentifier)\n          (FieldPattern\n            (VariableIdentifier)\n            (Integer))))\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (LabeledPattern\n        (Statements\n          (ConstructorIdentifier)\n          (FieldPattern\n            (VariableIdentifier)\n            (Integer))\n          (FieldPattern\n            (VariableIdentifier)\n            (Integer))))\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (LabeledPattern\n        (ConstructorIdentifier))\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (LabeledPattern\n        (Statements\n          (ConstructorIdentifier)\n          (NamedFieldPun\n            (VariableIdentifier))\n          (NamedFieldPun\n            (VariableIdentifier))))\n      (Statements\n        (Array\n          (VariableIdentifier)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (LabeledPattern\n        (Statements\n          (ConstructorIdentifier)\n          (RecordWildCards)))\n      (Statements\n        (Array\n          (VariableIdentifier)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (LabeledPattern\n        (Statements\n          (ConstructorIdentifier)\n          (NamedFieldPun\n            (VariableIdentifier))\n          (FieldPattern\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (RecordWildCards)))\n      (Statements\n        (Array\n          (VariableIdentifier)\n          (VariableIdentifier)\n          (VariableIdentifier)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Integer)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (NegativeLiteral\n        (Integer))\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (ConstructorPattern\n        (Statements\n          (ConstructorIdentifier)\n          (VariableIdentifier)\n          (VariableIdentifier)\n          (VariableIdentifier)))\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (VariableIdentifier))\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (ListConstructor)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (TuplePattern\n        (Integer)\n        (Integer))\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (TuplePattern\n        (ConstructorPattern\n          (Statements\n            (ConstructorIdentifier)\n            (Integer)))\n        (ConstructorPattern\n          (Statements\n            (ConstructorIdentifier)\n            (Integer))))\n      (Statements\n        (App\n          (ConstructorIdentifier)\n          (Empty)\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (TuplePattern\n        (ConstructorPattern\n          (Statements\n            (ConstructorIdentifier)\n            (VariableIdentifier)))\n        (ConstructorIdentifier))\n      (Statements\n        (ConstructorIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (TuplePattern\n        (ConstructorPattern\n          (Statements\n            (ConstructorIdentifier)\n            (VariableIdentifier)))\n        (ConstructorPattern\n          (Statements\n            (ConstructorIdentifier)\n            (VariableIdentifier)))\n        (NegativeLiteral\n          (Integer)))\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (ListConstructor)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (ListPattern\n        (VariableIdentifier))\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (VariableIdentifier))\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (VariableIdentifier))\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (VariableIdentifier))\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (IrrefutablePattern\n        (VariableIdentifier))\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (IrrefutablePattern\n        (NegativeLiteral\n          (Integer)))\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (IrrefutablePattern\n        (TuplePattern\n          (IrrefutablePattern\n            (TuplePattern\n              (VariableIdentifier)\n              (VariableIdentifier)))\n          (VariableIdentifier)))\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (Match\n          (VariableIdentifier)\n          (Pattern\n            (ConstructorPattern\n              (Statements\n                (ConstructorIdentifier)\n                (VariableIdentifier)))\n            (Statements\n              (CaseGuardPattern\n                (Guard\n                  (InfixOperatorApp\n                    (VariableIdentifier)\n                    (Empty)\n                    (VariableOperator\n                      (VariableSymbol))\n                    (Integer)))\n                (ConstructorIdentifier))\n              (CaseGuardPattern\n                (Guard\n                  (InfixOperatorApp\n                    (VariableIdentifier)\n                    (Empty)\n                    (VariableOperator\n                      (VariableSymbol))\n                    (Integer)))\n                (ConstructorIdentifier))\n              (CaseGuardPattern\n                (Guard\n                  (InfixOperatorApp\n                    (VariableIdentifier)\n                    (Empty)\n                    (VariableOperator\n                      (VariableSymbol))\n                    (Integer)))\n                (ConstructorIdentifier)))))))\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (Match\n          (VariableIdentifier)\n          (Statements\n            (Pattern\n              (ConstructorPattern\n                (Statements\n                  (ConstructorIdentifier)\n                  (VariableIdentifier)))\n              (CaseGuardPattern\n                (Guard\n                  (InfixOperatorApp\n                    (VariableIdentifier)\n                    (Empty)\n                    (VariableOperator\n                      (VariableSymbol))\n                    (Integer)))\n                (Guard\n                  (ConstructorIdentifier))\n                (Guard\n                  (Let\n                    (TypeSignature\n                      (VariableIdentifier)\n                      (FunctionType\n                        (Type\n                          (TypeConstructorIdentifier)\n                          (TypeParameters)\n                          (Empty))\n                        (Type\n                          (TypeConstructorIdentifier)\n                          (TypeParameters)\n                          (Empty))))\n                    (Function\n                      (VariableIdentifier)\n                      (VariableIdentifier)\n                      (Statements\n                        (VariableIdentifier)))\n                    (Empty)))\n                (ConstructorIdentifier)))\n            (Pattern\n              (ConstructorIdentifier)\n              (ConstructorIdentifier))))))\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (Match\n          (VariableIdentifier)\n          (Statements\n            (Pattern\n              (ConstructorPattern\n                (Statements\n                  (ConstructorIdentifier)\n                  (Wildcard)))\n              (Statements\n                (VariableIdentifier)\n                (Statements\n                  (Function\n                    (VariableIdentifier)\n                    (Statements\n                      (ConstructorIdentifier))))))\n            (Pattern\n              (ConstructorIdentifier)\n              (ConstructorIdentifier))))))\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (Match\n          (VariableIdentifier)\n          (Statements\n            (Pattern\n              (ConstructorPattern\n                (Statements\n                  (ConstructorIdentifier)\n                  (VariableIdentifier)))\n              (Statements\n                (VariableIdentifier)\n                (Statements\n                  (Function\n                    (VariableIdentifier)\n                    (Statements\n                      (VariableIdentifier)))\n                  (Function\n                    (VariableIdentifier)\n                    (Statements\n                      (Integer))))))\n            (Pattern\n              (ConstructorIdentifier)\n              (Statements\n                (VariableIdentifier)\n                (Statements\n                  (Function\n                    (VariableIdentifier)\n                    (Statements\n                      (VariableIdentifier)))\n                  (Function\n                    (VariableIdentifier)\n                    (Statements\n                      (Integer))))))))))\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (Match\n          (VariableIdentifier)\n          (Statements\n            (Pattern\n              (ConstructorPattern\n                (Statements\n                  (ConstructorIdentifier)\n                  (VariableIdentifier)))\n              (VariableIdentifier))\n            (Pattern\n              (ConstructorIdentifier)\n              (VariableIdentifier))\n            (Statements\n              (Function\n                (VariableIdentifier)\n                (Statements\n                  (Integer)))\n              (Function\n                (VariableIdentifier)\n                (Statements\n                  (Integer))))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Lambda\n          (VariableIdentifier)\n          (Match\n            (VariableIdentifier)\n            (Pattern\n              (ConstructorIdentifier)\n              (VariableIdentifier))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (App\n            (VariableIdentifier)\n            (Empty)\n            (VariableIdentifier))\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (LambdaCase\n            (Pattern\n              (ConstructorPattern\n                (Statements\n                  (ConstructorIdentifier)\n                  (ConstructorPattern\n                    (Statements\n                      (ConstructorIdentifier)\n                      (Wildcard)\n                      (Wildcard)\n                      (Wildcard)\n                      (Wildcard)\n                      (VariableIdentifier)\n                      (Wildcard)))))\n              (Do\n                (BindPattern\n                  (VariableIdentifier)\n                  (InfixOperatorApp\n                    (App\n                      (VariableIdentifier)\n                      (Empty)\n                      (App\n                        (VariableIdentifier)\n                        (Empty)\n                        (VariableIdentifier)))\n                    (Empty)\n                    (VariableOperator\n                      (VariableSymbol))\n                    (App\n                      (App\n                        (VariableIdentifier)\n                        (Empty)\n                        (VariableIdentifier))\n                      (Empty)\n                      (VariableIdentifier))))\n                (BindPattern\n                  (VariableIdentifier)\n                  (App\n                    (App\n                      (VariableIdentifier)\n                      (Empty)\n                      (VariableIdentifier))\n                    (Empty)\n                    (VariableIdentifier)))\n                (InfixOperatorApp\n                  (VariableIdentifier)\n                  (Empty)\n                  (VariableOperator\n                    (VariableSymbol))\n                  (InfixOperatorApp\n                    (VariableIdentifier)\n                    (Empty)\n                    (VariableOperator\n                      (VariableSymbol))\n                    (VariableIdentifier)))))\n            (Pattern\n              (Wildcard)\n              (App\n                (VariableIdentifier)\n                (Empty)\n                (TextElement)))))))\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (FunctionGuardPattern\n          (Guard\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (Integer)))\n          (Guard\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (Integer)))\n          (ConstructorIdentifier))\n        (FunctionGuardPattern\n          (Guard\n            (VariableIdentifier))\n          (ConstructorIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (Do\n          (Let\n            (Function\n              (VariableIdentifier)\n              (Statements\n                (VariableIdentifier)))\n            (Empty))\n          (BindPattern\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (App\n            (VariableIdentifier)\n            (Empty)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (Do\n          (Let\n            (Function\n              (VariableIdentifier)\n              (Statements\n                (VariableIdentifier)))\n            (Empty))\n          (VariableIdentifier)\n          (VariableIdentifier)\n          (Statements\n            (Function\n              (VariableIdentifier)\n              (Statements\n                (App\n                  (VariableIdentifier)\n                  (Empty)\n                  (VariableIdentifier))))\n            (Function\n              (VariableIdentifier)\n              (Statements\n                (Integer)))))))\n    (Function\n      (VariableIdentifier)\n      (AsPattern\n        (VariableIdentifier)\n        (ConstructorIdentifier))\n      (Statements\n        (LabeledUpdate\n          (VariableIdentifier)\n          (FieldBind\n            (VariableIdentifier)\n            (Integer))\n          (FieldBind\n            (VariableIdentifier)\n            (Integer)))))\n    (Function\n      (VariableIdentifier)\n      (AsPattern\n        (VariableIdentifier)\n        (LabeledPattern\n          (Statements\n            (ConstructorIdentifier)\n            (FieldPattern\n              (VariableIdentifier)\n              (VariableIdentifier))\n            (FieldPattern\n              (VariableIdentifier)\n              (VariableIdentifier)))))\n      (Statements\n        (LabeledUpdate\n          (VariableIdentifier)\n          (FieldBind\n            (VariableIdentifier)\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (Integer)))\n          (FieldBind\n            (VariableIdentifier)\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (TextElement))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (TypeApp\n          (ConstructorIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (TypeApp\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (TextElement))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (TypeApp\n          (ConstructorPattern\n            (Statements\n              (QualifiedConstructorIdentifier\n                (ModuleIdentifier)\n                (ConstructorIdentifier))\n              (TextElement))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (TypeApp\n            (ConstructorIdentifier))\n          (VariableOperator\n            (VariableSymbol))\n          (QualifiedVariableIdentifier\n            (ModuleIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (TypeApp\n            (QualifiedConstructorIdentifier\n              (ModuleIdentifier)\n              (ConstructorIdentifier)))\n          (VariableOperator\n            (VariableSymbol))\n          (QualifiedVariableIdentifier\n            (ModuleIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (TypeApp\n            (ConstructorIdentifier))\n          (VariableOperator\n            (VariableSymbol))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (TypeApp\n            (QualifiedConstructorIdentifier\n              (ModuleIdentifier)\n              (ConstructorIdentifier)))\n          (VariableOperator\n            (VariableSymbol))\n          (QualifiedVariableIdentifier\n            (ModuleIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (TypeApp\n            (ConstructorIdentifier))\n          (VariableOperator\n            (VariableSymbol))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (TypeApp\n            (QualifiedConstructorIdentifier\n              (ModuleIdentifier)\n              (ConstructorIdentifier)))\n          (VariableOperator\n            (VariableSymbol))\n          (QualifiedVariableIdentifier\n            (ModuleIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (TypeApp\n            (ConstructorIdentifier))\n          (VariableOperator\n            (VariableSymbol))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (TypeApp\n            (QualifiedConstructorIdentifier\n              (ModuleIdentifier)\n              (ConstructorIdentifier)))\n          (VariableOperator\n            (VariableSymbol))\n          (QualifiedVariableIdentifier\n            (ModuleIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (TypeApp\n          (App\n            (VariableIdentifier)\n            (Empty)\n            (App\n              (ConstructorIdentifier)\n              (Empty)\n              (VariableIdentifier))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (QualifiedVariableIdentifier\n            (QualifiedModuleIdentifier\n              (ModuleIdentifier)\n              (ModuleIdentifier))\n            (VariableIdentifier))\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (QualifiedVariableIdentifier\n            (QualifiedModuleIdentifier\n              (ModuleIdentifier)\n              (ModuleIdentifier))\n            (VariableIdentifier))\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (QualifiedVariableIdentifier\n            (ModuleIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (QualifiedVariableIdentifier\n            (QualifiedModuleIdentifier\n              (ModuleIdentifier)\n              (ModuleIdentifier))\n            (VariableIdentifier))\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (QualifiedVariableIdentifier\n            (QualifiedModuleIdentifier\n              (ModuleIdentifier)\n              (ModuleIdentifier))\n            (VariableIdentifier))\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (QualifiedVariableIdentifier\n            (ModuleIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (QualifiedVariableIdentifier\n            (QualifiedModuleIdentifier\n              (ModuleIdentifier)\n              (ModuleIdentifier))\n            (VariableIdentifier))\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (QualifiedVariableIdentifier\n            (QualifiedModuleIdentifier\n              (ModuleIdentifier)\n              (ModuleIdentifier))\n            (VariableIdentifier))\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (QualifiedVariableIdentifier\n            (ModuleIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (QualifiedVariableIdentifier\n            (QualifiedModuleIdentifier\n              (ModuleIdentifier)\n              (ModuleIdentifier))\n            (VariableIdentifier))\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (QualifiedVariableIdentifier\n            (QualifiedModuleIdentifier\n              (ModuleIdentifier)\n              (ModuleIdentifier))\n            (VariableIdentifier))\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (QualifiedVariableIdentifier\n            (ModuleIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (ConstructorIdentifier)\n          (Empty)\n          (PromotedTypeOperator\n            (ConstructorOperator\n              (ConstructorSymbol)))\n          (ConstructorIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (ConstructorIdentifier)\n          (Empty)\n          (PromotedTypeOperator\n            (ConstructorOperator\n              (ConstructorSymbol)))\n          (ConstructorIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableOperator\n          (VariableSymbol))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (Statements))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Integer)\n        (Statements)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Integer)\n        (Statements)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (Statements\n          (Comment))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (Statements\n          (Comment))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (Statements\n          (Comment))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (Statements\n          (Pragma))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (VariableIdentifier))\n      (ViewPattern\n        (App\n          (VariableIdentifier)\n          (Empty)\n          (VariableIdentifier))\n        (ConstructorPattern\n          (Statements\n            (ConstructorIdentifier)\n            (VariableIdentifier)\n            (VariableIdentifier))))\n      (Statements\n        (VariableIdentifier)))\n    (TypeSignature\n      (VariableIdentifier)\n      (ContextAlt\n        (TypeSignature\n          (ImplicitParameterIdentifier)\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))))))\n      (FunctionType\n        (Type\n          (Array\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))\n        (Type\n          (Array\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (App\n          (VariableIdentifier)\n          (Empty)\n          (ImplicitParameterIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (ConstructorPattern\n        (Statements\n          (ConstructorIdentifier)\n          (AnnotatedTypeVariable\n            (TypeVariableIdentifier)\n            (ConstructorPattern\n              (Statements\n                (ConstructorIdentifier)\n                (VariableIdentifier)\n                (VariableIdentifier))))\n          (VariableIdentifier)))\n      (Statements\n        (VariableIdentifier)))\n    (TypeSignature\n      (VariableIdentifier)\n      (ContextAlt\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (Statements\n              (QuotedName\n                (TypeConstructorIdentifier))\n              (TypeVariableIdentifier)))\n          (EqualityConstraint\n            (Class\n              (TypeClassIdentifier)\n              (TypeVariableIdentifier))\n            (Class\n              (QuotedName\n                (TypeConstructorIdentifier))\n              (TypeVariableIdentifier)))))\n      (FunctionType\n        (Type\n          (TypeConstructorIdentifier)\n          (TypeParameters)\n          (Empty))\n        (FunctionType\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))\n          (FunctionType\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeVariableIdentifier)\n                (TypeVariableIdentifier))\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeVariableIdentifier)\n                (TypeVariableIdentifier))\n              (Empty))))))\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (App\n          (VariableIdentifier)\n          (Empty)\n          (VariableIdentifier))\n        (Statements\n          (Function\n            (VariableIdentifier)\n            (LabeledPattern\n              (Statements\n                (ConstructorIdentifier)\n                (RecordWildCards)))\n            (Statements\n              (Let\n                (Function\n                  (VariableIdentifier)\n                  (Statements\n                    (App\n                      (App\n                        (VariableIdentifier)\n                        (Empty)\n                        (RightOperatorSection\n                          (VariableOperator\n                            (VariableSymbol))\n                          (Character)))\n                      (Empty)\n                      (App\n                        (VariableIdentifier)\n                        (Empty)\n                        (VariableIdentifier)))))\n                (App\n                  (App\n                    (VariableIdentifier)\n                    (Empty)\n                    (VariableIdentifier))\n                  (Empty)\n                  (VariableIdentifier))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/function-declarations.parseB.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (ConstructorPattern\n        (Statements\n          (ConstructorIdentifier)\n          (Integer)))\n      (Statements\n        (App\n          (ConstructorIdentifier)\n          (Empty)\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (AsPattern\n        (VariableIdentifier)\n        (VariableIdentifier))\n      (AsPattern\n        (VariableIdentifier)\n        (VariableIdentifier))\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Wildcard)\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Integer)\n      (Integer)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (TextElement)\n      (TextElement)\n      (Statements\n        (TextElement)))\n    (Function\n      (VariableIdentifier)\n      (Character)\n      (Character)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Float)\n      (Float)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (LabeledPattern\n        (Statements\n          (ConstructorIdentifier)\n          (FieldPattern\n            (VariableIdentifier)\n            (Integer))))\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (LabeledPattern\n        (Statements\n          (ConstructorIdentifier)\n          (FieldPattern\n            (VariableIdentifier)\n            (Integer))\n          (FieldPattern\n            (VariableIdentifier)\n            (Integer))))\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (LabeledPattern\n        (ConstructorIdentifier))\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (LabeledPattern\n        (Statements\n          (ConstructorIdentifier)\n          (NamedFieldPun\n            (VariableIdentifier))\n          (NamedFieldPun\n            (VariableIdentifier))))\n      (Statements\n        (Array\n          (VariableIdentifier)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (LabeledPattern\n        (Statements\n          (ConstructorIdentifier)\n          (RecordWildCards)))\n      (Statements\n        (Array\n          (VariableIdentifier)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (LabeledPattern\n        (Statements\n          (ConstructorIdentifier)\n          (NamedFieldPun\n            (VariableIdentifier))\n          (FieldPattern\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (RecordWildCards)))\n      (Statements\n        (Array\n          (VariableIdentifier)\n          (VariableIdentifier)\n          (VariableIdentifier)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (AsPattern\n        (VariableIdentifier)\n        (LabeledPattern\n          (Statements\n            (ConstructorIdentifier)\n            (FieldPattern\n              (VariableIdentifier)\n              (Integer)))))\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Integer)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (NegativeLiteral\n        (Integer))\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (ConstructorPattern\n        (Statements\n          (ConstructorIdentifier)\n          (VariableIdentifier)\n          (VariableIdentifier)\n          (VariableIdentifier)))\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (VariableIdentifier))\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (ListConstructor)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (TuplePattern\n        (Integer)\n        (Integer))\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (TuplePattern\n        (ConstructorPattern\n          (Statements\n            (ConstructorIdentifier)\n            (Integer)))\n        (ConstructorPattern\n          (Statements\n            (ConstructorIdentifier)\n            (Integer))))\n      (Statements\n        (App\n          (ConstructorIdentifier)\n          (Empty)\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (TuplePattern\n        (ConstructorPattern\n          (Statements\n            (ConstructorIdentifier)\n            (VariableIdentifier)))\n        (ConstructorIdentifier))\n      (Statements\n        (ConstructorIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (TuplePattern\n        (ConstructorPattern\n          (Statements\n            (ConstructorIdentifier)\n            (VariableIdentifier)))\n        (ConstructorPattern\n          (Statements\n            (ConstructorIdentifier)\n            (VariableIdentifier)))\n        (NegativeLiteral\n          (Integer)))\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (ListConstructor)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (ListPattern\n        (VariableIdentifier))\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (VariableIdentifier))\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (VariableIdentifier))\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (VariableIdentifier))\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (IrrefutablePattern\n        (VariableIdentifier))\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (IrrefutablePattern\n        (NegativeLiteral\n          (Integer)))\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (IrrefutablePattern\n        (TuplePattern\n          (IrrefutablePattern\n            (TuplePattern\n              (VariableIdentifier)\n              (VariableIdentifier)))\n          (VariableIdentifier)))\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (Match\n          (VariableIdentifier)\n          (Pattern\n            (ConstructorPattern\n              (Statements\n                (ConstructorIdentifier)\n                (VariableIdentifier)))\n            (Statements\n              (CaseGuardPattern\n                (Guard\n                  (InfixOperatorApp\n                    (VariableIdentifier)\n                    (Empty)\n                    (VariableOperator\n                      (VariableSymbol))\n                    (Integer)))\n                (ConstructorIdentifier))\n              (CaseGuardPattern\n                (Guard\n                  (InfixOperatorApp\n                    (VariableIdentifier)\n                    (Empty)\n                    (VariableOperator\n                      (VariableSymbol))\n                    (Integer)))\n                (ConstructorIdentifier))\n              (CaseGuardPattern\n                (Guard\n                  (InfixOperatorApp\n                    (VariableIdentifier)\n                    (Empty)\n                    (VariableOperator\n                      (VariableSymbol))\n                    (Integer)))\n                (ConstructorIdentifier)))))))\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (Match\n          (VariableIdentifier)\n          (Statements\n            (Pattern\n              (ConstructorPattern\n                (Statements\n                  (ConstructorIdentifier)\n                  (VariableIdentifier)))\n              (CaseGuardPattern\n                (Guard\n                  (InfixOperatorApp\n                    (VariableIdentifier)\n                    (Empty)\n                    (VariableOperator\n                      (VariableSymbol))\n                    (Integer)))\n                (Guard\n                  (ConstructorIdentifier))\n                (Guard\n                  (Let\n                    (TypeSignature\n                      (VariableIdentifier)\n                      (FunctionType\n                        (Type\n                          (TypeConstructorIdentifier)\n                          (TypeParameters)\n                          (Empty))\n                        (Type\n                          (TypeConstructorIdentifier)\n                          (TypeParameters)\n                          (Empty))))\n                    (Function\n                      (VariableIdentifier)\n                      (VariableIdentifier)\n                      (Statements\n                        (VariableIdentifier)))\n                    (Empty)))\n                (ConstructorIdentifier)))\n            (Pattern\n              (ConstructorIdentifier)\n              (ConstructorIdentifier))))))\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (Match\n          (VariableIdentifier)\n          (Statements\n            (Pattern\n              (ConstructorPattern\n                (Statements\n                  (ConstructorIdentifier)\n                  (Wildcard)))\n              (Statements\n                (VariableIdentifier)\n                (Statements\n                  (Function\n                    (VariableIdentifier)\n                    (Statements\n                      (ConstructorIdentifier))))))\n            (Pattern\n              (ConstructorIdentifier)\n              (ConstructorIdentifier))))))\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (Match\n          (VariableIdentifier)\n          (Statements\n            (Pattern\n              (ConstructorPattern\n                (Statements\n                  (ConstructorIdentifier)\n                  (VariableIdentifier)))\n              (Statements\n                (VariableIdentifier)\n                (Statements\n                  (Function\n                    (VariableIdentifier)\n                    (Statements\n                      (VariableIdentifier)))\n                  (Function\n                    (VariableIdentifier)\n                    (Statements\n                      (Integer))))))\n            (Pattern\n              (ConstructorIdentifier)\n              (Statements\n                (VariableIdentifier)\n                (Statements\n                  (Function\n                    (VariableIdentifier)\n                    (Statements\n                      (VariableIdentifier)))\n                  (Function\n                    (VariableIdentifier)\n                    (Statements\n                      (Integer))))))))))\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (Match\n          (VariableIdentifier)\n          (Statements\n            (Pattern\n              (ConstructorPattern\n                (Statements\n                  (ConstructorIdentifier)\n                  (VariableIdentifier)))\n              (VariableIdentifier))\n            (Pattern\n              (ConstructorIdentifier)\n              (VariableIdentifier))\n            (Statements\n              (Function\n                (VariableIdentifier)\n                (Statements\n                  (Integer)))\n              (Function\n                (VariableIdentifier)\n                (Statements\n                  (Integer))))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Lambda\n          (VariableIdentifier)\n          (Match\n            (VariableIdentifier)\n            (Pattern\n              (ConstructorIdentifier)\n              (VariableIdentifier))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (App\n            (VariableIdentifier)\n            (Empty)\n            (VariableIdentifier))\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (LambdaCase\n            (Pattern\n              (ConstructorPattern\n                (Statements\n                  (ConstructorIdentifier)\n                  (ConstructorPattern\n                    (Statements\n                      (ConstructorIdentifier)\n                      (Wildcard)\n                      (Wildcard)\n                      (Wildcard)\n                      (Wildcard)\n                      (VariableIdentifier)\n                      (Wildcard)))))\n              (Do\n                (BindPattern\n                  (VariableIdentifier)\n                  (InfixOperatorApp\n                    (App\n                      (VariableIdentifier)\n                      (Empty)\n                      (App\n                        (VariableIdentifier)\n                        (Empty)\n                        (VariableIdentifier)))\n                    (Empty)\n                    (VariableOperator\n                      (VariableSymbol))\n                    (App\n                      (App\n                        (VariableIdentifier)\n                        (Empty)\n                        (VariableIdentifier))\n                      (Empty)\n                      (VariableIdentifier))))\n                (BindPattern\n                  (VariableIdentifier)\n                  (App\n                    (App\n                      (VariableIdentifier)\n                      (Empty)\n                      (VariableIdentifier))\n                    (Empty)\n                    (VariableIdentifier)))\n                (InfixOperatorApp\n                  (VariableIdentifier)\n                  (Empty)\n                  (VariableOperator\n                    (VariableSymbol))\n                  (InfixOperatorApp\n                    (VariableIdentifier)\n                    (Empty)\n                    (VariableOperator\n                      (VariableSymbol))\n                    (VariableIdentifier)))))\n            (Pattern\n              (Wildcard)\n              (App\n                (VariableIdentifier)\n                (Empty)\n                (TextElement)))))))\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (FunctionGuardPattern\n          (Guard\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (Integer)))\n          (Guard\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (Integer)))\n          (ConstructorIdentifier))\n        (FunctionGuardPattern\n          (Guard\n            (VariableIdentifier))\n          (ConstructorIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (Do\n          (Let\n            (Function\n              (VariableIdentifier)\n              (Statements\n                (VariableIdentifier)))\n            (Empty))\n          (BindPattern\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (App\n            (VariableIdentifier)\n            (Empty)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (Do\n          (Let\n            (Function\n              (VariableIdentifier)\n              (Statements\n                (VariableIdentifier)))\n            (Empty))\n          (VariableIdentifier)\n          (VariableIdentifier)\n          (Statements\n            (Function\n              (VariableIdentifier)\n              (Statements\n                (App\n                  (VariableIdentifier)\n                  (Empty)\n                  (VariableIdentifier))))\n            (Function\n              (VariableIdentifier)\n              (Statements\n                (Integer)))))))\n    (Function\n      (VariableIdentifier)\n      (AsPattern\n        (VariableIdentifier)\n        (ConstructorIdentifier))\n      (Statements\n        (LabeledUpdate\n          (VariableIdentifier)\n          (FieldBind\n            (VariableIdentifier)\n            (Integer))\n          (FieldBind\n            (VariableIdentifier)\n            (Integer)))))\n    (Function\n      (VariableIdentifier)\n      (AsPattern\n        (VariableIdentifier)\n        (LabeledPattern\n          (Statements\n            (ConstructorIdentifier)\n            (FieldPattern\n              (VariableIdentifier)\n              (VariableIdentifier))\n            (FieldPattern\n              (VariableIdentifier)\n              (VariableIdentifier)))))\n      (Statements\n        (LabeledUpdate\n          (VariableIdentifier)\n          (FieldBind\n            (VariableIdentifier)\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (Integer)))\n          (FieldBind\n            (VariableIdentifier)\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (TextElement))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (TypeApp\n          (ConstructorIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (TypeApp\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (TextElement))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (TypeApp\n          (ConstructorPattern\n            (Statements\n              (QualifiedConstructorIdentifier\n                (ModuleIdentifier)\n                (ConstructorIdentifier))\n              (TextElement))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (TypeApp\n            (ConstructorIdentifier))\n          (VariableOperator\n            (VariableSymbol))\n          (QualifiedVariableIdentifier\n            (ModuleIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (TypeApp\n            (QualifiedConstructorIdentifier\n              (ModuleIdentifier)\n              (ConstructorIdentifier)))\n          (VariableOperator\n            (VariableSymbol))\n          (QualifiedVariableIdentifier\n            (ModuleIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (TypeApp\n            (ConstructorIdentifier))\n          (VariableOperator\n            (VariableSymbol))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (TypeApp\n            (QualifiedConstructorIdentifier\n              (ModuleIdentifier)\n              (ConstructorIdentifier)))\n          (VariableOperator\n            (VariableSymbol))\n          (QualifiedVariableIdentifier\n            (ModuleIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (TypeApp\n            (ConstructorIdentifier))\n          (VariableOperator\n            (VariableSymbol))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (TypeApp\n            (QualifiedConstructorIdentifier\n              (ModuleIdentifier)\n              (ConstructorIdentifier)))\n          (VariableOperator\n            (VariableSymbol))\n          (QualifiedVariableIdentifier\n            (ModuleIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (TypeApp\n            (ConstructorIdentifier))\n          (VariableOperator\n            (VariableSymbol))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (TypeApp\n            (QualifiedConstructorIdentifier\n              (ModuleIdentifier)\n              (ConstructorIdentifier)))\n          (VariableOperator\n            (VariableSymbol))\n          (QualifiedVariableIdentifier\n            (ModuleIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (TypeApp\n          (App\n            (VariableIdentifier)\n            (Empty)\n            (App\n              (ConstructorIdentifier)\n              (Empty)\n              (VariableIdentifier))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (QualifiedVariableIdentifier\n            (QualifiedModuleIdentifier\n              (ModuleIdentifier)\n              (ModuleIdentifier))\n            (VariableIdentifier))\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (QualifiedVariableIdentifier\n            (QualifiedModuleIdentifier\n              (ModuleIdentifier)\n              (ModuleIdentifier))\n            (VariableIdentifier))\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (QualifiedVariableIdentifier\n            (ModuleIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (QualifiedVariableIdentifier\n            (QualifiedModuleIdentifier\n              (ModuleIdentifier)\n              (ModuleIdentifier))\n            (VariableIdentifier))\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (QualifiedVariableIdentifier\n            (QualifiedModuleIdentifier\n              (ModuleIdentifier)\n              (ModuleIdentifier))\n            (VariableIdentifier))\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (QualifiedVariableIdentifier\n            (ModuleIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (QualifiedVariableIdentifier\n            (QualifiedModuleIdentifier\n              (ModuleIdentifier)\n              (ModuleIdentifier))\n            (VariableIdentifier))\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (QualifiedVariableIdentifier\n            (QualifiedModuleIdentifier\n              (ModuleIdentifier)\n              (ModuleIdentifier))\n            (VariableIdentifier))\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (QualifiedVariableIdentifier\n            (ModuleIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (QualifiedVariableIdentifier\n            (QualifiedModuleIdentifier\n              (ModuleIdentifier)\n              (ModuleIdentifier))\n            (VariableIdentifier))\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (QualifiedVariableIdentifier\n            (QualifiedModuleIdentifier\n              (ModuleIdentifier)\n              (ModuleIdentifier))\n            (VariableIdentifier))\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (QualifiedVariableIdentifier\n            (ModuleIdentifier)\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (ConstructorIdentifier)\n          (Empty)\n          (PromotedTypeOperator\n            (ConstructorOperator\n              (ConstructorSymbol)))\n          (ConstructorIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (ConstructorIdentifier)\n          (Empty)\n          (PromotedTypeOperator\n            (ConstructorOperator\n              (ConstructorSymbol)))\n          (ConstructorIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableOperator\n          (VariableSymbol))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (VariableIdentifier)\n          (Empty)\n          (VariableOperator\n            (VariableSymbol))\n          (Statements))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Integer)\n        (Statements)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Integer)\n        (Statements)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (Statements\n          (Comment))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (Statements\n          (Comment))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (Statements\n          (Comment))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (Statements\n          (Pragma))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (VariableIdentifier))\n      (ViewPattern\n        (App\n          (VariableIdentifier)\n          (Empty)\n          (VariableIdentifier))\n        (ConstructorPattern\n          (Statements\n            (ConstructorIdentifier)\n            (VariableIdentifier)\n            (VariableIdentifier))))\n      (Statements\n        (VariableIdentifier)))\n    (TypeSignature\n      (VariableIdentifier)\n      (ContextAlt\n        (TypeSignature\n          (ImplicitParameterIdentifier)\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))))))\n      (FunctionType\n        (Type\n          (Array\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))\n        (Type\n          (Array\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (App\n          (VariableIdentifier)\n          (Empty)\n          (ImplicitParameterIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (ConstructorPattern\n        (Statements\n          (ConstructorIdentifier)\n          (AnnotatedTypeVariable\n            (TypeVariableIdentifier)\n            (ConstructorPattern\n              (Statements\n                (ConstructorIdentifier)\n                (VariableIdentifier)\n                (VariableIdentifier))))\n          (VariableIdentifier)))\n      (Statements\n        (VariableIdentifier)))\n    (TypeSignature\n      (VariableIdentifier)\n      (ContextAlt\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (Statements\n              (QuotedName\n                (TypeConstructorIdentifier))\n              (TypeVariableIdentifier)))\n          (EqualityConstraint\n            (Class\n              (TypeClassIdentifier)\n              (TypeVariableIdentifier))\n            (Class\n              (QuotedName\n                (TypeConstructorIdentifier))\n              (TypeVariableIdentifier)))))\n      (FunctionType\n        (Type\n          (TypeConstructorIdentifier)\n          (TypeParameters)\n          (Empty))\n        (FunctionType\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))\n          (FunctionType\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeVariableIdentifier)\n                (TypeVariableIdentifier))\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeVariableIdentifier)\n                (TypeVariableIdentifier))\n              (Empty))))))\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (App\n          (VariableIdentifier)\n          (Empty)\n          (VariableIdentifier))\n        (Statements\n          (Function\n            (VariableIdentifier)\n            (LabeledPattern\n              (Statements\n                (ConstructorIdentifier)\n                (RecordWildCards)))\n            (Statements\n              (Let\n                (Function\n                  (VariableIdentifier)\n                  (Statements\n                    (App\n                      (App\n                        (VariableIdentifier)\n                        (Empty)\n                        (RightOperatorSection\n                          (VariableOperator\n                            (VariableSymbol))\n                          (Character)))\n                      (Empty)\n                      (App\n                        (VariableIdentifier)\n                        (Empty)\n                        (VariableIdentifier)))))\n                (App\n                  (App\n                    (VariableIdentifier)\n                    (Empty)\n                    (VariableIdentifier))\n                  (Empty)\n                  (VariableIdentifier))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/gadt-declarations.A.hs",
    "content": "data Foo a b c where\n  Baz :: a -> b -> c -> Foo a b c\n\ndata Foo f a where\n  Bar :: { jolo :: Maybe String, runJolo :: f a } -> Foo f a\n\ndata Foo a :: [*] -> * where\n\ndata Number a where\n  Integer :: !Prelude.Integer  -> Number Prelude.Integer\n  Ratio   :: !Prelude.Rational -> Number Prelude.Rational\n  Decimal :: !Scientific       -> Number Scientific\n\ndata Union (r :: [ * -> * ]) (v :: *) where\n  Union :: {-# UNPACK #-} !Int -> t v -> Union r v\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/gadt-declarations.B.hs",
    "content": "data Bar a b c where\n  Baz :: a -> b -> c -> Bar a b c\n\ndata Bar f a where\n  Baz :: { jolo :: Maybe String, runJolo :: f a } -> Bar f a\n\ndata Bar a :: [*] -> [*] where\n\ndata Number' a where\n  Integer' :: !Prelude.Integer  -> Number Prelude.Integer\n  Ratio'   :: !Prelude.Rational -> Number Prelude.Rational\n  Decimal' :: !Scientific       -> Number Scientific\n\ndata Union (r :: [ * -> * ]) (v :: *) where\n  Union :: {-# UNPACK #-} !Integer -> t v -> Union r v\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/gadt-declarations.diffA-B.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (GADT\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Statements\n        (GADTConstructor\n          (Empty)\n          (TypeConstructorIdentifier)\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (FunctionType\n                (Type\n                  (TypeVariableIdentifier)\n                  (TypeParameters)\n                  (Empty))\n                (Type\n                { (TypeConstructorIdentifier)\n                ->(TypeConstructorIdentifier) }\n                  (TypeParameters\n                    (TypeVariableIdentifier)\n                    (TypeVariableIdentifier)\n                    (TypeVariableIdentifier))\n                  (Empty))))))))\n    (GADT\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Statements\n        (GADTConstructor\n          (Empty)\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }\n          (FunctionType\n            (Type\n              (Statements\n                (Field\n                  (Statements\n                    (VariableIdentifier))\n                  (Type\n                    (TypeConstructorIdentifier)\n                    (TypeParameters\n                      (TypeConstructorIdentifier))\n                    (Empty)))\n                (Field\n                  (Statements\n                    (VariableIdentifier))\n                  (Type\n                    (TypeVariableIdentifier)\n                    (TypeParameters\n                      (TypeVariableIdentifier))\n                    (Empty))))\n              (TypeParameters)\n              (Empty))\n            (Type\n            { (TypeConstructorIdentifier)\n            ->(TypeConstructorIdentifier) }\n              (TypeParameters\n                (TypeVariableIdentifier)\n                (TypeVariableIdentifier))\n              (Empty))))))\n    (GADT\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (Statements\n          (TypeVariableIdentifier))\n        (KindSignature\n          (KindFunctionType\n            (Kind\n              (KindListType\n                (Star)))\n            (Kind\n            { (Star)\n            ->(KindListType\n              {+(Star)+}) }))))\n      (Statements))\n    (GADT\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (Statements\n          (TypeVariableIdentifier))\n        (Empty))\n      (Statements\n        (GADTConstructor\n          (Empty)\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }\n          (FunctionType\n            (Type\n              (StrictType\n                (QualifiedTypeConstructorIdentifier\n                  (ModuleIdentifier)\n                  (TypeConstructorIdentifier))\n                (TypeParameters))\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (QualifiedTypeConstructorIdentifier\n                  (ModuleIdentifier)\n                  (TypeConstructorIdentifier)))\n              (Empty))))\n        (GADTConstructor\n          (Empty)\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }\n          (FunctionType\n            (Type\n              (StrictType\n                (QualifiedTypeConstructorIdentifier\n                  (ModuleIdentifier)\n                  (TypeConstructorIdentifier))\n                (TypeParameters))\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (QualifiedTypeConstructorIdentifier\n                  (ModuleIdentifier)\n                  (TypeConstructorIdentifier)))\n              (Empty))))\n        (GADTConstructor\n          (Empty)\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }\n          (FunctionType\n            (Type\n              (StrictType\n                (TypeConstructorIdentifier)\n                (TypeParameters))\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeConstructorIdentifier))\n              (Empty))))))\n    (GADT\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (Statements\n          (AnnotatedTypeVariable\n            (TypeVariableIdentifier)\n            (KindListType\n              (KindFunctionType\n                (Kind\n                  (Star))\n                (Kind\n                  (Star)))))\n          (AnnotatedTypeVariable\n            (TypeVariableIdentifier)\n            (Star)))\n        (Empty))\n      (Statements\n        (GADTConstructor\n          (Empty)\n          (TypeConstructorIdentifier)\n          (Statements\n            (Pragma)\n            (FunctionType\n              (Type\n                (StrictType\n                { (TypeConstructorIdentifier)\n                ->(TypeConstructorIdentifier) }\n                  (TypeParameters))\n                (TypeParameters)\n                (Empty))\n              (FunctionType\n                (Type\n                  (TypeVariableIdentifier)\n                  (TypeParameters\n                    (TypeVariableIdentifier))\n                  (Empty))\n                (Type\n                  (TypeConstructorIdentifier)\n                  (TypeParameters\n                    (TypeVariableIdentifier)\n                    (TypeVariableIdentifier))\n                  (Empty))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/gadt-declarations.diffB-A.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (GADT\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Statements\n        (GADTConstructor\n          (Empty)\n          (TypeConstructorIdentifier)\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (FunctionType\n                (Type\n                  (TypeVariableIdentifier)\n                  (TypeParameters)\n                  (Empty))\n                (Type\n                { (TypeConstructorIdentifier)\n                ->(TypeConstructorIdentifier) }\n                  (TypeParameters\n                    (TypeVariableIdentifier)\n                    (TypeVariableIdentifier)\n                    (TypeVariableIdentifier))\n                  (Empty))))))))\n    (GADT\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Statements\n        (GADTConstructor\n          (Empty)\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }\n          (FunctionType\n            (Type\n              (Statements\n                (Field\n                  (Statements\n                    (VariableIdentifier))\n                  (Type\n                    (TypeConstructorIdentifier)\n                    (TypeParameters\n                      (TypeConstructorIdentifier))\n                    (Empty)))\n                (Field\n                  (Statements\n                    (VariableIdentifier))\n                  (Type\n                    (TypeVariableIdentifier)\n                    (TypeParameters\n                      (TypeVariableIdentifier))\n                    (Empty))))\n              (TypeParameters)\n              (Empty))\n            (Type\n            { (TypeConstructorIdentifier)\n            ->(TypeConstructorIdentifier) }\n              (TypeParameters\n                (TypeVariableIdentifier)\n                (TypeVariableIdentifier))\n              (Empty))))))\n    (GADT\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (Statements\n          (TypeVariableIdentifier))\n        (KindSignature\n          (KindFunctionType\n            (Kind\n              (KindListType\n                (Star)))\n            (Kind\n            { (KindListType\n              {-(Star)-})\n            ->(Star) }))))\n      (Statements))\n    (GADT\n      (Empty)\n      (Type\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (Statements\n          (TypeVariableIdentifier))\n        (Empty))\n      (Statements\n        (GADTConstructor\n          (Empty)\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }\n          (FunctionType\n            (Type\n              (StrictType\n                (QualifiedTypeConstructorIdentifier\n                  (ModuleIdentifier)\n                  (TypeConstructorIdentifier))\n                (TypeParameters))\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (QualifiedTypeConstructorIdentifier\n                  (ModuleIdentifier)\n                  (TypeConstructorIdentifier)))\n              (Empty))))\n        (GADTConstructor\n          (Empty)\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }\n          (FunctionType\n            (Type\n              (StrictType\n                (QualifiedTypeConstructorIdentifier\n                  (ModuleIdentifier)\n                  (TypeConstructorIdentifier))\n                (TypeParameters))\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (QualifiedTypeConstructorIdentifier\n                  (ModuleIdentifier)\n                  (TypeConstructorIdentifier)))\n              (Empty))))\n        (GADTConstructor\n          (Empty)\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }\n          (FunctionType\n            (Type\n              (StrictType\n                (TypeConstructorIdentifier)\n                (TypeParameters))\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeConstructorIdentifier))\n              (Empty))))))\n    (GADT\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (Statements\n          (AnnotatedTypeVariable\n            (TypeVariableIdentifier)\n            (KindListType\n              (KindFunctionType\n                (Kind\n                  (Star))\n                (Kind\n                  (Star)))))\n          (AnnotatedTypeVariable\n            (TypeVariableIdentifier)\n            (Star)))\n        (Empty))\n      (Statements\n        (GADTConstructor\n          (Empty)\n          (TypeConstructorIdentifier)\n          (Statements\n            (Pragma)\n            (FunctionType\n              (Type\n                (StrictType\n                { (TypeConstructorIdentifier)\n                ->(TypeConstructorIdentifier) }\n                  (TypeParameters))\n                (TypeParameters)\n                (Empty))\n              (FunctionType\n                (Type\n                  (TypeVariableIdentifier)\n                  (TypeParameters\n                    (TypeVariableIdentifier))\n                  (Empty))\n                (Type\n                  (TypeConstructorIdentifier)\n                  (TypeParameters\n                    (TypeVariableIdentifier)\n                    (TypeVariableIdentifier))\n                  (Empty))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/gadt-declarations.parseA.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (GADT\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Statements\n        (GADTConstructor\n          (Empty)\n          (TypeConstructorIdentifier)\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (FunctionType\n                (Type\n                  (TypeVariableIdentifier)\n                  (TypeParameters)\n                  (Empty))\n                (Type\n                  (TypeConstructorIdentifier)\n                  (TypeParameters\n                    (TypeVariableIdentifier)\n                    (TypeVariableIdentifier)\n                    (TypeVariableIdentifier))\n                  (Empty))))))))\n    (GADT\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Statements\n        (GADTConstructor\n          (Empty)\n          (TypeConstructorIdentifier)\n          (FunctionType\n            (Type\n              (Statements\n                (Field\n                  (Statements\n                    (VariableIdentifier))\n                  (Type\n                    (TypeConstructorIdentifier)\n                    (TypeParameters\n                      (TypeConstructorIdentifier))\n                    (Empty)))\n                (Field\n                  (Statements\n                    (VariableIdentifier))\n                  (Type\n                    (TypeVariableIdentifier)\n                    (TypeParameters\n                      (TypeVariableIdentifier))\n                    (Empty))))\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeVariableIdentifier)\n                (TypeVariableIdentifier))\n              (Empty))))))\n    (GADT\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (Statements\n          (TypeVariableIdentifier))\n        (KindSignature\n          (KindFunctionType\n            (Kind\n              (KindListType\n                (Star)))\n            (Kind\n              (Star)))))\n      (Statements))\n    (GADT\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (Statements\n          (TypeVariableIdentifier))\n        (Empty))\n      (Statements\n        (GADTConstructor\n          (Empty)\n          (TypeConstructorIdentifier)\n          (FunctionType\n            (Type\n              (StrictType\n                (QualifiedTypeConstructorIdentifier\n                  (ModuleIdentifier)\n                  (TypeConstructorIdentifier))\n                (TypeParameters))\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (QualifiedTypeConstructorIdentifier\n                  (ModuleIdentifier)\n                  (TypeConstructorIdentifier)))\n              (Empty))))\n        (GADTConstructor\n          (Empty)\n          (TypeConstructorIdentifier)\n          (FunctionType\n            (Type\n              (StrictType\n                (QualifiedTypeConstructorIdentifier\n                  (ModuleIdentifier)\n                  (TypeConstructorIdentifier))\n                (TypeParameters))\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (QualifiedTypeConstructorIdentifier\n                  (ModuleIdentifier)\n                  (TypeConstructorIdentifier)))\n              (Empty))))\n        (GADTConstructor\n          (Empty)\n          (TypeConstructorIdentifier)\n          (FunctionType\n            (Type\n              (StrictType\n                (TypeConstructorIdentifier)\n                (TypeParameters))\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeConstructorIdentifier))\n              (Empty))))))\n    (GADT\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (Statements\n          (AnnotatedTypeVariable\n            (TypeVariableIdentifier)\n            (KindListType\n              (KindFunctionType\n                (Kind\n                  (Star))\n                (Kind\n                  (Star)))))\n          (AnnotatedTypeVariable\n            (TypeVariableIdentifier)\n            (Star)))\n        (Empty))\n      (Statements\n        (GADTConstructor\n          (Empty)\n          (TypeConstructorIdentifier)\n          (Statements\n            (Pragma)\n            (FunctionType\n              (Type\n                (StrictType\n                  (TypeConstructorIdentifier)\n                  (TypeParameters))\n                (TypeParameters)\n                (Empty))\n              (FunctionType\n                (Type\n                  (TypeVariableIdentifier)\n                  (TypeParameters\n                    (TypeVariableIdentifier))\n                  (Empty))\n                (Type\n                  (TypeConstructorIdentifier)\n                  (TypeParameters\n                    (TypeVariableIdentifier)\n                    (TypeVariableIdentifier))\n                  (Empty))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/gadt-declarations.parseB.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (GADT\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Statements\n        (GADTConstructor\n          (Empty)\n          (TypeConstructorIdentifier)\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (FunctionType\n                (Type\n                  (TypeVariableIdentifier)\n                  (TypeParameters)\n                  (Empty))\n                (Type\n                  (TypeConstructorIdentifier)\n                  (TypeParameters\n                    (TypeVariableIdentifier)\n                    (TypeVariableIdentifier)\n                    (TypeVariableIdentifier))\n                  (Empty))))))))\n    (GADT\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))\n        (Empty))\n      (Statements\n        (GADTConstructor\n          (Empty)\n          (TypeConstructorIdentifier)\n          (FunctionType\n            (Type\n              (Statements\n                (Field\n                  (Statements\n                    (VariableIdentifier))\n                  (Type\n                    (TypeConstructorIdentifier)\n                    (TypeParameters\n                      (TypeConstructorIdentifier))\n                    (Empty)))\n                (Field\n                  (Statements\n                    (VariableIdentifier))\n                  (Type\n                    (TypeVariableIdentifier)\n                    (TypeParameters\n                      (TypeVariableIdentifier))\n                    (Empty))))\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeVariableIdentifier)\n                (TypeVariableIdentifier))\n              (Empty))))))\n    (GADT\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (Statements\n          (TypeVariableIdentifier))\n        (KindSignature\n          (KindFunctionType\n            (Kind\n              (KindListType\n                (Star)))\n            (Kind\n              (KindListType\n                (Star))))))\n      (Statements))\n    (GADT\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (Statements\n          (TypeVariableIdentifier))\n        (Empty))\n      (Statements\n        (GADTConstructor\n          (Empty)\n          (TypeConstructorIdentifier)\n          (FunctionType\n            (Type\n              (StrictType\n                (QualifiedTypeConstructorIdentifier\n                  (ModuleIdentifier)\n                  (TypeConstructorIdentifier))\n                (TypeParameters))\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (QualifiedTypeConstructorIdentifier\n                  (ModuleIdentifier)\n                  (TypeConstructorIdentifier)))\n              (Empty))))\n        (GADTConstructor\n          (Empty)\n          (TypeConstructorIdentifier)\n          (FunctionType\n            (Type\n              (StrictType\n                (QualifiedTypeConstructorIdentifier\n                  (ModuleIdentifier)\n                  (TypeConstructorIdentifier))\n                (TypeParameters))\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (QualifiedTypeConstructorIdentifier\n                  (ModuleIdentifier)\n                  (TypeConstructorIdentifier)))\n              (Empty))))\n        (GADTConstructor\n          (Empty)\n          (TypeConstructorIdentifier)\n          (FunctionType\n            (Type\n              (StrictType\n                (TypeConstructorIdentifier)\n                (TypeParameters))\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeConstructorIdentifier))\n              (Empty))))))\n    (GADT\n      (Empty)\n      (Type\n        (TypeConstructorIdentifier)\n        (Statements\n          (AnnotatedTypeVariable\n            (TypeVariableIdentifier)\n            (KindListType\n              (KindFunctionType\n                (Kind\n                  (Star))\n                (Kind\n                  (Star)))))\n          (AnnotatedTypeVariable\n            (TypeVariableIdentifier)\n            (Star)))\n        (Empty))\n      (Statements\n        (GADTConstructor\n          (Empty)\n          (TypeConstructorIdentifier)\n          (Statements\n            (Pragma)\n            (FunctionType\n              (Type\n                (StrictType\n                  (TypeConstructorIdentifier)\n                  (TypeParameters))\n                (TypeParameters)\n                (Empty))\n              (FunctionType\n                (Type\n                  (TypeVariableIdentifier)\n                  (TypeParameters\n                    (TypeVariableIdentifier))\n                  (Empty))\n                (Type\n                  (TypeConstructorIdentifier)\n                  (TypeParameters\n                    (TypeVariableIdentifier)\n                    (TypeVariableIdentifier))\n                  (Empty))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/import-declaration.A.hs",
    "content": "module A where\n\nimport Maybe\nimport Either()\nimport Data.Maybe (Maybe(..))\nimport Data.Aeson ((.:))\nimport Control.Comonad.Cofree ((:<))\nimport Data.Maybe (fromMaybe, fromJust)\nimport Data.Maybe (Maybe(..), fromMaybe, fromJust)\n\nimport qualified Data.Maybe\nimport qualified Either ()\nimport qualified Data.Function (fix)\n\nimport Data.Maybe as DM (Maybe(..))\n\nimport qualified Data.Maybe as DM\nimport qualified Either as E ()\nimport qualified Data.Aeson as JSON\nimport qualified Data.Aeson as D.A\n\nimport Data.Maybe as DM (Maybe(..), fromMaybe)\nimport qualified Data.Maybe as M (Maybe(..), fromMaybe)\n\nimport GHC.Prim (Proxy#, proxy#)\n\nimport \"hint\" HLint.Default\n\nimport Data.Maybe hiding (Maybe(..), fromMaybe)\n\nimport qualified Data.Maybe hiding ()\nimport qualified Data.Either hiding (Either(..), decodeEither)\nimport qualified Data.Function hiding (fix)\nimport qualified Data.List as DL hiding (head)\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/import-declaration.B.hs",
    "content": "module A where\n\nimport Data.Maybe\nimport Data.Either()\nimport Data.Util.Maybe (Maybe(..))\nimport Data.Util.Aeson ((.:))\nimport Control.Util.Comonad.Cofree ((:<))\nimport Data.Util.Maybe (fromMaybe, fromJust)\nimport Data.Util.Maybe (Maybe(..), fromJust, fromMaybe)\n\nimport qualified Data.Util.Maybe\nimport qualified Data.Either ()\nimport qualified Data.Util.Function (fix)\n\nimport Data.Util.Maybe as DM (Maybe(..))\n\nimport qualified Data.Util.Maybe as DM\nimport qualified Data.Either as E ()\nimport qualified Data.Util.Aeson as JSON\nimport qualified Data.Util.Aeson as D.A\n\nimport Data.Util.Maybe as DM (Maybe(..), fromMaybe)\nimport qualified Data.Util.Maybe as UM (Maybe(..), fromMaybe)\n\nimport GHC.Prim (Box#, box#)\n\nimport \"hlint\" HLint.Util.Default\n\nimport Data.Util.Maybe hiding (Maybe(..), fromMaybe)\n\nimport qualified Data.Util.Maybe hiding ()\nimport qualified Data.Util.Either hiding (Either(..), decodeEither)\nimport qualified Data.Util.Function hiding (fix)\nimport qualified Data.Util.List as DL hiding (head)\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/import-declaration.diffA-B.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Statements\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(AllConstructors)+})+})+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(VariableOperator\n        {+(VariableSymbol)+})+})+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(ConstructorOperator\n        {+(ConstructorSymbol)+})+})+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(VariableIdentifier)+})+}\n    {+(Import\n      {+(VariableIdentifier)+})+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(AllConstructors)+})+})+}\n    {+(Import\n      {+(VariableIdentifier)+})+}\n    {+(Import\n      {+(VariableIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(VariableIdentifier)+})+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(ImportAlias\n      {+(QualifiedModuleIdentifier\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+})+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(AllConstructors)+})+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(ImportAlias\n      {+(QualifiedModuleIdentifier\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+})+}\n      {+(ModuleIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(ImportAlias\n      {+(QualifiedModuleIdentifier\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+})+}\n      {+(ModuleIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(ImportAlias\n      {+(QualifiedModuleIdentifier\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+})+}\n      {+(ModuleIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(ImportAlias\n      {+(QualifiedModuleIdentifier\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+})+}\n      {+(QualifiedModuleIdentifier\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+})+})+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(ImportAlias\n      {+(QualifiedModuleIdentifier\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+})+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(AllConstructors)+})+})+}\n    {+(Import\n      {+(VariableIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(ImportAlias\n      {+(QualifiedModuleIdentifier\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+})+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(AllConstructors)+})+})+}\n    {+(Import\n      {+(VariableIdentifier)+})+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(PrimitiveConstructorIdentifier)+})+}\n    {+(Import\n      {+(PrimitiveVariableIdentifier)+})+})+}\n  {+(ImportDeclaration\n    {+(TextElement)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(HiddenImport\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(AllConstructors)+})+})+}\n    {+(HiddenImport\n      {+(VariableIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(HiddenImport\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(AllConstructors)+})+})+}\n    {+(HiddenImport\n      {+(VariableIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(HiddenImport\n      {+(VariableIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(ImportAlias\n      {+(QualifiedModuleIdentifier\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+})+}\n      {+(ModuleIdentifier)+})+}\n    {+(HiddenImport\n      {+(VariableIdentifier)+})+})+}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(ModuleIdentifier)-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(ModuleIdentifier)-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(AllConstructors)-})-})-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(VariableOperator\n        {-(VariableSymbol)-})-})-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(ConstructorOperator\n        {-(ConstructorSymbol)-})-})-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(VariableIdentifier)-})-}\n    {-(Import\n      {-(VariableIdentifier)-})-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(AllConstructors)-})-})-}\n    {-(Import\n      {-(VariableIdentifier)-})-}\n    {-(Import\n      {-(VariableIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(ModuleIdentifier)-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(VariableIdentifier)-})-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(ImportAlias\n      {-(QualifiedModuleIdentifier\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-})-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(AllConstructors)-})-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(ImportAlias\n      {-(QualifiedModuleIdentifier\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-})-}\n      {-(ModuleIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(ImportAlias\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(ImportAlias\n      {-(QualifiedModuleIdentifier\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-})-}\n      {-(ModuleIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(ImportAlias\n      {-(QualifiedModuleIdentifier\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-})-}\n      {-(QualifiedModuleIdentifier\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-})-})-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(ImportAlias\n      {-(QualifiedModuleIdentifier\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-})-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(AllConstructors)-})-})-}\n    {-(Import\n      {-(VariableIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(ImportAlias\n      {-(QualifiedModuleIdentifier\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-})-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(AllConstructors)-})-})-}\n    {-(Import\n      {-(VariableIdentifier)-})-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(PrimitiveConstructorIdentifier)-})-}\n    {-(Import\n      {-(PrimitiveVariableIdentifier)-})-})-}\n  {-(ImportDeclaration\n    {-(TextElement)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(HiddenImport\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(AllConstructors)-})-})-}\n    {-(HiddenImport\n      {-(VariableIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(HiddenImport\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(AllConstructors)-})-})-}\n    {-(HiddenImport\n      {-(VariableIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(HiddenImport\n      {-(VariableIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(ImportAlias\n      {-(QualifiedModuleIdentifier\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-})-}\n      {-(ModuleIdentifier)-})-}\n    {-(HiddenImport\n      {-(VariableIdentifier)-})-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/import-declaration.diffB-A.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Statements\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(ModuleIdentifier)+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(ModuleIdentifier)+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(AllConstructors)+})+})+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(VariableOperator\n        {+(VariableSymbol)+})+})+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(ConstructorOperator\n        {+(ConstructorSymbol)+})+})+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(VariableIdentifier)+})+}\n    {+(Import\n      {+(VariableIdentifier)+})+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(AllConstructors)+})+})+}\n    {+(Import\n      {+(VariableIdentifier)+})+}\n    {+(Import\n      {+(VariableIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(ModuleIdentifier)+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(VariableIdentifier)+})+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(ImportAlias\n      {+(QualifiedModuleIdentifier\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+})+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(AllConstructors)+})+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(ImportAlias\n      {+(QualifiedModuleIdentifier\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+})+}\n      {+(ModuleIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(ImportAlias\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(ImportAlias\n      {+(QualifiedModuleIdentifier\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+})+}\n      {+(ModuleIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(ImportAlias\n      {+(QualifiedModuleIdentifier\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+})+}\n      {+(QualifiedModuleIdentifier\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+})+})+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(ImportAlias\n      {+(QualifiedModuleIdentifier\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+})+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(AllConstructors)+})+})+}\n    {+(Import\n      {+(VariableIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(ImportAlias\n      {+(QualifiedModuleIdentifier\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+})+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(AllConstructors)+})+})+}\n    {+(Import\n      {+(VariableIdentifier)+})+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(Import\n      {+(PrimitiveConstructorIdentifier)+})+}\n    {+(Import\n      {+(PrimitiveVariableIdentifier)+})+})+}\n  {+(ImportDeclaration\n    {+(TextElement)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+})+}\n  {+(ImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(HiddenImport\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(AllConstructors)+})+})+}\n    {+(HiddenImport\n      {+(VariableIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(HiddenImport\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(AllConstructors)+})+})+}\n    {+(HiddenImport\n      {+(VariableIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(QualifiedModuleIdentifier\n      {+(ModuleIdentifier)+}\n      {+(ModuleIdentifier)+})+}\n    {+(HiddenImport\n      {+(VariableIdentifier)+})+})+}\n  {+(QualifiedImportDeclaration\n    {+(Empty)+}\n    {+(ImportAlias\n      {+(QualifiedModuleIdentifier\n        {+(ModuleIdentifier)+}\n        {+(ModuleIdentifier)+})+}\n      {+(ModuleIdentifier)+})+}\n    {+(HiddenImport\n      {+(VariableIdentifier)+})+})+}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(AllConstructors)-})-})-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(VariableOperator\n        {-(VariableSymbol)-})-})-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(ConstructorOperator\n        {-(ConstructorSymbol)-})-})-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(VariableIdentifier)-})-}\n    {-(Import\n      {-(VariableIdentifier)-})-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(AllConstructors)-})-})-}\n    {-(Import\n      {-(VariableIdentifier)-})-}\n    {-(Import\n      {-(VariableIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(VariableIdentifier)-})-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(ImportAlias\n      {-(QualifiedModuleIdentifier\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-})-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(AllConstructors)-})-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(ImportAlias\n      {-(QualifiedModuleIdentifier\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-})-}\n      {-(ModuleIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(ImportAlias\n      {-(QualifiedModuleIdentifier\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-})-}\n      {-(ModuleIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(ImportAlias\n      {-(QualifiedModuleIdentifier\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-})-}\n      {-(ModuleIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(ImportAlias\n      {-(QualifiedModuleIdentifier\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-})-}\n      {-(QualifiedModuleIdentifier\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-})-})-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(ImportAlias\n      {-(QualifiedModuleIdentifier\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-})-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(AllConstructors)-})-})-}\n    {-(Import\n      {-(VariableIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(ImportAlias\n      {-(QualifiedModuleIdentifier\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-})-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(AllConstructors)-})-})-}\n    {-(Import\n      {-(VariableIdentifier)-})-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(Import\n      {-(PrimitiveConstructorIdentifier)-})-}\n    {-(Import\n      {-(PrimitiveVariableIdentifier)-})-})-}\n  {-(ImportDeclaration\n    {-(TextElement)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-})-}\n  {-(ImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(HiddenImport\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(AllConstructors)-})-})-}\n    {-(HiddenImport\n      {-(VariableIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(HiddenImport\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(AllConstructors)-})-})-}\n    {-(HiddenImport\n      {-(VariableIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(QualifiedModuleIdentifier\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-}\n      {-(ModuleIdentifier)-})-}\n    {-(HiddenImport\n      {-(VariableIdentifier)-})-})-}\n  {-(QualifiedImportDeclaration\n    {-(Empty)-}\n    {-(ImportAlias\n      {-(QualifiedModuleIdentifier\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-}\n        {-(ModuleIdentifier)-})-}\n      {-(ModuleIdentifier)-})-}\n    {-(HiddenImport\n      {-(VariableIdentifier)-})-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/import-declaration.parseA.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Statements\n    (ImportDeclaration\n      (Empty)\n      (ModuleIdentifier))\n    (ImportDeclaration\n      (Empty)\n      (ModuleIdentifier))\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (Import\n        (Statements\n          (TypeConstructorIdentifier)\n          (AllConstructors))))\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (Import\n        (VariableOperator\n          (VariableSymbol))))\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (Import\n        (ConstructorOperator\n          (ConstructorSymbol))))\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (Import\n        (VariableIdentifier))\n      (Import\n        (VariableIdentifier)))\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (Import\n        (Statements\n          (TypeConstructorIdentifier)\n          (AllConstructors)))\n      (Import\n        (VariableIdentifier))\n      (Import\n        (VariableIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (ModuleIdentifier))\n    (QualifiedImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (Import\n        (VariableIdentifier)))\n    (ImportDeclaration\n      (Empty)\n      (ImportAlias\n        (QualifiedModuleIdentifier\n          (ModuleIdentifier)\n          (ModuleIdentifier))\n        (ModuleIdentifier))\n      (Import\n        (Statements\n          (TypeConstructorIdentifier)\n          (AllConstructors))))\n    (QualifiedImportDeclaration\n      (Empty)\n      (ImportAlias\n        (QualifiedModuleIdentifier\n          (ModuleIdentifier)\n          (ModuleIdentifier))\n        (ModuleIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (ImportAlias\n        (ModuleIdentifier)\n        (ModuleIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (ImportAlias\n        (QualifiedModuleIdentifier\n          (ModuleIdentifier)\n          (ModuleIdentifier))\n        (ModuleIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (ImportAlias\n        (QualifiedModuleIdentifier\n          (ModuleIdentifier)\n          (ModuleIdentifier))\n        (QualifiedModuleIdentifier\n          (ModuleIdentifier)\n          (ModuleIdentifier))))\n    (ImportDeclaration\n      (Empty)\n      (ImportAlias\n        (QualifiedModuleIdentifier\n          (ModuleIdentifier)\n          (ModuleIdentifier))\n        (ModuleIdentifier))\n      (Import\n        (Statements\n          (TypeConstructorIdentifier)\n          (AllConstructors)))\n      (Import\n        (VariableIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (ImportAlias\n        (QualifiedModuleIdentifier\n          (ModuleIdentifier)\n          (ModuleIdentifier))\n        (ModuleIdentifier))\n      (Import\n        (Statements\n          (TypeConstructorIdentifier)\n          (AllConstructors)))\n      (Import\n        (VariableIdentifier)))\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (Import\n        (PrimitiveConstructorIdentifier))\n      (Import\n        (PrimitiveVariableIdentifier)))\n    (ImportDeclaration\n      (TextElement)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)))\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (HiddenImport\n        (Statements\n          (TypeConstructorIdentifier)\n          (AllConstructors)))\n      (HiddenImport\n        (VariableIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (HiddenImport\n        (Statements\n          (TypeConstructorIdentifier)\n          (AllConstructors)))\n      (HiddenImport\n        (VariableIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (HiddenImport\n        (VariableIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (ImportAlias\n        (QualifiedModuleIdentifier\n          (ModuleIdentifier)\n          (ModuleIdentifier))\n        (ModuleIdentifier))\n      (HiddenImport\n        (VariableIdentifier)))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/import-declaration.parseB.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Statements\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)))\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)))\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (Import\n        (Statements\n          (TypeConstructorIdentifier)\n          (AllConstructors))))\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (Import\n        (VariableOperator\n          (VariableSymbol))))\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (Import\n        (ConstructorOperator\n          (ConstructorSymbol))))\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (Import\n        (VariableIdentifier))\n      (Import\n        (VariableIdentifier)))\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (Import\n        (Statements\n          (TypeConstructorIdentifier)\n          (AllConstructors)))\n      (Import\n        (VariableIdentifier))\n      (Import\n        (VariableIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)\n        (ModuleIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (Import\n        (VariableIdentifier)))\n    (ImportDeclaration\n      (Empty)\n      (ImportAlias\n        (QualifiedModuleIdentifier\n          (ModuleIdentifier)\n          (ModuleIdentifier)\n          (ModuleIdentifier))\n        (ModuleIdentifier))\n      (Import\n        (Statements\n          (TypeConstructorIdentifier)\n          (AllConstructors))))\n    (QualifiedImportDeclaration\n      (Empty)\n      (ImportAlias\n        (QualifiedModuleIdentifier\n          (ModuleIdentifier)\n          (ModuleIdentifier)\n          (ModuleIdentifier))\n        (ModuleIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (ImportAlias\n        (QualifiedModuleIdentifier\n          (ModuleIdentifier)\n          (ModuleIdentifier))\n        (ModuleIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (ImportAlias\n        (QualifiedModuleIdentifier\n          (ModuleIdentifier)\n          (ModuleIdentifier)\n          (ModuleIdentifier))\n        (ModuleIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (ImportAlias\n        (QualifiedModuleIdentifier\n          (ModuleIdentifier)\n          (ModuleIdentifier)\n          (ModuleIdentifier))\n        (QualifiedModuleIdentifier\n          (ModuleIdentifier)\n          (ModuleIdentifier))))\n    (ImportDeclaration\n      (Empty)\n      (ImportAlias\n        (QualifiedModuleIdentifier\n          (ModuleIdentifier)\n          (ModuleIdentifier)\n          (ModuleIdentifier))\n        (ModuleIdentifier))\n      (Import\n        (Statements\n          (TypeConstructorIdentifier)\n          (AllConstructors)))\n      (Import\n        (VariableIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (ImportAlias\n        (QualifiedModuleIdentifier\n          (ModuleIdentifier)\n          (ModuleIdentifier)\n          (ModuleIdentifier))\n        (ModuleIdentifier))\n      (Import\n        (Statements\n          (TypeConstructorIdentifier)\n          (AllConstructors)))\n      (Import\n        (VariableIdentifier)))\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (Import\n        (PrimitiveConstructorIdentifier))\n      (Import\n        (PrimitiveVariableIdentifier)))\n    (ImportDeclaration\n      (TextElement)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)\n        (ModuleIdentifier)))\n    (ImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (HiddenImport\n        (Statements\n          (TypeConstructorIdentifier)\n          (AllConstructors)))\n      (HiddenImport\n        (VariableIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)\n        (ModuleIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (HiddenImport\n        (Statements\n          (TypeConstructorIdentifier)\n          (AllConstructors)))\n      (HiddenImport\n        (VariableIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (QualifiedModuleIdentifier\n        (ModuleIdentifier)\n        (ModuleIdentifier)\n        (ModuleIdentifier))\n      (HiddenImport\n        (VariableIdentifier)))\n    (QualifiedImportDeclaration\n      (Empty)\n      (ImportAlias\n        (QualifiedModuleIdentifier\n          (ModuleIdentifier)\n          (ModuleIdentifier)\n          (ModuleIdentifier))\n        (ModuleIdentifier))\n      (HiddenImport\n        (VariableIdentifier)))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/layout.A.hs",
    "content": "f = let y = x\n        x = let g = 1\n                in g\n        in y\n\nf = a\n  where a = b\n        b = 1\n\nf = a\n  where a = b\n        b = 1\n\nf = foo\n  where a = b\n          where c = d\n                e = f\n        x = w\n\ng = do c\n       a\n       do b\n          e\n          do g\n             g\n          h\n       i\n\na = do\n  b\n    where\n    c = d\n\na = do\n  b\n  where\n    c = d\n\na = do\n  b\n  where\n  c = d\n  \nclass Foo bar where\n  fooVariables :: bar -> [Baz]\n{-\n-}\nclass Foo1 bar where\n  liftFoo = foldMap\n\nfreeFoo bar = case freeFoo bar of\n  [n] -> Right n\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/layout.B.hs",
    "content": "f = let x = y\n        y = let h = 1\n                in h\n        in x\n\nf = b\n  where b = a\n        a = 1\n\nf = c\n  where c = b\n        b = 1\n\nf = bar\n  where c = a\n          where a = e\n                e = f\n        w = x\n\ng = do a\n       b\n       do c\n          d\n          do e\n             f\n          g\n       h\n\nb = do\n  a\n    where\n    d = c\n\nb = do\n  c\n  where\n    c = e\n\nb = do\n  a\n  where\n  a = f\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/layout.diffA-B.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Let\n        {-(Function\n          {-(VariableIdentifier)-}\n          {-(Statements\n            {-(VariableIdentifier)-})-})-}\n          (Function\n            (VariableIdentifier)\n            (Statements\n            {+(VariableIdentifier)+}\n            {-(Let\n              {-(Function\n                {-(VariableIdentifier)-}\n                {-(Statements\n                  {-(Integer)-})-})-}\n              {-(VariableIdentifier)-})-}))\n        {+(Function\n          {+(VariableIdentifier)+}\n          {+(Statements\n            {+(Let\n              {+(Function\n                {+(VariableIdentifier)+}\n                {+(Statements\n                  {+(Integer)+})+})+}\n              {+(VariableIdentifier)+})+})+})+}\n        { (VariableIdentifier)\n        ->(VariableIdentifier) })))\n    (Function\n      (VariableIdentifier)\n      (Statements\n      { (VariableIdentifier)\n      ->(VariableIdentifier) }\n        (Statements\n        {-(Function\n          {-(VariableIdentifier)-}\n          {-(Statements\n            {-(VariableIdentifier)-})-})-}\n          (Function\n            (VariableIdentifier)\n            (Statements\n            {+(VariableIdentifier)+}\n            {-(Integer)-}))\n        {+(Function\n          {+(VariableIdentifier)+}\n          {+(Statements\n            {+(Integer)+})+})+})))\n    (Function\n      (VariableIdentifier)\n      (Statements\n      { (VariableIdentifier)\n      ->(VariableIdentifier) }\n        (Statements\n          (Function\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n            (Statements\n              (VariableIdentifier)))\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (Integer))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n      { (VariableIdentifier)\n      ->(VariableIdentifier) }\n        (Statements\n          (Function\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n            (Statements\n            { (VariableIdentifier)\n            ->(VariableIdentifier) }\n              (Statements\n                (Function\n                { (VariableIdentifier)\n                ->(VariableIdentifier) }\n                  (Statements\n                  { (VariableIdentifier)\n                  ->(VariableIdentifier) }))\n                (Function\n                  (VariableIdentifier)\n                  (Statements\n                    (VariableIdentifier))))))\n          (Function\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n            (Statements\n            { (VariableIdentifier)\n            ->(VariableIdentifier) })))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Do\n        {-(VariableIdentifier)-}\n          (VariableIdentifier)\n        {+(VariableIdentifier)+}\n          (Do\n          {+(VariableIdentifier)+}\n          {+(VariableIdentifier)+}\n          {+(Do\n            {+(VariableIdentifier)+}\n            {+(VariableIdentifier)+})+}\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n          {-(VariableIdentifier)-}\n          {-(Do\n            {-(VariableIdentifier)-}\n            {-(VariableIdentifier)-})-}\n          {-(VariableIdentifier)-})\n        { (VariableIdentifier)\n        ->(VariableIdentifier) })))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (Do\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n          (Statements\n            (Function\n            { (VariableIdentifier)\n            ->(VariableIdentifier) }\n              (Statements\n              { (VariableIdentifier)\n              ->(VariableIdentifier) }))))))\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Do\n        {+(VariableIdentifier)+}\n        {+(Statements\n          {+(Function\n            {+(VariableIdentifier)+}\n            {+(Statements\n              {+(VariableIdentifier)+})+})+})+})+})+})+}\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (Do\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n          (Statements\n            (Function\n            { (VariableIdentifier)\n            ->(VariableIdentifier) }\n              (Statements\n              { (VariableIdentifier)\n              ->(VariableIdentifier) }))))))\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Do\n        {-(VariableIdentifier)-}\n        {-(Statements\n          {-(Function\n            {-(VariableIdentifier)-}\n            {-(Statements\n              {-(VariableIdentifier)-})-})-})-})-})-})-}\n  {-(TypeClass\n    {-(Empty)-}\n    {-(TypeClassIdentifier)-}\n    {-(TypeVariableIdentifier)-}\n    {-(Statements\n      {-(Context\n        {-(Comment)-}\n        {-(TypeSignature\n          {-(VariableIdentifier)-}\n          {-(FunctionType\n            {-(Type\n              {-(TypeVariableIdentifier)-}\n              {-(TypeParameters)-}\n              {-(Empty)-})-}\n            {-(Type\n              {-(Array\n                {-(Type\n                  {-(TypeConstructorIdentifier)-}\n                  {-(TypeParameters)-}\n                  {-(Empty)-})-})-}\n              {-(TypeParameters)-}\n              {-(Empty)-})-})-})-})-})-})-}\n  {-(TypeClass\n    {-(Empty)-}\n    {-(TypeClassIdentifier)-}\n    {-(TypeVariableIdentifier)-}\n    {-(Statements\n      {-(Function\n        {-(VariableIdentifier)-}\n        {-(Statements\n          {-(VariableIdentifier)-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Match\n        {-(App\n          {-(VariableIdentifier)-}\n          {-(Empty)-}\n          {-(VariableIdentifier)-})-}\n        {-(Pattern\n          {-(ListPattern\n            {-(VariableIdentifier)-})-}\n          {-(App\n            {-(ConstructorIdentifier)-}\n            {-(Empty)-}\n            {-(VariableIdentifier)-})-})-})-})-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/layout.diffB-A.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Let\n        {-(Function\n          {-(VariableIdentifier)-}\n          {-(Statements\n            {-(VariableIdentifier)-})-})-}\n          (Function\n            (VariableIdentifier)\n            (Statements\n            {+(VariableIdentifier)+}\n            {-(Let\n              {-(Function\n                {-(VariableIdentifier)-}\n                {-(Statements\n                  {-(Integer)-})-})-}\n              {-(VariableIdentifier)-})-}))\n        {+(Function\n          {+(VariableIdentifier)+}\n          {+(Statements\n            {+(Let\n              {+(Function\n                {+(VariableIdentifier)+}\n                {+(Statements\n                  {+(Integer)+})+})+}\n              {+(VariableIdentifier)+})+})+})+}\n        { (VariableIdentifier)\n        ->(VariableIdentifier) })))\n    (Function\n      (VariableIdentifier)\n      (Statements\n      { (VariableIdentifier)\n      ->(VariableIdentifier) }\n        (Statements\n        {-(Function\n          {-(VariableIdentifier)-}\n          {-(Statements\n            {-(VariableIdentifier)-})-})-}\n          (Function\n            (VariableIdentifier)\n            (Statements\n            {+(VariableIdentifier)+}\n            {-(Integer)-}))\n        {+(Function\n          {+(VariableIdentifier)+}\n          {+(Statements\n            {+(Integer)+})+})+})))\n    (Function\n      (VariableIdentifier)\n      (Statements\n      { (VariableIdentifier)\n      ->(VariableIdentifier) }\n        (Statements\n          (Function\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n            (Statements\n              (VariableIdentifier)))\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (Integer))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n      { (VariableIdentifier)\n      ->(VariableIdentifier) }\n        (Statements\n          (Function\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n            (Statements\n            { (VariableIdentifier)\n            ->(VariableIdentifier) }\n              (Statements\n                (Function\n                { (VariableIdentifier)\n                ->(VariableIdentifier) }\n                  (Statements\n                  { (VariableIdentifier)\n                  ->(VariableIdentifier) }))\n                (Function\n                  (VariableIdentifier)\n                  (Statements\n                    (VariableIdentifier))))))\n          (Function\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n            (Statements\n            { (VariableIdentifier)\n            ->(VariableIdentifier) })))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Do\n        {+(VariableIdentifier)+}\n          (VariableIdentifier)\n        {+(Do\n          {+(VariableIdentifier)+}\n          {+(VariableIdentifier)+}\n          {+(Do\n            {+(VariableIdentifier)+}\n            {+(VariableIdentifier)+})+}\n          {+(VariableIdentifier)+})+}\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n        {-(Do\n          {-(VariableIdentifier)-}\n          {-(VariableIdentifier)-}\n          {-(Do\n            {-(VariableIdentifier)-}\n            {-(VariableIdentifier)-})-}\n          {-(VariableIdentifier)-})-}\n        {-(VariableIdentifier)-})))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (Do\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n          (Statements\n            (Function\n            { (VariableIdentifier)\n            ->(VariableIdentifier) }\n              (Statements\n              { (VariableIdentifier)\n              ->(VariableIdentifier) }))))))\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Do\n        {+(VariableIdentifier)+}\n        {+(Statements\n          {+(Function\n            {+(VariableIdentifier)+}\n            {+(Statements\n              {+(VariableIdentifier)+})+})+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Do\n        {+(VariableIdentifier)+}\n        {+(Statements\n          {+(Function\n            {+(VariableIdentifier)+}\n            {+(Statements\n              {+(VariableIdentifier)+})+})+})+})+})+})+}\n  {+(TypeClass\n    {+(Empty)+}\n    {+(TypeClassIdentifier)+}\n    {+(TypeVariableIdentifier)+}\n    {+(Statements\n      {+(Context\n        {+(Comment)+}\n        {+(TypeSignature\n          {+(VariableIdentifier)+}\n          {+(FunctionType\n            {+(Type\n              {+(TypeVariableIdentifier)+}\n              {+(TypeParameters)+}\n              {+(Empty)+})+}\n            {+(Type\n              {+(Array\n                {+(Type\n                  {+(TypeConstructorIdentifier)+}\n                  {+(TypeParameters)+}\n                  {+(Empty)+})+})+}\n              {+(TypeParameters)+}\n              {+(Empty)+})+})+})+})+})+})+}\n  {+(TypeClass\n    {+(Empty)+}\n    {+(TypeClassIdentifier)+}\n    {+(TypeVariableIdentifier)+}\n    {+(Statements\n      {+(Function\n        {+(VariableIdentifier)+}\n        {+(Statements\n          {+(VariableIdentifier)+})+})+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Match\n        {+(App\n          {+(VariableIdentifier)+}\n          {+(Empty)+}\n          {+(VariableIdentifier)+})+}\n        {+(Pattern\n          {+(ListPattern\n            {+(VariableIdentifier)+})+}\n          {+(App\n            {+(ConstructorIdentifier)+}\n            {+(Empty)+}\n            {+(VariableIdentifier)+})+})+})+})+})+}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Do\n        {-(VariableIdentifier)-}\n        {-(Statements\n          {-(Function\n            {-(VariableIdentifier)-}\n            {-(Statements\n              {-(VariableIdentifier)-})-})-})-})-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Do\n        {-(VariableIdentifier)-}\n        {-(Statements\n          {-(Function\n            {-(VariableIdentifier)-}\n            {-(Statements\n              {-(VariableIdentifier)-})-})-})-})-})-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/layout.parseA.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Let\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (VariableIdentifier)))\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (Let\n                (Function\n                  (VariableIdentifier)\n                  (Statements\n                    (Integer)))\n                (VariableIdentifier))))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (Statements\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (VariableIdentifier)))\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (Integer))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (Statements\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (VariableIdentifier)))\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (Integer))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (Statements\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (VariableIdentifier)\n              (Statements\n                (Function\n                  (VariableIdentifier)\n                  (Statements\n                    (VariableIdentifier)))\n                (Function\n                  (VariableIdentifier)\n                  (Statements\n                    (VariableIdentifier))))))\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (VariableIdentifier))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Do\n          (VariableIdentifier)\n          (VariableIdentifier)\n          (Do\n            (VariableIdentifier)\n            (VariableIdentifier)\n            (Do\n              (VariableIdentifier)\n              (VariableIdentifier))\n            (VariableIdentifier))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Do\n          (VariableIdentifier)\n          (Statements\n            (Function\n              (VariableIdentifier)\n              (Statements\n                (VariableIdentifier)))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Do\n          (VariableIdentifier)\n          (Statements\n            (Function\n              (VariableIdentifier)\n              (Statements\n                (VariableIdentifier)))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Do\n          (VariableIdentifier)\n          (Statements\n            (Function\n              (VariableIdentifier)\n              (Statements\n                (VariableIdentifier)))))))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (Context\n          (Comment)\n          (TypeSignature\n            (VariableIdentifier)\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (Array\n                  (Type\n                    (TypeConstructorIdentifier)\n                    (TypeParameters)\n                    (Empty)))\n                (TypeParameters)\n                (Empty)))))))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (Statements\n            (VariableIdentifier)))))\n    (Function\n      (VariableIdentifier)\n      (VariableIdentifier)\n      (Statements\n        (Match\n          (App\n            (VariableIdentifier)\n            (Empty)\n            (VariableIdentifier))\n          (Pattern\n            (ListPattern\n              (VariableIdentifier))\n            (App\n              (ConstructorIdentifier)\n              (Empty)\n              (VariableIdentifier))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/layout.parseB.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Let\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (VariableIdentifier)))\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (Let\n                (Function\n                  (VariableIdentifier)\n                  (Statements\n                    (Integer)))\n                (VariableIdentifier))))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (Statements\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (VariableIdentifier)))\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (Integer))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (Statements\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (VariableIdentifier)))\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (Integer))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (Statements\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (VariableIdentifier)\n              (Statements\n                (Function\n                  (VariableIdentifier)\n                  (Statements\n                    (VariableIdentifier)))\n                (Function\n                  (VariableIdentifier)\n                  (Statements\n                    (VariableIdentifier))))))\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (VariableIdentifier))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Do\n          (VariableIdentifier)\n          (VariableIdentifier)\n          (Do\n            (VariableIdentifier)\n            (VariableIdentifier)\n            (Do\n              (VariableIdentifier)\n              (VariableIdentifier))\n            (VariableIdentifier))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Do\n          (VariableIdentifier)\n          (Statements\n            (Function\n              (VariableIdentifier)\n              (Statements\n                (VariableIdentifier)))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Do\n          (VariableIdentifier)\n          (Statements\n            (Function\n              (VariableIdentifier)\n              (Statements\n                (VariableIdentifier)))))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Do\n          (VariableIdentifier)\n          (Statements\n            (Function\n              (VariableIdentifier)\n              (Statements\n                (VariableIdentifier)))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/literals.A.hs",
    "content": "module A where\na = 0\na = 1\n\na = 0o00\na = 0O77\n\na = 0x00\na = 0XFF\n\na = 0.00\na = 0.99\n\na = 0.00e01\na = 0.99E01\na = 0.00e+01\na = 0.99E-01\na = 0.00e-01\na = 0.99E+01\n\na = 00e01\na = 99E01\na = 00e+01\na = 99E-01\na = 00e-01\na = 99E+01\n\na = undefined\n_a0 = undefined\n_A0 = undefined\na0 = undefined\na9 = undefined\naA = undefined\naZ' = undefined\n\na = True\na = False\n\na = 'a'\na = 'b'\n\na = '0'\na = '1'\n\na = '_'\n\na = 'A'\na = 'B'\n\na = ','\n\na = '!'\na = '#'\na = '$'\na = '%'\na = '&'\na = '⋆'\na = '+'\na = '.'\na = '/'\na = '<'\na = '='\na = '>'\na = '?'\na = '^'\na = '|'\na = '-'\na = '~'\na = ':'\na = '\"'\n\na = [ \"\\NUL\"\n    , \"\\SOH\"\n    , \"\\STX\"\n    , \"\\ETX\"\n    , \"\\EOT\"\n    , \"\\ENQ\"\n    , \"\\ACK\"\n    , \"\\BEL\"\n    , \"\\BS\"\n    , \"\\HT\"\n    , \"\\LF\"\n    , \"\\VT\"\n    , \"\\FF\"\n    , \"\\CR\"\n    , \"\\SO\"\n    , \"\\SI\"\n    , \"\\DLE\"\n    , \"\\DC1\"\n    , \"\\DC2\"\n    , \"\\DC3\"\n    , \"\\DC4\"\n    , \"\\NAK\"\n    , \"\\SYN\"\n    , \"\\ETB\"\n    , \"\\CAN\"\n    , \"\\EM\"\n    , \"\\SUB\"\n    , \"\\ESC\"\n    , \"\\FS\"\n    , \"\\GS\"\n    , \"\\RS\"\n    , \"\\US\"\n    , \"\\SP\"\n    , \"\\DEL\"\n    ]\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/literals.B.hs",
    "content": "module A where\nb = 0\nb = 1\n\nb = 0o00\nb = 0O77\n\nb = 0x00\nb = 0XFF\n\nb = 0.00\nb = 0.99\n\nb = 0.00e01\nb = 0.99E01\nb = 0.00e+01\nb = 0.99E-01\nb = 0.00e-01\nb = 0.99E+01\n\nb = 00e01\nb = 99E01\nb = 00e+01\nb = 99E-01\nb = 00e-01\nb = 99E+01\n\nb = undefined\nba0 = undefined\nbA0 = undefined\nb0 = undefined\nb9 = undefined\nbA = undefined\nbZ' = undefined\n\nb = True\nb = False\n\nb = 'a'\nb = 'b'\n\nb = '0'\nb = '1'\n\nb = '_'\n\nb = 'A'\nb = 'B'\n\nb = ','\n\nb = '!'\nb = '#'\nb = '$'\nb = '%'\nb = '&'\nb = '⋆'\nb = '+'\nb = '.'\nb = '/'\nb = '<'\nb = '='\nb = '>'\nb = '?'\nb = '^'\nb = '|'\nb = '-'\nb = '~'\nb = ':'\nb = '\"'\n\nb = [ \"\\NUL\"\n    , \"\\SOH\"\n    , \"\\STX\"\n    , \"\\ETX\"\n    , \"\\EOT\"\n    , \"\\ENQ\"\n    , \"\\ACK\"\n    , \"\\BEL\"\n    , \"\\BS\"\n    , \"\\HT\"\n    , \"\\LF\"\n    , \"\\VT\"\n    , \"\\FF\"\n    , \"\\CR\"\n    , \"\\SO\"\n    , \"\\SI\"\n    , \"\\DLE\"\n    , \"\\DC1\"\n    , \"\\DC2\"\n    , \"\\DC3\"\n    , \"\\DC4\"\n    , \"\\NAK\"\n    , \"\\SYN\"\n    , \"\\ETB\"\n    , \"\\CAN\"\n    , \"\\EM\"\n    , \"\\SUB\"\n    , \"\\ESC\"\n    , \"\\FS\"\n    , \"\\GS\"\n    , \"\\RS\"\n    , \"\\US\"\n    , \"\\SP\"\n    , \"\\DEL\"\n    ]\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/literals.diffA-B.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Statements\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(ConstructorIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(ConstructorIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Array\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+})+})+})+}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(ConstructorIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(ConstructorIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Array\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-})-})-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/literals.diffB-A.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Statements\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Integer)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Float)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(VariableIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(ConstructorIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(ConstructorIdentifier)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Character)+})+})+}\n  {+(Function\n    {+(VariableIdentifier)+}\n    {+(Statements\n      {+(Array\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+}\n        {+(TextElement)+})+})+})+}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Integer)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Float)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(VariableIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(ConstructorIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(ConstructorIdentifier)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Character)-})-})-}\n  {-(Function\n    {-(VariableIdentifier)-}\n    {-(Statements\n      {-(Array\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-}\n        {-(TextElement)-})-})-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/literals.parseA.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Statements\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ConstructorIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ConstructorIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Array\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/literals.parseB.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Statements\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Integer)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Float)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ConstructorIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (ConstructorIdentifier)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Character)))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Array\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement)\n          (TextElement))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration1.A.hs",
    "content": "module A where\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration1.B.hs",
    "content": "module B where\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration1.diffA-B.txt",
    "content": "(Module\n{ (ModuleIdentifier)\n->(ModuleIdentifier) }\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration1.diffB-A.txt",
    "content": "(Module\n{ (ModuleIdentifier)\n->(ModuleIdentifier) }\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration1.parseA.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration1.parseB.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration2.A.hs",
    "content": "module A () where\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration2.B.hs",
    "content": "module B () where\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration2.diffA-B.txt",
    "content": "(Module\n{ (ModuleIdentifier)\n->(ModuleIdentifier) }\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration2.diffB-A.txt",
    "content": "(Module\n{ (ModuleIdentifier)\n->(ModuleIdentifier) }\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration2.parseA.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration2.parseB.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration3.A.hs",
    "content": "module A.B' where\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration3.B.hs",
    "content": "module B.A' where\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration3.diffA-B.txt",
    "content": "(Module\n  (QualifiedModuleIdentifier\n  { (ModuleIdentifier)\n  ->(ModuleIdentifier) }\n  { (ModuleIdentifier)\n  ->(ModuleIdentifier) })\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration3.diffB-A.txt",
    "content": "(Module\n  (QualifiedModuleIdentifier\n  { (ModuleIdentifier)\n  ->(ModuleIdentifier) }\n  { (ModuleIdentifier)\n  ->(ModuleIdentifier) })\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration3.parseA.txt",
    "content": "(Module\n  (QualifiedModuleIdentifier\n    (ModuleIdentifier)\n    (ModuleIdentifier))\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration3.parseB.txt",
    "content": "(Module\n  (QualifiedModuleIdentifier\n    (ModuleIdentifier)\n    (ModuleIdentifier))\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration4.A.hs",
    "content": "module A (type(+), (+)) where\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration4.B.hs",
    "content": "module A (type(-), (-)) where\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration4.diffA-B.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Export\n    (TypeConstructorExport\n      (VariableOperator\n      { (VariableSymbol)\n      ->(VariableSymbol) })))\n  (Export\n    (VariableOperator\n    { (VariableSymbol)\n    ->(VariableSymbol) }))\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration4.diffB-A.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Export\n    (TypeConstructorExport\n      (VariableOperator\n      { (VariableSymbol)\n      ->(VariableSymbol) })))\n  (Export\n    (VariableOperator\n    { (VariableSymbol)\n    ->(VariableSymbol) }))\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration4.parseA.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Export\n    (TypeConstructorExport\n      (VariableOperator\n        (VariableSymbol))))\n  (Export\n    (VariableOperator\n      (VariableSymbol)))\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration4.parseB.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Export\n    (TypeConstructorExport\n      (VariableOperator\n        (VariableSymbol))))\n  (Export\n    (VariableOperator\n      (VariableSymbol)))\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration5.A.hs",
    "content": "module A (Maybe(..), type(:<), type(+), maybe', module A, type Foo,) where\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration5.B.hs",
    "content": "module B (Maybe(..), type(:+), type(-), maybe', module B, type Bar,) where\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration5.diffA-B.txt",
    "content": "(Module\n{ (ModuleIdentifier)\n->(ModuleIdentifier) }\n  (Export\n    (Statements\n      (TypeConstructorIdentifier)\n      (AllConstructors)))\n  (Export\n    (TypeConstructorExport\n      (ConstructorOperator\n      { (ConstructorSymbol)\n      ->(ConstructorSymbol) })))\n  (Export\n    (TypeConstructorExport\n      (VariableOperator\n      { (VariableSymbol)\n      ->(VariableSymbol) })))\n  (Export\n    (VariableIdentifier))\n  (Export\n    (ModuleExport\n    { (ModuleIdentifier)\n    ->(ModuleIdentifier) }))\n  (Export\n    (TypeConstructorExport\n    { (ConstructorIdentifier)\n    ->(ConstructorIdentifier) }))\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration5.diffB-A.txt",
    "content": "(Module\n{ (ModuleIdentifier)\n->(ModuleIdentifier) }\n  (Export\n    (Statements\n      (TypeConstructorIdentifier)\n      (AllConstructors)))\n  (Export\n    (TypeConstructorExport\n      (ConstructorOperator\n      { (ConstructorSymbol)\n      ->(ConstructorSymbol) })))\n  (Export\n    (TypeConstructorExport\n      (VariableOperator\n      { (VariableSymbol)\n      ->(VariableSymbol) })))\n  (Export\n    (VariableIdentifier))\n  (Export\n    (ModuleExport\n    { (ModuleIdentifier)\n    ->(ModuleIdentifier) }))\n  (Export\n    (TypeConstructorExport\n    { (ConstructorIdentifier)\n    ->(ConstructorIdentifier) }))\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration5.parseA.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Export\n    (Statements\n      (TypeConstructorIdentifier)\n      (AllConstructors)))\n  (Export\n    (TypeConstructorExport\n      (ConstructorOperator\n        (ConstructorSymbol))))\n  (Export\n    (TypeConstructorExport\n      (VariableOperator\n        (VariableSymbol))))\n  (Export\n    (VariableIdentifier))\n  (Export\n    (ModuleExport\n      (ModuleIdentifier)))\n  (Export\n    (TypeConstructorExport\n      (ConstructorIdentifier)))\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/module-declaration5.parseB.txt",
    "content": "(Module\n  (ModuleIdentifier)\n  (Export\n    (Statements\n      (TypeConstructorIdentifier)\n      (AllConstructors)))\n  (Export\n    (TypeConstructorExport\n      (ConstructorOperator\n        (ConstructorSymbol))))\n  (Export\n    (TypeConstructorExport\n      (VariableOperator\n        (VariableSymbol))))\n  (Export\n    (VariableIdentifier))\n  (Export\n    (ModuleExport\n      (ModuleIdentifier)))\n  (Export\n    (TypeConstructorExport\n      (ConstructorIdentifier)))\n  (Statements))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/newtype-declaration.A.hs",
    "content": "newtype N = N Int\nnewtype Show a => N = N a\nnewtype Age = Age { unAge :: Maybe Int }\nnewtype Bar a (b :: [* -> *]) c = Foo (a b c)\nnewtype N = N Int deriving Show\nnewtype N = N a deriving (Eq, Ord, Enum, Bounded, Show, Read)\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/newtype-declaration.B.hs",
    "content": "newtype O = O Int\nnewtype Show a => O = O a\nnewtype Karage = Karage { unKarage :: Maybe Int }\nnewtype Foo a (b :: [* -> *]) c = Bar (a b c)\nnewtype O = O Int deriving Show\nnewtype O = O a deriving (Eq, Ord, Enum, Bounded, Show, Read)\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/newtype-declaration.diffA-B.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (NewType\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (TypeConstructorIdentifier))\n      (Empty))\n    (NewType\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (TypeVariableIdentifier))\n      (Empty))\n    (NewType\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (Statements\n          (Field\n            (Statements\n            { (VariableIdentifier)\n            ->(VariableIdentifier) })\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeConstructorIdentifier))\n              (Empty)))))\n      (Empty))\n    (NewType\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeVariableIdentifier)\n        (AnnotatedTypeVariable\n          (TypeVariableIdentifier)\n          (KindListType\n            (KindFunctionType\n              (Kind\n                (Star))\n              (Kind\n                (Star)))))\n        (TypeVariableIdentifier))\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Empty))\n    (NewType\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (TypeConstructorIdentifier))\n      (Deriving\n        (TypeClassIdentifier)))\n    (NewType\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (TypeVariableIdentifier))\n      (Deriving\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/newtype-declaration.diffB-A.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (NewType\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (TypeConstructorIdentifier))\n      (Empty))\n    (NewType\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (TypeVariableIdentifier))\n      (Empty))\n    (NewType\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (Statements\n          (Field\n            (Statements\n            { (VariableIdentifier)\n            ->(VariableIdentifier) })\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeConstructorIdentifier))\n              (Empty)))))\n      (Empty))\n    (NewType\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeVariableIdentifier)\n        (AnnotatedTypeVariable\n          (TypeVariableIdentifier)\n          (KindListType\n            (KindFunctionType\n              (Kind\n                (Star))\n              (Kind\n                (Star)))))\n        (TypeVariableIdentifier))\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Empty))\n    (NewType\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (TypeConstructorIdentifier))\n      (Deriving\n        (TypeClassIdentifier)))\n    (NewType\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Constructor\n      { (ConstructorIdentifier)\n      ->(ConstructorIdentifier) }\n        (TypeVariableIdentifier))\n      (Deriving\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/newtype-declaration.parseA.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (NewType\n      (Statements\n        (TypeConstructorIdentifier))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeConstructorIdentifier))\n      (Empty))\n    (NewType\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements\n        (TypeConstructorIdentifier))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeVariableIdentifier))\n      (Empty))\n    (NewType\n      (Statements\n        (TypeConstructorIdentifier))\n      (Constructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeConstructorIdentifier))\n              (Empty)))))\n      (Empty))\n    (NewType\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeVariableIdentifier)\n        (AnnotatedTypeVariable\n          (TypeVariableIdentifier)\n          (KindListType\n            (KindFunctionType\n              (Kind\n                (Star))\n              (Kind\n                (Star)))))\n        (TypeVariableIdentifier))\n      (Constructor\n        (ConstructorIdentifier)\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Empty))\n    (NewType\n      (Statements\n        (TypeConstructorIdentifier))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeConstructorIdentifier))\n      (Deriving\n        (TypeClassIdentifier)))\n    (NewType\n      (Statements\n        (TypeConstructorIdentifier))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeVariableIdentifier))\n      (Deriving\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/newtype-declaration.parseB.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (NewType\n      (Statements\n        (TypeConstructorIdentifier))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeConstructorIdentifier))\n      (Empty))\n    (NewType\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements\n        (TypeConstructorIdentifier))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeVariableIdentifier))\n      (Empty))\n    (NewType\n      (Statements\n        (TypeConstructorIdentifier))\n      (Constructor\n        (ConstructorIdentifier)\n        (Statements\n          (Field\n            (Statements\n              (VariableIdentifier))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeConstructorIdentifier))\n              (Empty)))))\n      (Empty))\n    (NewType\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeVariableIdentifier)\n        (AnnotatedTypeVariable\n          (TypeVariableIdentifier)\n          (KindListType\n            (KindFunctionType\n              (Kind\n                (Star))\n              (Kind\n                (Star)))))\n        (TypeVariableIdentifier))\n      (Constructor\n        (ConstructorIdentifier)\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Empty))\n    (NewType\n      (Statements\n        (TypeConstructorIdentifier))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeConstructorIdentifier))\n      (Deriving\n        (TypeClassIdentifier)))\n    (NewType\n      (Statements\n        (TypeConstructorIdentifier))\n      (Constructor\n        (ConstructorIdentifier)\n        (TypeVariableIdentifier))\n      (Deriving\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)\n        (TypeClassIdentifier)))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/standalone-deriving-declaration.A.hs",
    "content": "deriving instance Eq b => Eq (Bar b)\nderiving instance Baz a (m a b c) => Baz a (Bar m a b c)\nderiving instance Bar Baz foo => BazFail (BarEval foo bix waz)\nderiving instance Bar (Foo (Baz waz)) bix => BazHeap bix (BarEval bix wax)\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/standalone-deriving-declaration.B.hs",
    "content": "deriving instance Eq a => Eq (Foo a)\nderiving instance Bar a (m a b c) => Bar a (Baz m a b c)\nderiving instance Foo Baz foo => BazFail (FooEval foo bix waz)\nderiving instance Far (Boo (Baz waz)) bix => BooHeap bix (FarEval bix wax)\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/standalone-deriving-declaration.diffA-B.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (StandaloneDerivingInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n        { (TypeVariableIdentifier)\n        ->(TypeVariableIdentifier) }))\n      (TypeClassIdentifier)\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n      { (TypeVariableIdentifier)\n      ->(TypeVariableIdentifier) }))\n    (StandaloneDerivingInstance\n      (Context'\n        (Class\n        { (TypeClassIdentifier)\n        ->(TypeClassIdentifier) }\n          (TypeVariableIdentifier)\n          (Statements\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier))))\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (Statements\n        (TypeVariableIdentifier)\n        (Statements\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))))\n    (StandaloneDerivingInstance\n      (Context'\n        (Class\n        { (TypeClassIdentifier)\n        ->(TypeClassIdentifier) }\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeVariableIdentifier)\n        (TypeVariableIdentifier)\n        (TypeVariableIdentifier)))\n    (StandaloneDerivingInstance\n      (Context'\n        (Class\n        { (TypeClassIdentifier)\n        ->(TypeClassIdentifier) }\n          (Statements\n          { (TypeConstructorIdentifier)\n          ->(TypeConstructorIdentifier) }\n            (Statements\n              (TypeConstructorIdentifier)\n              (TypeVariableIdentifier)))\n          (TypeVariableIdentifier)))\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (Statements\n        (TypeVariableIdentifier)\n        (Statements\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/standalone-deriving-declaration.diffB-A.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (StandaloneDerivingInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n        { (TypeVariableIdentifier)\n        ->(TypeVariableIdentifier) }))\n      (TypeClassIdentifier)\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n      { (TypeVariableIdentifier)\n      ->(TypeVariableIdentifier) }))\n    (StandaloneDerivingInstance\n      (Context'\n        (Class\n        { (TypeClassIdentifier)\n        ->(TypeClassIdentifier) }\n          (TypeVariableIdentifier)\n          (Statements\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier))))\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (Statements\n        (TypeVariableIdentifier)\n        (Statements\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))))\n    (StandaloneDerivingInstance\n      (Context'\n        (Class\n        { (TypeClassIdentifier)\n        ->(TypeClassIdentifier) }\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeVariableIdentifier)\n        (TypeVariableIdentifier)\n        (TypeVariableIdentifier)))\n    (StandaloneDerivingInstance\n      (Context'\n        (Class\n        { (TypeClassIdentifier)\n        ->(TypeClassIdentifier) }\n          (Statements\n          { (TypeConstructorIdentifier)\n          ->(TypeConstructorIdentifier) }\n            (Statements\n              (TypeConstructorIdentifier)\n              (TypeVariableIdentifier)))\n          (TypeVariableIdentifier)))\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (Statements\n        (TypeVariableIdentifier)\n        (Statements\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/standalone-deriving-declaration.parseA.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (StandaloneDerivingInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeVariableIdentifier)))\n    (StandaloneDerivingInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)\n          (Statements\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier))))\n      (TypeClassIdentifier)\n      (Statements\n        (TypeVariableIdentifier)\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))))\n    (StandaloneDerivingInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeVariableIdentifier)\n        (TypeVariableIdentifier)\n        (TypeVariableIdentifier)))\n    (StandaloneDerivingInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (Statements\n              (TypeConstructorIdentifier)\n              (TypeVariableIdentifier)))\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Statements\n        (TypeVariableIdentifier)\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/standalone-deriving-declaration.parseB.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (StandaloneDerivingInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeVariableIdentifier)))\n    (StandaloneDerivingInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)\n          (Statements\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier))))\n      (TypeClassIdentifier)\n      (Statements\n        (TypeVariableIdentifier)\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))))\n    (StandaloneDerivingInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeVariableIdentifier)\n        (TypeVariableIdentifier)\n        (TypeVariableIdentifier)))\n    (StandaloneDerivingInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (Statements\n              (TypeConstructorIdentifier)\n              (TypeVariableIdentifier)))\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Statements\n        (TypeVariableIdentifier)\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/statements.A.hs",
    "content": "f = if a then 1 else 2\nf = if a; then b; else c\nf = if (if a then b else c) then d else e\nf = if if a then b else c then d else e\n\nhead' :: [a] -> a\nhead' [] = error \"No head for empty lists!\"\nhead' (x:_) = x\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/statements.B.hs",
    "content": "g = if b then 1 else 2\ng = if b; then c; else d\ng = if (if b then c else d) then e else f\ng = if if b then c else d then e else f\n\nh' :: [a] -> a\nh' [] = error \"No head for empty lists!\"\nh' (x:_) = x\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/statements.diffA-B.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (If\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n          (Integer)\n          (Integer))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (If\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n        { (VariableIdentifier)\n        ->(VariableIdentifier) })))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (If\n          (If\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n          { (VariableIdentifier)\n          ->(VariableIdentifier) })\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n        { (VariableIdentifier)\n        ->(VariableIdentifier) })))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (If\n          (If\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n          { (VariableIdentifier)\n          ->(VariableIdentifier) })\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n        { (VariableIdentifier)\n        ->(VariableIdentifier) })))\n    (TypeSignature\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (FunctionType\n        (Type\n          (Array\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (ListConstructor)\n      (Statements\n        (App\n          (VariableIdentifier)\n          (Empty)\n          (TextElement))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (Wildcard))\n      (Statements\n        (VariableIdentifier)))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/statements.diffB-A.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (If\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n          (Integer)\n          (Integer))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (If\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n        { (VariableIdentifier)\n        ->(VariableIdentifier) })))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (If\n          (If\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n          { (VariableIdentifier)\n          ->(VariableIdentifier) })\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n        { (VariableIdentifier)\n        ->(VariableIdentifier) })))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (If\n          (If\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n          { (VariableIdentifier)\n          ->(VariableIdentifier) })\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n        { (VariableIdentifier)\n        ->(VariableIdentifier) })))\n    (TypeSignature\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (FunctionType\n        (Type\n          (Array\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (ListConstructor)\n      (Statements\n        (App\n          (VariableIdentifier)\n          (Empty)\n          (TextElement))))\n    (Function\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (Statements\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (Wildcard))\n      (Statements\n        (VariableIdentifier)))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/statements.parseA.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (If\n          (VariableIdentifier)\n          (Integer)\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (If\n          (VariableIdentifier)\n          (VariableIdentifier)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (If\n          (If\n            (VariableIdentifier)\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (VariableIdentifier)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (If\n          (If\n            (VariableIdentifier)\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (VariableIdentifier)\n          (VariableIdentifier))))\n    (TypeSignature\n      (VariableIdentifier)\n      (FunctionType\n        (Type\n          (Array\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))))\n    (Function\n      (VariableIdentifier)\n      (ListConstructor)\n      (Statements\n        (App\n          (VariableIdentifier)\n          (Empty)\n          (TextElement))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (Wildcard))\n      (Statements\n        (VariableIdentifier)))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/statements.parseB.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (If\n          (VariableIdentifier)\n          (Integer)\n          (Integer))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (If\n          (VariableIdentifier)\n          (VariableIdentifier)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (If\n          (If\n            (VariableIdentifier)\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (VariableIdentifier)\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (If\n          (If\n            (VariableIdentifier)\n            (VariableIdentifier)\n            (VariableIdentifier))\n          (VariableIdentifier)\n          (VariableIdentifier))))\n    (TypeSignature\n      (VariableIdentifier)\n      (FunctionType\n        (Type\n          (Array\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))))\n    (Function\n      (VariableIdentifier)\n      (ListConstructor)\n      (Statements\n        (App\n          (VariableIdentifier)\n          (Empty)\n          (TextElement))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (VariableIdentifier)\n        (ConstructorOperator\n          (ConstructorSymbol))\n        (Wildcard))\n      (Statements\n        (VariableIdentifier)))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/tempate-haskell.A.hs",
    "content": "[|example|]\n[e|example|]\n[p|example|]\n[t|example|]\n[d|example|]\n[str|example|]\n\n[ | example| ]\n[ e| example| ]\n[ p| example| ]\n[ t| example| ]\n[ d| example| ]\n[ str| example| ]\n\n[ | example |  ]\n[ e | example |  ]\n[ p | example |  ]\n[ t | example |  ]\n[ d | example |  ]\n[ str | example |  ]\n[str|integer,double,varchar,boolean,date,money,enum\n    |13,3.14159,testing!,false,1900-01-01,$3.99,foo\n    |12,0.1,a string,true,1929-10-01,12,bar\n    |]\n\n[ | [{ \"ret_setof_integers\": 1 },\n     { \"ret_setof_integers\": 2 },\n     { \"ret_setof_integers\": 3 }] | ]\n\n[|\n  [\n    { \"ret_setof_integers\": 1 },\n    { \"ret_setof_integers\": 2 },\n    { \"ret_setof_integers\": 3 }\n  ]\n|]\n\nf = [|a|] `b` c\n\nf = $x\nf = $(a . b $ c)\n$(makeEff ''Embedded)\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/tempate-haskell.parseA.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (QuasiQuotation\n      (Empty)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (QuasiQuotationExpression)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (QuasiQuotationPattern)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (QuasiQuotationType)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (QuasiQuotationDeclaration)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (QuasiQuotationQuoter)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (Empty)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (QuasiQuotationExpression)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (QuasiQuotationPattern)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (QuasiQuotationType)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (QuasiQuotationDeclaration)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (QuasiQuotationQuoter)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (Empty)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (QuasiQuotationExpression)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (QuasiQuotationPattern)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (QuasiQuotationType)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (QuasiQuotationDeclaration)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (QuasiQuotationQuoter)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (QuasiQuotationQuoter)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (Empty)\n      (QuasiQuotationExpressionBody))\n    (QuasiQuotation\n      (Empty)\n      (QuasiQuotationExpressionBody))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (InfixOperatorApp\n          (QuasiQuotation\n            (Empty)\n            (QuasiQuotationExpressionBody))\n          (Empty)\n          (VariableOperator\n            (InfixVariableIdentifier))\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Splice\n          (VariableIdentifier))))\n    (Function\n      (VariableIdentifier)\n      (Statements\n        (Splice\n          (InfixOperatorApp\n            (VariableIdentifier)\n            (Empty)\n            (VariableOperator\n              (VariableSymbol))\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (VariableIdentifier))))))\n    (Splice\n      (App\n        (VariableIdentifier)\n        (Empty)\n        (QuotedName\n          (QuotedName\n            (TypeConstructorIdentifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/template-haskell.B.hs",
    "content": "[|example'|]\n[e|example'|]\n[p|example'|]\n[t|example'|]\n[d|example'|]\n[str|example'|]\n\n[ | example'| ]\n[ e| example'| ]\n[ p| example'| ]\n[ t| example'| ]\n[ d| example'| ]\n[ str| example'| ]\n\n[ | example' |  ]\n[ e | example' |  ]\n[ p | example' |  ]\n[ t | example' |  ]\n[ d | example' |  ]\n[ str | example' |  ]\n[str|integer,double,varchar,boolean,date,money,enum\n    |12,0.1,a string,true,1929-10-01,12,bar\n    |13,3.14159,testing!,false,1900-01-01,$3.99,foo\n    |]\n\n[ | [{ \"ret_setof_integers\": 3 },\n     { \"ret_setof_integers\": 4 },\n     { \"ret_setof_integers\": 5 }] | ]\n\n[|\n  [\n    { \"ret_setof_integers\": 3 },\n    { \"ret_setof_integers\": 4 },\n    { \"ret_setof_integers\": 5 }\n  ]\n|]\n\ng = [|a|] `b` c\n\ng = $x\ng = $(a . b $ c)\n$(makeEff' ''Embedded)\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-class-declarations.A.hs",
    "content": "class Show a where {}\nclass Show a b where {}\n\nclass Show a => Read a where {}\nclass (Show a, Eq a) => Read a where {}\n\nclass Foo a where {\n  op :: Num b => a -> b -> a;\n  op' :: (Num a, Num b) => a -> b -> a;\n}\n\nclass Foo a where\n  infixl `op`\n  infixr 7 `op`\n  infix 7 `op`, `ip`, `ap`\n  infix <$>\n  infix 7 <$>\n  infix 7 :\n  infix 7 :.\n  infix 7 :<:\n\nclass (Eq a) => Ord a where\n  compare              :: a -> a -> Ordering\n  (<), (<=), (>=), (>) :: a -> a -> Bool\n  max, min             :: a -> a -> a\n  id                   :: a\n\nclass Bar a b m => Baz a b m where {}\n\nclass Bar baz where\n  foo :: wiz -> Baz\n  default foo :: wiz -> Baz\n\nclass Bar (baz :: Foo) where\n\nclass Effectful (m :: [* -> *] -> * -> *) where\n\nclass Foo bar where\n  type Baz wiz :: Wax\n\nclass Foo bar where\n  type Baz wiz :: [* -> *]\n\nclass Bar baz => Foo fax where\n  type family Woo a :: [* -> *]\n\nclass (Monad a, Show b) => Foo a b c | a -> c, b -> c where\n  d :: a b\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-class-declarations.B.hs",
    "content": "class Eq a where {}\nclass Ord a b where {}\n\nclass Eq a => Ord a where {}\nclass (Show a, Eq a) => Ord a where {}\n\nclass Bar a where {\n  op' :: Num b => a -> b -> a;\n  op :: (Num a, Num b) => a -> b -> a;\n}\n\nclass Bar a where\n  infixl `op`\n  infixr 8 `op`\n  infix 8 `op`, `ip`, `ap`\n  infix <$>\n  infix 8 <$>\n  infix 8 :\n  infix 8 :.\n  infix 8 :<:\n\nclass (Eq b) => Ord b where\n  compare              :: b -> b -> Ordering\n  (<), (<=), (>=), (>) :: b -> b -> Bool\n  max, min             :: b -> b -> b\n  id                   :: b\n\nclass Foo a b m => Bar a b m where {}\n\nclass Foo bat where\n  bar :: bat -> Baz\n  default bar :: bat -> Baz\n\nclass Foo (baz :: Bar) where\n\nclass Effectful' (m' :: [* -> *] -> * -> *) where\n\nclass Foo bar where\n  type Baz wiz :: Wax\n\nclass Foo bar where\n  type Baz wiz :: [* -> *]\n\nclass Foo baz => Bar fax where\n  type family Woot a :: [* -> *]\n\nclass (Monad a, Show b) => Foo a b c | b -> d, a -> b where\n  d :: a b\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-class-declarations.diffA-B.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeClass\n      (Empty)\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Empty)\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Context'\n        (Class\n        { (TypeClassIdentifier)\n        ->(TypeClassIdentifier) }\n          (TypeVariableIdentifier)))\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Empty)\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeSignature\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n          (Context'\n            (Class\n              (TypeClassIdentifier)\n              (TypeVariableIdentifier)))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n          (Context'\n            (Statements\n              (Class\n                (TypeClassIdentifier)\n                (TypeVariableIdentifier))\n              (Class\n                (TypeClassIdentifier)\n                (TypeVariableIdentifier))))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty)))))))\n    (TypeClass\n      (Empty)\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (TypeVariableIdentifier)\n      (Statements\n        (Fixity'\n          (Empty)\n          (VariableOperator\n            (InfixVariableIdentifier)))\n        (Fixity'\n        { (Integer)\n        ->(Integer) }\n          (VariableOperator\n            (InfixVariableIdentifier)))\n        (Fixity'\n        { (Integer)\n        ->(Integer) }\n          (VariableOperator\n            (InfixVariableIdentifier))\n          (VariableOperator\n            (InfixVariableIdentifier))\n          (VariableOperator\n            (InfixVariableIdentifier)))\n        (Fixity'\n          (Empty)\n          (VariableOperator\n            (VariableSymbol)))\n        (Fixity'\n        { (Integer)\n        ->(Integer) }\n          (VariableOperator\n            (VariableSymbol)))\n        (Fixity'\n        { (Integer)\n        ->(Integer) }\n          (ConstructorOperator\n            (ConstructorSymbol)))\n        (Fixity'\n        { (Integer)\n        ->(Integer) }\n          (ConstructorOperator\n            (ConstructorSymbol)))\n        (Fixity'\n        { (Integer)\n        ->(Integer) }\n          (ConstructorOperator\n            (ConstructorSymbol)))))\n    (TypeClass\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n        { (TypeVariableIdentifier)\n        ->(TypeVariableIdentifier) }))\n      (TypeClassIdentifier)\n    { (TypeVariableIdentifier)\n    ->(TypeVariableIdentifier) }\n      (Statements\n        (TypeSignature\n          (VariableIdentifier)\n          (FunctionType\n            (Type\n            { (TypeVariableIdentifier)\n            ->(TypeVariableIdentifier) }\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n              { (TypeVariableIdentifier)\n              ->(TypeVariableIdentifier) }\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n          (VariableOperator\n            (VariableSymbol))\n          (VariableOperator\n            (VariableSymbol))\n          (VariableOperator\n            (VariableSymbol))\n          (VariableOperator\n            (VariableSymbol))\n          (FunctionType\n            (Type\n            { (TypeVariableIdentifier)\n            ->(TypeVariableIdentifier) }\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n              { (TypeVariableIdentifier)\n              ->(TypeVariableIdentifier) }\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n          (VariableIdentifier)\n          (VariableIdentifier)\n          (FunctionType\n            (Type\n            { (TypeVariableIdentifier)\n            ->(TypeVariableIdentifier) }\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n              { (TypeVariableIdentifier)\n              ->(TypeVariableIdentifier) }\n                (TypeParameters)\n                (Empty))\n              (Type\n              { (TypeVariableIdentifier)\n              ->(TypeVariableIdentifier) }\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n          (VariableIdentifier)\n        { (TypeVariableIdentifier)\n        ->(TypeVariableIdentifier) })))\n    (TypeClass\n      (Context'\n        (Class\n        { (TypeClassIdentifier)\n        ->(TypeClassIdentifier) }\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Empty)\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n    { (TypeVariableIdentifier)\n    ->(TypeVariableIdentifier) }\n      (Statements\n        (TypeSignature\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n          (FunctionType\n            (Type\n            { (TypeVariableIdentifier)\n            ->(TypeVariableIdentifier) }\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty))))\n        (DefaultSignature\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n          (FunctionType\n            (Type\n            { (TypeVariableIdentifier)\n            ->(TypeVariableIdentifier) }\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty))))))\n    (TypeClass\n      (Empty)\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (AnnotatedTypeVariable\n        (TypeVariableIdentifier)\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Statements))\n    (TypeClass\n      (Empty)\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (AnnotatedTypeVariable\n      { (TypeVariableIdentifier)\n      ->(TypeVariableIdentifier) }\n        (KindFunctionType\n          (Kind\n            (KindListType\n              (KindFunctionType\n                (Kind\n                  (Star))\n                (Kind\n                  (Star)))))\n          (KindFunctionType\n            (Kind\n              (Star))\n            (Kind\n              (Star)))))\n      (Statements))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeSynonym\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier))\n          (TypeSignature\n            (TypeConstructorIdentifier)))))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeSynonym\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier))\n          (KindSignature\n            (KindListType\n              (KindFunctionType\n                (Kind\n                  (Star))\n                (Kind\n                  (Star))))))))\n    (TypeClass\n      (Context'\n        (Class\n        { (TypeClassIdentifier)\n        ->(TypeClassIdentifier) }\n          (TypeVariableIdentifier)))\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeFamily\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }\n          (TypeVariableIdentifier)\n          (KindSignature\n            (KindListType\n              (KindFunctionType\n                (Kind\n                  (Star))\n                (Kind\n                  (Star)))))\n          (Empty))))\n    (TypeClass\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (FunctionalDependency\n        (Statements\n          (FunctionType\n            (Type\n            { (TypeVariableIdentifier)\n            ->(TypeVariableIdentifier) }\n              (TypeParameters)\n              (Empty))\n            (Type\n            { (TypeVariableIdentifier)\n            ->(TypeVariableIdentifier) }\n              (TypeParameters)\n              (Empty)))\n          (FunctionType\n            (Type\n            { (TypeVariableIdentifier)\n            ->(TypeVariableIdentifier) }\n              (TypeParameters)\n              (Empty))\n            (Type\n            { (TypeVariableIdentifier)\n            ->(TypeVariableIdentifier) }\n              (TypeParameters)\n              (Empty)))))\n      (Statements\n        (TypeSignature\n          (VariableIdentifier)\n          (Statements\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-class-declarations.diffB-A.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeClass\n      (Empty)\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Empty)\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Context'\n        (Class\n        { (TypeClassIdentifier)\n        ->(TypeClassIdentifier) }\n          (TypeVariableIdentifier)))\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Empty)\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeSignature\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n          (Context'\n            (Class\n              (TypeClassIdentifier)\n              (TypeVariableIdentifier)))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n          (Context'\n            (Statements\n              (Class\n                (TypeClassIdentifier)\n                (TypeVariableIdentifier))\n              (Class\n                (TypeClassIdentifier)\n                (TypeVariableIdentifier))))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty)))))))\n    (TypeClass\n      (Empty)\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (TypeVariableIdentifier)\n      (Statements\n        (Fixity'\n          (Empty)\n          (VariableOperator\n            (InfixVariableIdentifier)))\n        (Fixity'\n        { (Integer)\n        ->(Integer) }\n          (VariableOperator\n            (InfixVariableIdentifier)))\n        (Fixity'\n        { (Integer)\n        ->(Integer) }\n          (VariableOperator\n            (InfixVariableIdentifier))\n          (VariableOperator\n            (InfixVariableIdentifier))\n          (VariableOperator\n            (InfixVariableIdentifier)))\n        (Fixity'\n          (Empty)\n          (VariableOperator\n            (VariableSymbol)))\n        (Fixity'\n        { (Integer)\n        ->(Integer) }\n          (VariableOperator\n            (VariableSymbol)))\n        (Fixity'\n        { (Integer)\n        ->(Integer) }\n          (ConstructorOperator\n            (ConstructorSymbol)))\n        (Fixity'\n        { (Integer)\n        ->(Integer) }\n          (ConstructorOperator\n            (ConstructorSymbol)))\n        (Fixity'\n        { (Integer)\n        ->(Integer) }\n          (ConstructorOperator\n            (ConstructorSymbol)))))\n    (TypeClass\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n        { (TypeVariableIdentifier)\n        ->(TypeVariableIdentifier) }))\n      (TypeClassIdentifier)\n    { (TypeVariableIdentifier)\n    ->(TypeVariableIdentifier) }\n      (Statements\n        (TypeSignature\n          (VariableIdentifier)\n          (FunctionType\n            (Type\n            { (TypeVariableIdentifier)\n            ->(TypeVariableIdentifier) }\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n              { (TypeVariableIdentifier)\n              ->(TypeVariableIdentifier) }\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n          (VariableOperator\n            (VariableSymbol))\n          (VariableOperator\n            (VariableSymbol))\n          (VariableOperator\n            (VariableSymbol))\n          (VariableOperator\n            (VariableSymbol))\n          (FunctionType\n            (Type\n            { (TypeVariableIdentifier)\n            ->(TypeVariableIdentifier) }\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n              { (TypeVariableIdentifier)\n              ->(TypeVariableIdentifier) }\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n          (VariableIdentifier)\n          (VariableIdentifier)\n          (FunctionType\n            (Type\n            { (TypeVariableIdentifier)\n            ->(TypeVariableIdentifier) }\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n              { (TypeVariableIdentifier)\n              ->(TypeVariableIdentifier) }\n                (TypeParameters)\n                (Empty))\n              (Type\n              { (TypeVariableIdentifier)\n              ->(TypeVariableIdentifier) }\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n          (VariableIdentifier)\n        { (TypeVariableIdentifier)\n        ->(TypeVariableIdentifier) })))\n    (TypeClass\n      (Context'\n        (Class\n        { (TypeClassIdentifier)\n        ->(TypeClassIdentifier) }\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Empty)\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n    { (TypeVariableIdentifier)\n    ->(TypeVariableIdentifier) }\n      (Statements\n        (TypeSignature\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n          (FunctionType\n            (Type\n            { (TypeVariableIdentifier)\n            ->(TypeVariableIdentifier) }\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty))))\n        (DefaultSignature\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n          (FunctionType\n            (Type\n            { (TypeVariableIdentifier)\n            ->(TypeVariableIdentifier) }\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty))))))\n    (TypeClass\n      (Empty)\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (AnnotatedTypeVariable\n        (TypeVariableIdentifier)\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Statements))\n    (TypeClass\n      (Empty)\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (AnnotatedTypeVariable\n      { (TypeVariableIdentifier)\n      ->(TypeVariableIdentifier) }\n        (KindFunctionType\n          (Kind\n            (KindListType\n              (KindFunctionType\n                (Kind\n                  (Star))\n                (Kind\n                  (Star)))))\n          (KindFunctionType\n            (Kind\n              (Star))\n            (Kind\n              (Star)))))\n      (Statements))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeSynonym\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier))\n          (TypeSignature\n            (TypeConstructorIdentifier)))))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeSynonym\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier))\n          (KindSignature\n            (KindListType\n              (KindFunctionType\n                (Kind\n                  (Star))\n                (Kind\n                  (Star))))))))\n    (TypeClass\n      (Context'\n        (Class\n        { (TypeClassIdentifier)\n        ->(TypeClassIdentifier) }\n          (TypeVariableIdentifier)))\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeFamily\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }\n          (TypeVariableIdentifier)\n          (KindSignature\n            (KindListType\n              (KindFunctionType\n                (Kind\n                  (Star))\n                (Kind\n                  (Star)))))\n          (Empty))))\n    (TypeClass\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (FunctionalDependency\n        (Statements\n          (FunctionType\n            (Type\n            { (TypeVariableIdentifier)\n            ->(TypeVariableIdentifier) }\n              (TypeParameters)\n              (Empty))\n            (Type\n            { (TypeVariableIdentifier)\n            ->(TypeVariableIdentifier) }\n              (TypeParameters)\n              (Empty)))\n          (FunctionType\n            (Type\n            { (TypeVariableIdentifier)\n            ->(TypeVariableIdentifier) }\n              (TypeParameters)\n              (Empty))\n            (Type\n            { (TypeVariableIdentifier)\n            ->(TypeVariableIdentifier) }\n              (TypeParameters)\n              (Empty)))))\n      (Statements\n        (TypeSignature\n          (VariableIdentifier)\n          (Statements\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-class-declarations.parseA.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeSignature\n          (VariableIdentifier)\n          (Context'\n            (Class\n              (TypeClassIdentifier)\n              (TypeVariableIdentifier)))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n          (VariableIdentifier)\n          (Context'\n            (Statements\n              (Class\n                (TypeClassIdentifier)\n                (TypeVariableIdentifier))\n              (Class\n                (TypeClassIdentifier)\n                (TypeVariableIdentifier))))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty)))))))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (Fixity'\n          (Empty)\n          (VariableOperator\n            (InfixVariableIdentifier)))\n        (Fixity'\n          (Integer)\n          (VariableOperator\n            (InfixVariableIdentifier)))\n        (Fixity'\n          (Integer)\n          (VariableOperator\n            (InfixVariableIdentifier))\n          (VariableOperator\n            (InfixVariableIdentifier))\n          (VariableOperator\n            (InfixVariableIdentifier)))\n        (Fixity'\n          (Empty)\n          (VariableOperator\n            (VariableSymbol)))\n        (Fixity'\n          (Integer)\n          (VariableOperator\n            (VariableSymbol)))\n        (Fixity'\n          (Integer)\n          (ConstructorOperator\n            (ConstructorSymbol)))\n        (Fixity'\n          (Integer)\n          (ConstructorOperator\n            (ConstructorSymbol)))\n        (Fixity'\n          (Integer)\n          (ConstructorOperator\n            (ConstructorSymbol)))))\n    (TypeClass\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeSignature\n          (VariableIdentifier)\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n          (VariableOperator\n            (VariableSymbol))\n          (VariableOperator\n            (VariableSymbol))\n          (VariableOperator\n            (VariableSymbol))\n          (VariableOperator\n            (VariableSymbol))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n          (VariableIdentifier)\n          (VariableIdentifier)\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n          (VariableIdentifier)\n          (TypeVariableIdentifier))))\n    (TypeClass\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeSignature\n          (VariableIdentifier)\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty))))\n        (DefaultSignature\n          (VariableIdentifier)\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty))))))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (AnnotatedTypeVariable\n        (TypeVariableIdentifier)\n        (TypeConstructorIdentifier))\n      (Statements))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (AnnotatedTypeVariable\n        (TypeVariableIdentifier)\n        (KindFunctionType\n          (Kind\n            (KindListType\n              (KindFunctionType\n                (Kind\n                  (Star))\n                (Kind\n                  (Star)))))\n          (KindFunctionType\n            (Kind\n              (Star))\n            (Kind\n              (Star)))))\n      (Statements))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeSynonym\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier))\n          (TypeSignature\n            (TypeConstructorIdentifier)))))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeSynonym\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier))\n          (KindSignature\n            (KindListType\n              (KindFunctionType\n                (Kind\n                  (Star))\n                (Kind\n                  (Star))))))))\n    (TypeClass\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeFamily\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)\n          (KindSignature\n            (KindListType\n              (KindFunctionType\n                (Kind\n                  (Star))\n                (Kind\n                  (Star)))))\n          (Empty))))\n    (TypeClass\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (FunctionalDependency\n        (Statements\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Statements\n        (TypeSignature\n          (VariableIdentifier)\n          (Statements\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-class-declarations.parseB.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeSignature\n          (VariableIdentifier)\n          (Context'\n            (Class\n              (TypeClassIdentifier)\n              (TypeVariableIdentifier)))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n          (VariableIdentifier)\n          (Context'\n            (Statements\n              (Class\n                (TypeClassIdentifier)\n                (TypeVariableIdentifier))\n              (Class\n                (TypeClassIdentifier)\n                (TypeVariableIdentifier))))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty)))))))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (Fixity'\n          (Empty)\n          (VariableOperator\n            (InfixVariableIdentifier)))\n        (Fixity'\n          (Integer)\n          (VariableOperator\n            (InfixVariableIdentifier)))\n        (Fixity'\n          (Integer)\n          (VariableOperator\n            (InfixVariableIdentifier))\n          (VariableOperator\n            (InfixVariableIdentifier))\n          (VariableOperator\n            (InfixVariableIdentifier)))\n        (Fixity'\n          (Empty)\n          (VariableOperator\n            (VariableSymbol)))\n        (Fixity'\n          (Integer)\n          (VariableOperator\n            (VariableSymbol)))\n        (Fixity'\n          (Integer)\n          (ConstructorOperator\n            (ConstructorSymbol)))\n        (Fixity'\n          (Integer)\n          (ConstructorOperator\n            (ConstructorSymbol)))\n        (Fixity'\n          (Integer)\n          (ConstructorOperator\n            (ConstructorSymbol)))))\n    (TypeClass\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeSignature\n          (VariableIdentifier)\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n          (VariableOperator\n            (VariableSymbol))\n          (VariableOperator\n            (VariableSymbol))\n          (VariableOperator\n            (VariableSymbol))\n          (VariableOperator\n            (VariableSymbol))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n          (VariableIdentifier)\n          (VariableIdentifier)\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n          (VariableIdentifier)\n          (TypeVariableIdentifier))))\n    (TypeClass\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (Statements))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeSignature\n          (VariableIdentifier)\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty))))\n        (DefaultSignature\n          (VariableIdentifier)\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty))))))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (AnnotatedTypeVariable\n        (TypeVariableIdentifier)\n        (TypeConstructorIdentifier))\n      (Statements))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (AnnotatedTypeVariable\n        (TypeVariableIdentifier)\n        (KindFunctionType\n          (Kind\n            (KindListType\n              (KindFunctionType\n                (Kind\n                  (Star))\n                (Kind\n                  (Star)))))\n          (KindFunctionType\n            (Kind\n              (Star))\n            (Kind\n              (Star)))))\n      (Statements))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeSynonym\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier))\n          (TypeSignature\n            (TypeConstructorIdentifier)))))\n    (TypeClass\n      (Empty)\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeSynonym\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier))\n          (KindSignature\n            (KindListType\n              (KindFunctionType\n                (Kind\n                  (Star))\n                (Kind\n                  (Star))))))))\n    (TypeClass\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (Statements\n        (TypeFamily\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)\n          (KindSignature\n            (KindListType\n              (KindFunctionType\n                (Kind\n                  (Star))\n                (Kind\n                  (Star)))))\n          (Empty))))\n    (TypeClass\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (TypeClassIdentifier)\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (TypeVariableIdentifier)\n      (FunctionalDependency\n        (Statements\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))))\n      (Statements\n        (TypeSignature\n          (VariableIdentifier)\n          (Statements\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-class-instance-declarations.A.hs",
    "content": "instance Show Int where\ninstance Show Int where {}\ninstance Show Int\ninstance Show Int a where\ninstance Show Int a where {}\ninstance Show Int a\ninstance Show (Maybe a) where\ninstance Show (Maybe a) where {}\ninstance Show (Maybe a)\ninstance Show (a, b, c) where\ninstance Show (a, b, c) where {}\ninstance Show (a, b, c)\ninstance Show [a] where\ninstance Show [a] where {}\ninstance Show [a]\ninstance Show (a -> b) where\ninstance Show (a -> b) where {}\ninstance Show (a -> b)\ninstance Show Foo where\n  bar (Foo Baz) (Foo Wix) = EQ\ninstance Show Foo where {\n  bar (Foo Baz) (Foo Wix) = EQ\n}\ninstance Show (,) where\ninstance Show (,) where {}\ninstance Show (,)\ninstance Show (Bar, Baz a b) where\ninstance Show (Bar, Baz a b) where {}\ninstance Show (Bar, Baz a b)\ninstance Show [(Bar, Baz a b)] where\ninstance Show [(Bar, Baz a b)] where {}\ninstance Show [(Bar, Baz a b)]\ninstance Show [Bar] where\ninstance Show [Bar] where {}\ninstance Show [Bar]\ninstance Show [Bar a b] where\ninstance Show [Bar a b] where {}\ninstance Show [Bar a b]\ninstance Show [Bar Baz b] where\ninstance Show [Bar Baz b] where {}\ninstance Show [Bar Baz b]\n\ninstance Show a => Read Int where {}\ninstance Show a => Read (Maybe a) where {}\ninstance (Show a, Eq a) => Read (Maybe a) where {}\ninstance (Foo (Bar [Baz])) => Read (Bar) where {}\ninstance (Foo (Bar (Baz, Baz))) => Read (Bar) where {}\n\ninstance Foo Bar where\n  baz :: Num b => a -> b -> a\n  baz' :: (Num a, Num b) => Maybe a -> Either String b -> Maybe (Either String a)\n\ninstance Bar a b m => Baz a b m where {}\n\ninstance ( Foo (Bar a b '[]) c ) => Baz a b (Bix a b c) where\n\ninstance (Bar baz ~ foo) => Wix baz where\n  toWix = undefined\n  Wix baz <> Wix baz' = Wix (baz <> baz')\n\ninstance Bar (f :+: g) where {}\n\ninstance (A :< b, B :< b) => Bar (A c) Foo where {}\n\ninstance Foo Bar where\n  foo D.F{..} = foo\n\ninstance Show Foo where\n  bar (Foo Baz) (Foo Baz) = EQ\n\ninstance forall location a b. (Show a, Monad b) => MonadError (Value a) b where\n  unit = pure . Unit\n\ninstance Show A where b = c\n-- a\ninstance Show A where b = c\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-class-instance-declarations.B.hs",
    "content": "instance Eq Int where\ninstance Eq Int where {}\ninstance Eq Int\ninstance Eq Int a where\ninstance Eq Int a where {}\ninstance Eq Int a\ninstance Eq (Maybe a) where\ninstance Eq (Maybe a) where {}\ninstance Eq (Maybe a)\ninstance Eq (a, b, c) where\ninstance Eq (a, b, c) where {}\ninstance Eq (a, b, c)\ninstance Eq [a] where\ninstance Eq [a] where {}\ninstance Eq [a]\ninstance Eq (a -> b) where\ninstance Eq (a -> b) where {}\ninstance Eq (a -> b)\ninstance Eq Foo where\n  bar (Foo Baz) (Foo Wix) = EQ\ninstance Eq Foo where {\n  bar (Foo Baz) (Foo Wix) = EQ\n}\ninstance Eq (,) where\ninstance Eq (,) where {}\ninstance Eq (,)\ninstance Eq (Bar, Baz a b) where\ninstance Eq (Bar, Baz a b) where {}\ninstance Eq (Bar, Baz a b)\ninstance Eq [(Bar, Baz a b)] where\ninstance Eq [(Bar, Baz a b)] where {}\ninstance Eq [(Bar, Baz a b)]\ninstance Eq [Bar] where\ninstance Eq [Bar] where {}\ninstance Eq [Bar]\ninstance Eq [Bar a b] where\ninstance Eq [Bar a b] where {}\ninstance Eq [Bar a b]\ninstance Eq [Bar Baz b] where\ninstance Eq [Bar Baz b] where {}\ninstance Eq [Bar Baz b]\n\ninstance Show a => Read Int where {}\ninstance Show a => Read (Maybe a) where {}\ninstance (Show a, Eq a) => Read (Maybe a) where {}\ninstance (Foo (Bar [Baz])) => Read (Bar) where {}\ninstance (Foo (Bar (Baz, Baz))) => Read (Bar) where {}\n\ninstance Bar Foo where\n  baz :: Num b => a -> b -> a\n  baz' :: (Num a, Num b) => Maybe a -> Either String b -> Maybe (Either String a)\n\ninstance Foo a b m => Bar a b m where {}\n\ninstance ( Foo (Bar a b '[]) c ) => Baz a b (Bix a b c) where\n\ninstance (Foo baz ~ bar) => Wix baz where\n  toWix = undefined\n  Wix baz <> Wix baz' = Wix (baz <> baz')\n\ninstance Foo (f :+: g) where {}\n\ninstance (B :< a, A :< b) => Foo (A b) Bar where {}\n\ninstance Bar Foo where\n  foo F.D{..} = bar\n\ninstance Show Bar where\n  bar (Bar Baz) (Bar Baz) = EQ\n\ninstance forall location b c. (Show b, Monad c) => ErrorMonad (Value b) c where\n  unit = pure . Unit\n\ninstance Show B where c = d\n-- a\ninstance Show B where c = d\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-class-instance-declarations.diffA-B.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeClassInstance\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements))\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(TypeConstructorIdentifier)+})+}\n    {+(Statements)+})+}\n    (TypeClassInstance\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (Instance\n        (TypeConstructorIdentifier))\n    { (Statements)\n    ->(Empty) })\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Tuple\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Tuple\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Tuple\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(FunctionType\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(FunctionType\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(FunctionType\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(TypeConstructorIdentifier)+})+}\n    {+(Statements\n      {+(Function\n        {+(VariableIdentifier)+}\n        {+(ConstructorPattern\n          {+(Statements\n            {+(ConstructorIdentifier)+}\n            {+(ConstructorIdentifier)+})+})+}\n        {+(ConstructorPattern\n          {+(Statements\n            {+(ConstructorIdentifier)+}\n            {+(ConstructorIdentifier)+})+})+}\n        {+(Statements\n          {+(ConstructorIdentifier)+})+})+})+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(TypeConstructorIdentifier)+})+}\n    {+(Statements\n      {+(Function\n        {+(VariableIdentifier)+}\n        {+(ConstructorPattern\n          {+(Statements\n            {+(ConstructorIdentifier)+}\n            {+(ConstructorIdentifier)+})+})+}\n        {+(ConstructorPattern\n          {+(Statements\n            {+(ConstructorIdentifier)+}\n            {+(ConstructorIdentifier)+})+})+}\n        {+(Statements\n          {+(ConstructorIdentifier)+})+})+})+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(TupleConstructor)+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(TupleConstructor)+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(TupleConstructor)+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Tuple\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeVariableIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Tuple\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeVariableIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Tuple\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeVariableIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Empty)+})+})+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(Tuple\n            {+(Type\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeParameters)+}\n              {+(Empty)+})+}\n            {+(Type\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeParameters\n                {+(TypeVariableIdentifier)+}\n                {+(TypeVariableIdentifier)+})+}\n              {+(Empty)+})+})+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(Tuple\n            {+(Type\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeParameters)+}\n              {+(Empty)+})+}\n            {+(Type\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeParameters\n                {+(TypeVariableIdentifier)+}\n                {+(TypeVariableIdentifier)+})+}\n              {+(Empty)+})+})+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(Tuple\n            {+(Type\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeParameters)+}\n              {+(Empty)+})+}\n            {+(Type\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeParameters\n                {+(TypeVariableIdentifier)+}\n                {+(TypeVariableIdentifier)+})+}\n              {+(Empty)+})+})+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeVariableIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeVariableIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeVariableIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Empty)+})+})+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Empty)+})+})+})+}\n    {+(Empty)+})+}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(TypeConstructorIdentifier)-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Tuple\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Tuple\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Tuple\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(FunctionType\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(FunctionType\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(FunctionType\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(TypeConstructorIdentifier)-})-}\n    {-(Statements\n      {-(Function\n        {-(VariableIdentifier)-}\n        {-(ConstructorPattern\n          {-(Statements\n            {-(ConstructorIdentifier)-}\n            {-(ConstructorIdentifier)-})-})-}\n        {-(ConstructorPattern\n          {-(Statements\n            {-(ConstructorIdentifier)-}\n            {-(ConstructorIdentifier)-})-})-}\n        {-(Statements\n          {-(ConstructorIdentifier)-})-})-})-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(TypeConstructorIdentifier)-})-}\n    {-(Statements\n      {-(Function\n        {-(VariableIdentifier)-}\n        {-(ConstructorPattern\n          {-(Statements\n            {-(ConstructorIdentifier)-}\n            {-(ConstructorIdentifier)-})-})-}\n        {-(ConstructorPattern\n          {-(Statements\n            {-(ConstructorIdentifier)-}\n            {-(ConstructorIdentifier)-})-})-}\n        {-(Statements\n          {-(ConstructorIdentifier)-})-})-})-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(TupleConstructor)-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(TupleConstructor)-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(TupleConstructor)-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Tuple\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeVariableIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Tuple\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeVariableIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Tuple\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeVariableIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Empty)-})-})-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(Tuple\n            {-(Type\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeParameters)-}\n              {-(Empty)-})-}\n            {-(Type\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeParameters\n                {-(TypeVariableIdentifier)-}\n                {-(TypeVariableIdentifier)-})-}\n              {-(Empty)-})-})-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(Tuple\n            {-(Type\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeParameters)-}\n              {-(Empty)-})-}\n            {-(Type\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeParameters\n                {-(TypeVariableIdentifier)-}\n                {-(TypeVariableIdentifier)-})-}\n              {-(Empty)-})-})-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(Tuple\n            {-(Type\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeParameters)-}\n              {-(Empty)-})-}\n            {-(Type\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeParameters\n                {-(TypeVariableIdentifier)-}\n                {-(TypeVariableIdentifier)-})-}\n              {-(Empty)-})-})-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeVariableIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeVariableIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeVariableIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Empty)-})-})-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Empty)-})-})-})-}\n    {-(Empty)-})-}\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (Array\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))))))\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (Tuple\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))))))\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements))\n    (TypeClassInstance\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (Instance\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Statements\n        (TypeSignature\n          (VariableIdentifier)\n          (Context'\n            (Class\n              (TypeClassIdentifier)\n              (TypeVariableIdentifier)))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n          (VariableIdentifier)\n          (Context'\n            (Statements\n              (Class\n                (TypeClassIdentifier)\n                (TypeVariableIdentifier))\n              (Class\n                (TypeClassIdentifier)\n                (TypeVariableIdentifier))))\n          (FunctionType\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeVariableIdentifier))\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (TypeConstructorIdentifier)\n                  (TypeVariableIdentifier))\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (Statements\n                    (TypeConstructorIdentifier)\n                    (TypeConstructorIdentifier)\n                    (TypeVariableIdentifier)))\n                (Empty)))))))\n    (TypeClassInstance\n      (Context'\n        (Class\n        { (TypeClassIdentifier)\n        ->(TypeClassIdentifier) }\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (Instance\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)\n            (QuotedName\n              (ListConstructor)))\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier))))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (EqualityConstraint\n          (Class\n          { (TypeClassIdentifier)\n          ->(TypeClassIdentifier) }\n            (TypeVariableIdentifier))\n        { (TypeVariableIdentifier)\n        ->(TypeVariableIdentifier) }))\n      (TypeClassIdentifier)\n      (Instance\n        (TypeVariableIdentifier))\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (Statements\n            (VariableIdentifier)))\n        (Function\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (VariableIdentifier)))\n          (VariableOperator\n            (VariableSymbol))\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (VariableIdentifier)))\n          (Statements\n            (App\n              (ConstructorIdentifier)\n              (Empty)\n              (InfixOperatorApp\n                (VariableIdentifier)\n                (Empty)\n                (VariableOperator\n                  (VariableSymbol))\n                (VariableIdentifier)))))))\n    (TypeClassInstance\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (Instance\n        (InfixOperatorPattern\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (ConstructorOperator\n            (ConstructorSymbol))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Statements\n        {+(Statements\n          {+(TypeConstructorIdentifier)+}\n          {+(ConstructorOperator\n            {+(ConstructorSymbol)+})+}\n          {+(TypeVariableIdentifier)+})+}\n          (Statements\n            (TypeConstructorIdentifier)\n            (ConstructorOperator\n              (ConstructorSymbol))\n            (TypeVariableIdentifier))\n        {-(Statements\n          {-(TypeConstructorIdentifier)-}\n          {-(ConstructorOperator\n            {-(ConstructorSymbol)-})-}\n          {-(TypeVariableIdentifier)-})-}))\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (Instance\n        (Statements\n          (Statements\n            (TypeConstructorIdentifier)\n          { (TypeVariableIdentifier)\n          ->(TypeVariableIdentifier) })\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }))\n      (Statements))\n    (TypeClassInstance\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (Instance\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (LabeledPattern\n            (Statements\n              (QualifiedConstructorIdentifier\n              { (ModuleIdentifier)\n              ->(ModuleIdentifier) }\n              { (ConstructorIdentifier)\n              ->(ConstructorIdentifier) })\n              (RecordWildCards)))\n          (Statements\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }))))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (ConstructorPattern\n            (Statements\n            { (ConstructorIdentifier)\n            ->(ConstructorIdentifier) }\n              (ConstructorIdentifier)))\n          (ConstructorPattern\n            (Statements\n            { (ConstructorIdentifier)\n            ->(ConstructorIdentifier) }\n              (ConstructorIdentifier)))\n          (Statements\n            (ConstructorIdentifier)))))\n    (TypeClassInstance\n      (ScopedTypeVariables\n        (Statements\n          (TypeVariableIdentifier)\n        {-(TypeVariableIdentifier)-}\n          (TypeVariableIdentifier)\n        {+(TypeVariableIdentifier)+}))\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n          { (TypeVariableIdentifier)\n          ->(TypeVariableIdentifier) })\n          (Class\n            (TypeClassIdentifier)\n          { (TypeVariableIdentifier)\n          ->(TypeVariableIdentifier) })))\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (Instance\n        (Statements\n          (Statements\n            (TypeConstructorIdentifier)\n          { (TypeVariableIdentifier)\n          ->(TypeVariableIdentifier) })\n        { (TypeVariableIdentifier)\n        ->(TypeVariableIdentifier) }))\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (Statements\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (ConstructorIdentifier))))))\n    (Context\n      (Comment)\n      (TypeClassInstance\n        (TypeClassIdentifier)\n        (Instance\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) })\n        (Statements\n          (Function\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n            (Statements\n            { (VariableIdentifier)\n            ->(VariableIdentifier) })))))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Statements\n        (Function\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n          (Statements\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-class-instance-declarations.diffB-A.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeClassInstance\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements))\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(TypeConstructorIdentifier)+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(TypeConstructorIdentifier)+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Tuple\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Tuple\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Tuple\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(FunctionType\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(FunctionType\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(FunctionType\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(TypeConstructorIdentifier)+})+}\n    {+(Statements\n      {+(Function\n        {+(VariableIdentifier)+}\n        {+(ConstructorPattern\n          {+(Statements\n            {+(ConstructorIdentifier)+}\n            {+(ConstructorIdentifier)+})+})+}\n        {+(ConstructorPattern\n          {+(Statements\n            {+(ConstructorIdentifier)+}\n            {+(ConstructorIdentifier)+})+})+}\n        {+(Statements\n          {+(ConstructorIdentifier)+})+})+})+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(TypeConstructorIdentifier)+})+}\n    {+(Statements\n      {+(Function\n        {+(VariableIdentifier)+}\n        {+(ConstructorPattern\n          {+(Statements\n            {+(ConstructorIdentifier)+}\n            {+(ConstructorIdentifier)+})+})+}\n        {+(ConstructorPattern\n          {+(Statements\n            {+(ConstructorIdentifier)+}\n            {+(ConstructorIdentifier)+})+})+}\n        {+(Statements\n          {+(ConstructorIdentifier)+})+})+})+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(TupleConstructor)+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(TupleConstructor)+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(TupleConstructor)+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Tuple\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeVariableIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Tuple\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeVariableIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Tuple\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeVariableIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Empty)+})+})+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(Tuple\n            {+(Type\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeParameters)+}\n              {+(Empty)+})+}\n            {+(Type\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeParameters\n                {+(TypeVariableIdentifier)+}\n                {+(TypeVariableIdentifier)+})+}\n              {+(Empty)+})+})+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(Tuple\n            {+(Type\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeParameters)+}\n              {+(Empty)+})+}\n            {+(Type\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeParameters\n                {+(TypeVariableIdentifier)+}\n                {+(TypeVariableIdentifier)+})+}\n              {+(Empty)+})+})+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(Tuple\n            {+(Type\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeParameters)+}\n              {+(Empty)+})+}\n            {+(Type\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeParameters\n                {+(TypeVariableIdentifier)+}\n                {+(TypeVariableIdentifier)+})+}\n              {+(Empty)+})+})+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeVariableIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeVariableIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeVariableIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Empty)+})+})+})+}\n    {+(Empty)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Empty)+})+})+})+}\n    {+(Statements)+})+}\n  {+(TypeClassInstance\n    {+(TypeClassIdentifier)+}\n    {+(Instance\n      {+(Array\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Empty)+})+})+})+}\n    {+(Empty)+})+}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(TypeConstructorIdentifier)-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(TypeConstructorIdentifier)-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Tuple\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Tuple\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Tuple\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(FunctionType\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(FunctionType\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(FunctionType\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(TypeConstructorIdentifier)-})-}\n    {-(Statements\n      {-(Function\n        {-(VariableIdentifier)-}\n        {-(ConstructorPattern\n          {-(Statements\n            {-(ConstructorIdentifier)-}\n            {-(ConstructorIdentifier)-})-})-}\n        {-(ConstructorPattern\n          {-(Statements\n            {-(ConstructorIdentifier)-}\n            {-(ConstructorIdentifier)-})-})-}\n        {-(Statements\n          {-(ConstructorIdentifier)-})-})-})-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(TypeConstructorIdentifier)-})-}\n    {-(Statements\n      {-(Function\n        {-(VariableIdentifier)-}\n        {-(ConstructorPattern\n          {-(Statements\n            {-(ConstructorIdentifier)-}\n            {-(ConstructorIdentifier)-})-})-}\n        {-(ConstructorPattern\n          {-(Statements\n            {-(ConstructorIdentifier)-}\n            {-(ConstructorIdentifier)-})-})-}\n        {-(Statements\n          {-(ConstructorIdentifier)-})-})-})-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(TupleConstructor)-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(TupleConstructor)-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(TupleConstructor)-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Tuple\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeVariableIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Tuple\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeVariableIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Tuple\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeVariableIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Empty)-})-})-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(Tuple\n            {-(Type\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeParameters)-}\n              {-(Empty)-})-}\n            {-(Type\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeParameters\n                {-(TypeVariableIdentifier)-}\n                {-(TypeVariableIdentifier)-})-}\n              {-(Empty)-})-})-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(Tuple\n            {-(Type\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeParameters)-}\n              {-(Empty)-})-}\n            {-(Type\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeParameters\n                {-(TypeVariableIdentifier)-}\n                {-(TypeVariableIdentifier)-})-}\n              {-(Empty)-})-})-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(Tuple\n            {-(Type\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeParameters)-}\n              {-(Empty)-})-}\n            {-(Type\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeParameters\n                {-(TypeVariableIdentifier)-}\n                {-(TypeVariableIdentifier)-})-}\n              {-(Empty)-})-})-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeVariableIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeVariableIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeVariableIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Empty)-})-})-})-}\n    {-(Empty)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Empty)-})-})-})-}\n    {-(Statements)-})-}\n  {-(TypeClassInstance\n    {-(TypeClassIdentifier)-}\n    {-(Instance\n      {-(Array\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Empty)-})-})-})-}\n    {-(Empty)-})-}\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (Array\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))))))\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (Tuple\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))))))\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements))\n    (TypeClassInstance\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (Instance\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Statements\n        (TypeSignature\n          (VariableIdentifier)\n          (Context'\n            (Class\n              (TypeClassIdentifier)\n              (TypeVariableIdentifier)))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n          (VariableIdentifier)\n          (Context'\n            (Statements\n              (Class\n                (TypeClassIdentifier)\n                (TypeVariableIdentifier))\n              (Class\n                (TypeClassIdentifier)\n                (TypeVariableIdentifier))))\n          (FunctionType\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeVariableIdentifier))\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (TypeConstructorIdentifier)\n                  (TypeVariableIdentifier))\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (Statements\n                    (TypeConstructorIdentifier)\n                    (TypeConstructorIdentifier)\n                    (TypeVariableIdentifier)))\n                (Empty)))))))\n    (TypeClassInstance\n      (Context'\n        (Class\n        { (TypeClassIdentifier)\n        ->(TypeClassIdentifier) }\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (Instance\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)\n            (QuotedName\n              (ListConstructor)))\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier))))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (EqualityConstraint\n          (Class\n          { (TypeClassIdentifier)\n          ->(TypeClassIdentifier) }\n            (TypeVariableIdentifier))\n        { (TypeVariableIdentifier)\n        ->(TypeVariableIdentifier) }))\n      (TypeClassIdentifier)\n      (Instance\n        (TypeVariableIdentifier))\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (Statements\n            (VariableIdentifier)))\n        (Function\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (VariableIdentifier)))\n          (VariableOperator\n            (VariableSymbol))\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (VariableIdentifier)))\n          (Statements\n            (App\n              (ConstructorIdentifier)\n              (Empty)\n              (InfixOperatorApp\n                (VariableIdentifier)\n                (Empty)\n                (VariableOperator\n                  (VariableSymbol))\n                (VariableIdentifier)))))))\n    (TypeClassInstance\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (Instance\n        (InfixOperatorPattern\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (ConstructorOperator\n            (ConstructorSymbol))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Statements\n        {-(Statements\n          {-(TypeConstructorIdentifier)-}\n          {-(ConstructorOperator\n            {-(ConstructorSymbol)-})-}\n          {-(TypeVariableIdentifier)-})-}\n          (Statements\n            (TypeConstructorIdentifier)\n            (ConstructorOperator\n              (ConstructorSymbol))\n            (TypeVariableIdentifier))\n        {+(Statements\n          {+(TypeConstructorIdentifier)+}\n          {+(ConstructorOperator\n            {+(ConstructorSymbol)+})+}\n          {+(TypeVariableIdentifier)+})+}))\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (Instance\n        (Statements\n          (Statements\n            (TypeConstructorIdentifier)\n          { (TypeVariableIdentifier)\n          ->(TypeVariableIdentifier) })\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }))\n      (Statements))\n    (TypeClassInstance\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (Instance\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (LabeledPattern\n            (Statements\n              (QualifiedConstructorIdentifier\n              { (ModuleIdentifier)\n              ->(ModuleIdentifier) }\n              { (ConstructorIdentifier)\n              ->(ConstructorIdentifier) })\n              (RecordWildCards)))\n          (Statements\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }))))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (ConstructorPattern\n            (Statements\n            { (ConstructorIdentifier)\n            ->(ConstructorIdentifier) }\n              (ConstructorIdentifier)))\n          (ConstructorPattern\n            (Statements\n            { (ConstructorIdentifier)\n            ->(ConstructorIdentifier) }\n              (ConstructorIdentifier)))\n          (Statements\n            (ConstructorIdentifier)))))\n    (TypeClassInstance\n      (ScopedTypeVariables\n        (Statements\n          (TypeVariableIdentifier)\n        {+(TypeVariableIdentifier)+}\n          (TypeVariableIdentifier)\n        {-(TypeVariableIdentifier)-}))\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n          { (TypeVariableIdentifier)\n          ->(TypeVariableIdentifier) })\n          (Class\n            (TypeClassIdentifier)\n          { (TypeVariableIdentifier)\n          ->(TypeVariableIdentifier) })))\n    { (TypeClassIdentifier)\n    ->(TypeClassIdentifier) }\n      (Instance\n        (Statements\n          (Statements\n            (TypeConstructorIdentifier)\n          { (TypeVariableIdentifier)\n          ->(TypeVariableIdentifier) })\n        { (TypeVariableIdentifier)\n        ->(TypeVariableIdentifier) }))\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (Statements\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (ConstructorIdentifier))))))\n    (Context\n      (Comment)\n      (TypeClassInstance\n        (TypeClassIdentifier)\n        (Instance\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) })\n        (Statements\n          (Function\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }\n            (Statements\n            { (VariableIdentifier)\n            ->(VariableIdentifier) })))))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Statements\n        (Function\n        { (VariableIdentifier)\n        ->(VariableIdentifier) }\n          (Statements\n          { (VariableIdentifier)\n          ->(VariableIdentifier) }))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-class-instance-declarations.parseA.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Tuple\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Tuple\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Tuple\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (FunctionType\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (FunctionType\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (FunctionType\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (ConstructorIdentifier)))\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (ConstructorIdentifier)))\n          (Statements\n            (ConstructorIdentifier)))))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (ConstructorIdentifier)))\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (ConstructorIdentifier)))\n          (Statements\n            (ConstructorIdentifier)))))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TupleConstructor))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TupleConstructor))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TupleConstructor))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Tuple\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Tuple\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Tuple\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (Tuple\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (TypeVariableIdentifier)\n                  (TypeVariableIdentifier))\n                (Empty)))\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (Tuple\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (TypeVariableIdentifier)\n                  (TypeVariableIdentifier))\n                (Empty)))\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (Tuple\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (TypeVariableIdentifier)\n                  (TypeVariableIdentifier))\n                (Empty)))\n            (TypeParameters)\n            (Empty))))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeConstructorIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeConstructorIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeConstructorIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))))\n      (Empty))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (Array\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))))))\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (Tuple\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))))))\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements\n        (TypeSignature\n          (VariableIdentifier)\n          (Context'\n            (Class\n              (TypeClassIdentifier)\n              (TypeVariableIdentifier)))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n          (VariableIdentifier)\n          (Context'\n            (Statements\n              (Class\n                (TypeClassIdentifier)\n                (TypeVariableIdentifier))\n              (Class\n                (TypeClassIdentifier)\n                (TypeVariableIdentifier))))\n          (FunctionType\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeVariableIdentifier))\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (TypeConstructorIdentifier)\n                  (TypeVariableIdentifier))\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (Statements\n                    (TypeConstructorIdentifier)\n                    (TypeConstructorIdentifier)\n                    (TypeVariableIdentifier)))\n                (Empty)))))))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)\n            (QuotedName\n              (ListConstructor)))\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier))))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (EqualityConstraint\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Instance\n        (TypeVariableIdentifier))\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (Statements\n            (VariableIdentifier)))\n        (Function\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (VariableIdentifier)))\n          (VariableOperator\n            (VariableSymbol))\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (VariableIdentifier)))\n          (Statements\n            (App\n              (ConstructorIdentifier)\n              (Empty)\n              (InfixOperatorApp\n                (VariableIdentifier)\n                (Empty)\n                (VariableOperator\n                  (VariableSymbol))\n                (VariableIdentifier)))))))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (InfixOperatorPattern\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (ConstructorOperator\n            (ConstructorSymbol))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Statements\n          (Statements\n            (TypeConstructorIdentifier)\n            (ConstructorOperator\n              (ConstructorSymbol))\n            (TypeVariableIdentifier))\n          (Statements\n            (TypeConstructorIdentifier)\n            (ConstructorOperator\n              (ConstructorSymbol))\n            (TypeVariableIdentifier))))\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier))\n          (TypeConstructorIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (LabeledPattern\n            (Statements\n              (QualifiedConstructorIdentifier\n                (ModuleIdentifier)\n                (ConstructorIdentifier))\n              (RecordWildCards)))\n          (Statements\n            (VariableIdentifier)))))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (ConstructorIdentifier)))\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (ConstructorIdentifier)))\n          (Statements\n            (ConstructorIdentifier)))))\n    (TypeClassInstance\n      (ScopedTypeVariables\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier))\n          (TypeVariableIdentifier)))\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (Statements\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (ConstructorIdentifier))))))\n    (Context\n      (Comment)\n      (TypeClassInstance\n        (TypeClassIdentifier)\n        (Instance\n          (TypeConstructorIdentifier))\n        (Statements\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (VariableIdentifier))))))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (Statements\n            (VariableIdentifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-class-instance-declarations.parseB.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Tuple\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Tuple\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Tuple\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (FunctionType\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (FunctionType\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (FunctionType\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (ConstructorIdentifier)))\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (ConstructorIdentifier)))\n          (Statements\n            (ConstructorIdentifier)))))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (ConstructorIdentifier)))\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (ConstructorIdentifier)))\n          (Statements\n            (ConstructorIdentifier)))))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TupleConstructor))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TupleConstructor))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TupleConstructor))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Tuple\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Tuple\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Tuple\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (Tuple\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (TypeVariableIdentifier)\n                  (TypeVariableIdentifier))\n                (Empty)))\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (Tuple\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (TypeVariableIdentifier)\n                  (TypeVariableIdentifier))\n                (Empty)))\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (Tuple\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (TypeVariableIdentifier)\n                  (TypeVariableIdentifier))\n                (Empty)))\n            (TypeParameters)\n            (Empty))))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))))\n      (Empty))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeConstructorIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeConstructorIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeConstructorIdentifier)\n              (TypeVariableIdentifier))\n            (Empty))))\n      (Empty))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (Array\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))))))\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (Tuple\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))))))\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements\n        (TypeSignature\n          (VariableIdentifier)\n          (Context'\n            (Class\n              (TypeClassIdentifier)\n              (TypeVariableIdentifier)))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeVariableIdentifier)\n                (TypeParameters)\n                (Empty)))))\n        (TypeSignature\n          (VariableIdentifier)\n          (Context'\n            (Statements\n              (Class\n                (TypeClassIdentifier)\n                (TypeVariableIdentifier))\n              (Class\n                (TypeClassIdentifier)\n                (TypeVariableIdentifier))))\n          (FunctionType\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeVariableIdentifier))\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (TypeConstructorIdentifier)\n                  (TypeVariableIdentifier))\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (Statements\n                    (TypeConstructorIdentifier)\n                    (TypeConstructorIdentifier)\n                    (TypeVariableIdentifier)))\n                (Empty)))))))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)\n            (QuotedName\n              (ListConstructor)))\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier))))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (EqualityConstraint\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (TypeVariableIdentifier)))\n      (TypeClassIdentifier)\n      (Instance\n        (TypeVariableIdentifier))\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (Statements\n            (VariableIdentifier)))\n        (Function\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (VariableIdentifier)))\n          (VariableOperator\n            (VariableSymbol))\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (VariableIdentifier)))\n          (Statements\n            (App\n              (ConstructorIdentifier)\n              (Empty)\n              (InfixOperatorApp\n                (VariableIdentifier)\n                (Empty)\n                (VariableOperator\n                  (VariableSymbol))\n                (VariableIdentifier)))))))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (InfixOperatorPattern\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (ConstructorOperator\n            (ConstructorSymbol))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (Statements))\n    (TypeClassInstance\n      (Context'\n        (Statements\n          (Statements\n            (TypeConstructorIdentifier)\n            (ConstructorOperator\n              (ConstructorSymbol))\n            (TypeVariableIdentifier))\n          (Statements\n            (TypeConstructorIdentifier)\n            (ConstructorOperator\n              (ConstructorSymbol))\n            (TypeVariableIdentifier))))\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier))\n          (TypeConstructorIdentifier)))\n      (Statements))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (LabeledPattern\n            (Statements\n              (QualifiedConstructorIdentifier\n                (ModuleIdentifier)\n                (ConstructorIdentifier))\n              (RecordWildCards)))\n          (Statements\n            (VariableIdentifier)))))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (ConstructorIdentifier)))\n          (ConstructorPattern\n            (Statements\n              (ConstructorIdentifier)\n              (ConstructorIdentifier)))\n          (Statements\n            (ConstructorIdentifier)))))\n    (TypeClassInstance\n      (ScopedTypeVariables\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (TypeClassIdentifier)\n      (Instance\n        (Statements\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier))\n          (TypeVariableIdentifier)))\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (Statements\n            (InfixOperatorApp\n              (VariableIdentifier)\n              (Empty)\n              (VariableOperator\n                (VariableSymbol))\n              (ConstructorIdentifier))))))\n    (Context\n      (Comment)\n      (TypeClassInstance\n        (TypeClassIdentifier)\n        (Instance\n          (TypeConstructorIdentifier))\n        (Statements\n          (Function\n            (VariableIdentifier)\n            (Statements\n              (VariableIdentifier))))))\n    (TypeClassInstance\n      (TypeClassIdentifier)\n      (Instance\n        (TypeConstructorIdentifier))\n      (Statements\n        (Function\n          (VariableIdentifier)\n          (Statements\n            (VariableIdentifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-family-declarations.A.hs",
    "content": "type family Foo bar where\n  Bar = Wiz\n  Baz = 'Custom\n  Bar.Baz a = 'Custom\n  Bar.Baz (A a) = 'Custom\n\ntype family F a :: *\ntype instance F [Int] = Int\ntype instance F String = Char\n\ntype family Bar (baz :: [(* -> *) -> Wiz]) (foo :: * -> *) :: Wiz where\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-family-declarations.B.hs",
    "content": "type family Baz bar where\n  Baz = Wiz\n  Bar = 'Custom\n  Baz.Bar a = 'Custom\n  Baz.Bar (B b) = 'Custom\n\ntype family F b :: *\ntype instance F [String] = Int\ntype instance F Char = Char\n\ntype family Baz (bar :: [(* -> *) -> Waz]) (faz :: * -> *) :: Waz where\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-family-declarations.diffA-B.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeFamily\n    { (TypeConstructorIdentifier)\n    ->(TypeConstructorIdentifier) }\n      (TypeVariableIdentifier)\n      (Empty)\n      (Statements\n      {-(Function\n        {-(ConstructorIdentifier)-}\n        {-(Statements\n          {-(ConstructorIdentifier)-})-})-}\n        (Function\n          (ConstructorIdentifier)\n          (Statements\n          {+(ConstructorIdentifier)+}\n          {-(QuotedName\n            {-(TypeConstructorIdentifier)-})-}))\n      {+(Function\n        {+(ConstructorIdentifier)+}\n        {+(Statements\n          {+(QuotedName\n            {+(TypeConstructorIdentifier)+})+})+})+}\n        (Function\n          (ConstructorPattern\n            (Statements\n              (QualifiedConstructorIdentifier\n              { (ModuleIdentifier)\n              ->(ModuleIdentifier) }\n              { (ConstructorIdentifier)\n              ->(ConstructorIdentifier) })\n              (VariableIdentifier)))\n          (Statements\n            (QuotedName\n              (TypeConstructorIdentifier))))\n        (Function\n          (ConstructorPattern\n            (Statements\n              (QualifiedConstructorIdentifier\n              { (ModuleIdentifier)\n              ->(ModuleIdentifier) }\n              { (ConstructorIdentifier)\n              ->(ConstructorIdentifier) })\n              (ConstructorPattern\n                (Statements\n                { (ConstructorIdentifier)\n                ->(ConstructorIdentifier) }\n                { (VariableIdentifier)\n                ->(VariableIdentifier) }))))\n          (Statements\n            (QuotedName\n              (TypeConstructorIdentifier))))))\n    (TypeFamily\n      (TypeConstructorIdentifier)\n    { (TypeVariableIdentifier)\n    ->(TypeVariableIdentifier) }\n      (KindSignature\n        (Star))\n      (Empty))\n    (TypeInstance\n      (Statements\n        (TypeConstructorIdentifier)\n        (Array\n          (Type\n          { (TypeConstructorIdentifier)\n          ->(TypeConstructorIdentifier) }\n            (TypeParameters)\n            (Empty))))\n      (TypePattern\n        (TypeConstructorIdentifier)))\n    (TypeInstance\n      (Statements\n        (TypeConstructorIdentifier)\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (TypePattern\n        (TypeConstructorIdentifier)))\n    (TypeFamily\n    { (TypeConstructorIdentifier)\n    ->(TypeConstructorIdentifier) }\n      (AnnotatedTypeVariable\n      { (TypeVariableIdentifier)\n      ->(TypeVariableIdentifier) }\n        (KindListType\n          (KindFunctionType\n            (Kind\n              (KindParenthesizedConstructor\n                (KindFunctionType\n                  (Kind\n                    (Star))\n                  (Kind\n                    (Star)))))\n          { (TypeConstructorIdentifier)\n          ->(TypeConstructorIdentifier) })))\n      (AnnotatedTypeVariable\n      { (TypeVariableIdentifier)\n      ->(TypeVariableIdentifier) }\n        (KindFunctionType\n          (Kind\n            (Star))\n          (Kind\n            (Star))))\n      (TypeSignature\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Statements))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-family-declarations.diffB-A.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeFamily\n    { (TypeConstructorIdentifier)\n    ->(TypeConstructorIdentifier) }\n      (TypeVariableIdentifier)\n      (Empty)\n      (Statements\n      {-(Function\n        {-(ConstructorIdentifier)-}\n        {-(Statements\n          {-(ConstructorIdentifier)-})-})-}\n        (Function\n          (ConstructorIdentifier)\n          (Statements\n          {+(ConstructorIdentifier)+}\n          {-(QuotedName\n            {-(TypeConstructorIdentifier)-})-}))\n      {+(Function\n        {+(ConstructorIdentifier)+}\n        {+(Statements\n          {+(QuotedName\n            {+(TypeConstructorIdentifier)+})+})+})+}\n        (Function\n          (ConstructorPattern\n            (Statements\n              (QualifiedConstructorIdentifier\n              { (ModuleIdentifier)\n              ->(ModuleIdentifier) }\n              { (ConstructorIdentifier)\n              ->(ConstructorIdentifier) })\n              (VariableIdentifier)))\n          (Statements\n            (QuotedName\n              (TypeConstructorIdentifier))))\n        (Function\n          (ConstructorPattern\n            (Statements\n              (QualifiedConstructorIdentifier\n              { (ModuleIdentifier)\n              ->(ModuleIdentifier) }\n              { (ConstructorIdentifier)\n              ->(ConstructorIdentifier) })\n              (ConstructorPattern\n                (Statements\n                { (ConstructorIdentifier)\n                ->(ConstructorIdentifier) }\n                { (VariableIdentifier)\n                ->(VariableIdentifier) }))))\n          (Statements\n            (QuotedName\n              (TypeConstructorIdentifier))))))\n    (TypeFamily\n      (TypeConstructorIdentifier)\n    { (TypeVariableIdentifier)\n    ->(TypeVariableIdentifier) }\n      (KindSignature\n        (Star))\n      (Empty))\n    (TypeInstance\n      (Statements\n        (TypeConstructorIdentifier)\n        (Array\n          (Type\n          { (TypeConstructorIdentifier)\n          ->(TypeConstructorIdentifier) }\n            (TypeParameters)\n            (Empty))))\n      (TypePattern\n        (TypeConstructorIdentifier)))\n    (TypeInstance\n      (Statements\n        (TypeConstructorIdentifier)\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (TypePattern\n        (TypeConstructorIdentifier)))\n    (TypeFamily\n    { (TypeConstructorIdentifier)\n    ->(TypeConstructorIdentifier) }\n      (AnnotatedTypeVariable\n      { (TypeVariableIdentifier)\n      ->(TypeVariableIdentifier) }\n        (KindListType\n          (KindFunctionType\n            (Kind\n              (KindParenthesizedConstructor\n                (KindFunctionType\n                  (Kind\n                    (Star))\n                  (Kind\n                    (Star)))))\n          { (TypeConstructorIdentifier)\n          ->(TypeConstructorIdentifier) })))\n      (AnnotatedTypeVariable\n      { (TypeVariableIdentifier)\n      ->(TypeVariableIdentifier) }\n        (KindFunctionType\n          (Kind\n            (Star))\n          (Kind\n            (Star))))\n      (TypeSignature\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Statements))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-family-declarations.parseA.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeFamily\n      (TypeConstructorIdentifier)\n      (TypeVariableIdentifier)\n      (Empty)\n      (Statements\n        (Function\n          (ConstructorIdentifier)\n          (Statements\n            (ConstructorIdentifier)))\n        (Function\n          (ConstructorIdentifier)\n          (Statements\n            (QuotedName\n              (TypeConstructorIdentifier))))\n        (Function\n          (ConstructorPattern\n            (Statements\n              (QualifiedConstructorIdentifier\n                (ModuleIdentifier)\n                (ConstructorIdentifier))\n              (VariableIdentifier)))\n          (Statements\n            (QuotedName\n              (TypeConstructorIdentifier))))\n        (Function\n          (ConstructorPattern\n            (Statements\n              (QualifiedConstructorIdentifier\n                (ModuleIdentifier)\n                (ConstructorIdentifier))\n              (ConstructorPattern\n                (Statements\n                  (ConstructorIdentifier)\n                  (VariableIdentifier)))))\n          (Statements\n            (QuotedName\n              (TypeConstructorIdentifier))))))\n    (TypeFamily\n      (TypeConstructorIdentifier)\n      (TypeVariableIdentifier)\n      (KindSignature\n        (Star))\n      (Empty))\n    (TypeInstance\n      (Statements\n        (TypeConstructorIdentifier)\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (TypePattern\n        (TypeConstructorIdentifier)))\n    (TypeInstance\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (TypeConstructorIdentifier)))\n    (TypeFamily\n      (TypeConstructorIdentifier)\n      (AnnotatedTypeVariable\n        (TypeVariableIdentifier)\n        (KindListType\n          (KindFunctionType\n            (Kind\n              (KindParenthesizedConstructor\n                (KindFunctionType\n                  (Kind\n                    (Star))\n                  (Kind\n                    (Star)))))\n            (TypeConstructorIdentifier))))\n      (AnnotatedTypeVariable\n        (TypeVariableIdentifier)\n        (KindFunctionType\n          (Kind\n            (Star))\n          (Kind\n            (Star))))\n      (TypeSignature\n        (TypeConstructorIdentifier))\n      (Statements))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-family-declarations.parseB.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeFamily\n      (TypeConstructorIdentifier)\n      (TypeVariableIdentifier)\n      (Empty)\n      (Statements\n        (Function\n          (ConstructorIdentifier)\n          (Statements\n            (ConstructorIdentifier)))\n        (Function\n          (ConstructorIdentifier)\n          (Statements\n            (QuotedName\n              (TypeConstructorIdentifier))))\n        (Function\n          (ConstructorPattern\n            (Statements\n              (QualifiedConstructorIdentifier\n                (ModuleIdentifier)\n                (ConstructorIdentifier))\n              (VariableIdentifier)))\n          (Statements\n            (QuotedName\n              (TypeConstructorIdentifier))))\n        (Function\n          (ConstructorPattern\n            (Statements\n              (QualifiedConstructorIdentifier\n                (ModuleIdentifier)\n                (ConstructorIdentifier))\n              (ConstructorPattern\n                (Statements\n                  (ConstructorIdentifier)\n                  (VariableIdentifier)))))\n          (Statements\n            (QuotedName\n              (TypeConstructorIdentifier))))))\n    (TypeFamily\n      (TypeConstructorIdentifier)\n      (TypeVariableIdentifier)\n      (KindSignature\n        (Star))\n      (Empty))\n    (TypeInstance\n      (Statements\n        (TypeConstructorIdentifier)\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters)\n            (Empty))))\n      (TypePattern\n        (TypeConstructorIdentifier)))\n    (TypeInstance\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (TypeConstructorIdentifier)))\n    (TypeFamily\n      (TypeConstructorIdentifier)\n      (AnnotatedTypeVariable\n        (TypeVariableIdentifier)\n        (KindListType\n          (KindFunctionType\n            (Kind\n              (KindParenthesizedConstructor\n                (KindFunctionType\n                  (Kind\n                    (Star))\n                  (Kind\n                    (Star)))))\n            (TypeConstructorIdentifier))))\n      (AnnotatedTypeVariable\n        (TypeVariableIdentifier)\n        (KindFunctionType\n          (Kind\n            (Star))\n          (Kind\n            (Star))))\n      (TypeSignature\n        (TypeConstructorIdentifier))\n      (Statements))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-signatures.A.hs",
    "content": "bar :: a -> b -> c -> Int -> Maybe Int\nbar :: a -> b -> c -> [Int] -> Maybe Int\nfactorial :: Num a => Show a => a -> a\n\nf :: Ex -> Ex\nf :: [Int] -> Int\nf :: (Int, Int) -> Maybe Int\nf :: a -> B c (D (E g ': h)) -> I [J k] (L m (N (O p ': q)))\n\nf :: forall a. [a] -> [a]\nf :: forall a b. (a, b) -> [a]\napply :: proxy c -> (forall g . c g => g a -> b) -> Union fs a -> b\n\nf :: a ~ Int => a\nf :: (a ~ Int) => a\nsumCollects :: forall c1 c2. (B c1, B c2, E c1 ~ E c2) => c1 -> c2 -> c2\n\nfoo :: (Bar m) => Baz [Fiz Fuzz, Wiz, Wax, Woz] bar => a -> Baz m\nbar :: (Baz '[Foo Wix a] biz, Waz woo) => Out a -> [Foo] -> Baz biz Waz\n\nfoo :: (f :< Bar) => Bar -> f\nyield :: ((Yield a b) :< e) => a\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-signatures.B.hs",
    "content": "foo :: a -> b -> c -> Int -> Maybe Int\nfactorial :: Num a => a -> a\n\ng :: Ex -> Foo\ng :: [Double] -> Int\ng :: (Double, Int) -> Maybe Double\ng :: b -> B a (D (E g ': h)) -> I [J k] (L m (O (N p ': q)))\n\ng :: forall a. [a] -> [a]\ng :: forall a b. (a, b) -> [a]\napply :: proxy d -> (forall g . d g => g a -> b) -> Union fs a -> b\n\ng :: a ~ Int => a\ng :: (a ~ Int) => a\nsumCollects :: forall d1 d2. (B d1, B d2, E d1 ~ E d2) => d1 -> d2 -> d2\n\nbar :: (Bar m) => Baz [Fiz Fuzz, Wiz, Wax, Woz] bar => a -> Waz m\nfoo :: (Baz '[Foo Wix a] biz, Waz woo) => Out a -> [Foo] -> Waz biz Baz\n\nbar :: (f :< Bar) => Bar -> f\nyield :: ((Yield b c) :< e) => b\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-signatures.diffA-B.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeSignature\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (FunctionType\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))\n        (FunctionType\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (TypeConstructorIdentifier))\n                (Empty)))))))\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(Context'\n      {+(Class\n        {+(TypeClassIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(FunctionType\n      {+(Type\n        {+(TypeVariableIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(Type\n        {+(TypeVariableIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(FunctionType\n      {+(Type\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(Type\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(FunctionType\n      {+(Type\n        {+(Array\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(Type\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(FunctionType\n      {+(Type\n        {+(Tuple\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+}\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(Type\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeParameters\n          {+(TypeConstructorIdentifier)+})+}\n        {+(Empty)+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(FunctionType\n      {+(Type\n        {+(TypeVariableIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(FunctionType\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeVariableIdentifier)+}\n            {+(Statements\n              {+(TypeConstructorIdentifier)+}\n              {+(InfixOperatorPattern\n                {+(Type\n                  {+(TypeConstructorIdentifier)+}\n                  {+(TypeParameters\n                    {+(TypeVariableIdentifier)+})+}\n                  {+(Empty)+})+}\n                {+(TypeOperator)+}\n                {+(Type\n                  {+(TypeVariableIdentifier)+}\n                  {+(TypeParameters)+}\n                  {+(Empty)+})+})+})+})+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(Array\n              {+(Type\n                {+(TypeConstructorIdentifier)+}\n                {+(TypeParameters\n                  {+(TypeVariableIdentifier)+})+}\n                {+(Empty)+})+})+}\n            {+(Statements\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeVariableIdentifier)+}\n              {+(Statements\n                {+(TypeConstructorIdentifier)+}\n                {+(InfixOperatorPattern\n                  {+(Type\n                    {+(TypeConstructorIdentifier)+}\n                    {+(TypeParameters\n                      {+(TypeVariableIdentifier)+})+}\n                    {+(Empty)+})+}\n                  {+(TypeOperator)+}\n                  {+(Type\n                    {+(TypeVariableIdentifier)+}\n                    {+(TypeParameters)+}\n                    {+(Empty)+})+})+})+})+})+}\n          {+(Empty)+})+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(ScopedTypeVariables\n      {+(TypeVariableIdentifier)+})+}\n    {+(FunctionType\n      {+(Type\n        {+(Array\n          {+(Type\n            {+(TypeVariableIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(Type\n        {+(Array\n          {+(Type\n            {+(TypeVariableIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(ScopedTypeVariables\n      {+(Statements\n        {+(TypeVariableIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(FunctionType\n      {+(Type\n        {+(Tuple\n          {+(Type\n            {+(TypeVariableIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+}\n          {+(Type\n            {+(TypeVariableIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(Type\n        {+(Array\n          {+(Type\n            {+(TypeVariableIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(FunctionType\n      {+(Type\n        {+(TypeVariableIdentifier)+}\n        {+(TypeParameters\n          {+(TypeVariableIdentifier)+})+}\n        {+(Empty)+})+}\n      {+(FunctionType\n        {+(Type\n          {+(Statements\n            {+(ScopedTypeVariables\n              {+(TypeVariableIdentifier)+})+}\n            {+(Context'\n              {+(Statements\n                {+(TypeVariableIdentifier)+}\n                {+(TypeVariableIdentifier)+})+})+}\n            {+(FunctionType\n              {+(Type\n                {+(TypeVariableIdentifier)+}\n                {+(TypeParameters\n                  {+(TypeVariableIdentifier)+})+}\n                {+(Empty)+})+}\n              {+(Type\n                {+(TypeVariableIdentifier)+}\n                {+(TypeParameters)+}\n                {+(Empty)+})+})+})+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(FunctionType\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters\n              {+(TypeVariableIdentifier)+}\n              {+(TypeVariableIdentifier)+})+}\n            {+(Empty)+})+}\n          {+(Type\n            {+(TypeVariableIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(Context'\n      {+(EqualityConstraint\n        {+(TypeVariableIdentifier)+}\n        {+(TypeConstructorIdentifier)+})+})+}\n    {+(TypeVariableIdentifier)+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(Context'\n      {+(EqualityConstraint\n        {+(TypeVariableIdentifier)+}\n        {+(TypeConstructorIdentifier)+})+})+}\n    {+(TypeVariableIdentifier)+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(ScopedTypeVariables\n      {+(Statements\n        {+(TypeVariableIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(Context'\n      {+(Statements\n        {+(Class\n          {+(TypeClassIdentifier)+}\n          {+(TypeVariableIdentifier)+})+}\n        {+(Class\n          {+(TypeClassIdentifier)+}\n          {+(TypeVariableIdentifier)+})+}\n        {+(EqualityConstraint\n          {+(Class\n            {+(TypeClassIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Class\n            {+(TypeClassIdentifier)+}\n            {+(TypeVariableIdentifier)+})+})+})+})+}\n    {+(FunctionType\n      {+(Type\n        {+(TypeVariableIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(FunctionType\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(Context'\n      {+(Class\n        {+(TypeClassIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(Context'\n      {+(Class\n        {+(TypeClassIdentifier)+}\n        {+(Array\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters\n              {+(TypeConstructorIdentifier)+})+}\n            {+(Empty)+})+}\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+}\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+}\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(FunctionType\n      {+(Type\n        {+(TypeVariableIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(Type\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeParameters\n          {+(TypeVariableIdentifier)+})+}\n        {+(Empty)+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(Context'\n      {+(Statements\n        {+(Class\n          {+(TypeClassIdentifier)+}\n          {+(QuotedName\n            {+(Array\n              {+(Type\n                {+(TypeConstructorIdentifier)+}\n                {+(TypeParameters\n                  {+(TypeConstructorIdentifier)+}\n                  {+(TypeVariableIdentifier)+})+}\n                {+(Empty)+})+})+})+}\n          {+(TypeVariableIdentifier)+})+}\n        {+(Class\n          {+(TypeClassIdentifier)+}\n          {+(TypeVariableIdentifier)+})+})+})+}\n    {+(FunctionType\n      {+(Type\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeParameters\n          {+(TypeVariableIdentifier)+})+}\n        {+(Empty)+})+}\n      {+(FunctionType\n        {+(Type\n          {+(Array\n            {+(Type\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeParameters)+}\n              {+(Empty)+})+})+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeVariableIdentifier)+}\n            {+(TypeConstructorIdentifier)+})+}\n          {+(Empty)+})+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(Context'\n      {+(Statements\n        {+(TypeVariableIdentifier)+}\n        {+(ConstructorOperator\n          {+(ConstructorSymbol)+})+}\n        {+(TypeConstructorIdentifier)+})+})+}\n    {+(FunctionType\n      {+(Type\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(Type\n        {+(TypeVariableIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(Context'\n      {+(Statements\n        {+(Class\n          {+(TypeClassIdentifier)+}\n          {+(TypeVariableIdentifier)+}\n          {+(TypeVariableIdentifier)+})+}\n        {+(ConstructorOperator\n          {+(ConstructorSymbol)+})+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(TypeVariableIdentifier)+})+}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(FunctionType\n      {-(Type\n        {-(TypeVariableIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(FunctionType\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(FunctionType\n          {-(Type\n            {-(TypeVariableIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-}\n          {-(FunctionType\n            {-(Type\n              {-(Array\n                {-(Type\n                  {-(TypeConstructorIdentifier)-}\n                  {-(TypeParameters)-}\n                  {-(Empty)-})-})-}\n              {-(TypeParameters)-}\n              {-(Empty)-})-}\n            {-(Type\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeParameters\n                {-(TypeConstructorIdentifier)-})-}\n              {-(Empty)-})-})-})-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(Context'\n      {-(Class\n        {-(TypeClassIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(Context'\n      {-(Class\n        {-(TypeClassIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(FunctionType\n      {-(Type\n        {-(TypeVariableIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(Type\n        {-(TypeVariableIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(FunctionType\n      {-(Type\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(Type\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(FunctionType\n      {-(Type\n        {-(Array\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(Type\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(FunctionType\n      {-(Type\n        {-(Tuple\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-}\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(Type\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeParameters\n          {-(TypeConstructorIdentifier)-})-}\n        {-(Empty)-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(FunctionType\n      {-(Type\n        {-(TypeVariableIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(FunctionType\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeVariableIdentifier)-}\n            {-(Statements\n              {-(TypeConstructorIdentifier)-}\n              {-(InfixOperatorPattern\n                {-(Type\n                  {-(TypeConstructorIdentifier)-}\n                  {-(TypeParameters\n                    {-(TypeVariableIdentifier)-})-}\n                  {-(Empty)-})-}\n                {-(TypeOperator)-}\n                {-(Type\n                  {-(TypeVariableIdentifier)-}\n                  {-(TypeParameters)-}\n                  {-(Empty)-})-})-})-})-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(Array\n              {-(Type\n                {-(TypeConstructorIdentifier)-}\n                {-(TypeParameters\n                  {-(TypeVariableIdentifier)-})-}\n                {-(Empty)-})-})-}\n            {-(Statements\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeVariableIdentifier)-}\n              {-(Statements\n                {-(TypeConstructorIdentifier)-}\n                {-(InfixOperatorPattern\n                  {-(Type\n                    {-(TypeConstructorIdentifier)-}\n                    {-(TypeParameters\n                      {-(TypeVariableIdentifier)-})-}\n                    {-(Empty)-})-}\n                  {-(TypeOperator)-}\n                  {-(Type\n                    {-(TypeVariableIdentifier)-}\n                    {-(TypeParameters)-}\n                    {-(Empty)-})-})-})-})-})-}\n          {-(Empty)-})-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(ScopedTypeVariables\n      {-(TypeVariableIdentifier)-})-}\n    {-(FunctionType\n      {-(Type\n        {-(Array\n          {-(Type\n            {-(TypeVariableIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(Type\n        {-(Array\n          {-(Type\n            {-(TypeVariableIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(ScopedTypeVariables\n      {-(Statements\n        {-(TypeVariableIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(FunctionType\n      {-(Type\n        {-(Tuple\n          {-(Type\n            {-(TypeVariableIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-}\n          {-(Type\n            {-(TypeVariableIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(Type\n        {-(Array\n          {-(Type\n            {-(TypeVariableIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(FunctionType\n      {-(Type\n        {-(TypeVariableIdentifier)-}\n        {-(TypeParameters\n          {-(TypeVariableIdentifier)-})-}\n        {-(Empty)-})-}\n      {-(FunctionType\n        {-(Type\n          {-(Statements\n            {-(ScopedTypeVariables\n              {-(TypeVariableIdentifier)-})-}\n            {-(Context'\n              {-(Statements\n                {-(TypeVariableIdentifier)-}\n                {-(TypeVariableIdentifier)-})-})-}\n            {-(FunctionType\n              {-(Type\n                {-(TypeVariableIdentifier)-}\n                {-(TypeParameters\n                  {-(TypeVariableIdentifier)-})-}\n                {-(Empty)-})-}\n              {-(Type\n                {-(TypeVariableIdentifier)-}\n                {-(TypeParameters)-}\n                {-(Empty)-})-})-})-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(FunctionType\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters\n              {-(TypeVariableIdentifier)-}\n              {-(TypeVariableIdentifier)-})-}\n            {-(Empty)-})-}\n          {-(Type\n            {-(TypeVariableIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(Context'\n      {-(EqualityConstraint\n        {-(TypeVariableIdentifier)-}\n        {-(TypeConstructorIdentifier)-})-})-}\n    {-(TypeVariableIdentifier)-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(Context'\n      {-(EqualityConstraint\n        {-(TypeVariableIdentifier)-}\n        {-(TypeConstructorIdentifier)-})-})-}\n    {-(TypeVariableIdentifier)-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(ScopedTypeVariables\n      {-(Statements\n        {-(TypeVariableIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(Context'\n      {-(Statements\n        {-(Class\n          {-(TypeClassIdentifier)-}\n          {-(TypeVariableIdentifier)-})-}\n        {-(Class\n          {-(TypeClassIdentifier)-}\n          {-(TypeVariableIdentifier)-})-}\n        {-(EqualityConstraint\n          {-(Class\n            {-(TypeClassIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Class\n            {-(TypeClassIdentifier)-}\n            {-(TypeVariableIdentifier)-})-})-})-})-}\n    {-(FunctionType\n      {-(Type\n        {-(TypeVariableIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(FunctionType\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(Context'\n      {-(Class\n        {-(TypeClassIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(Context'\n      {-(Class\n        {-(TypeClassIdentifier)-}\n        {-(Array\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters\n              {-(TypeConstructorIdentifier)-})-}\n            {-(Empty)-})-}\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-}\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-}\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(FunctionType\n      {-(Type\n        {-(TypeVariableIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(Type\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeParameters\n          {-(TypeVariableIdentifier)-})-}\n        {-(Empty)-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(Context'\n      {-(Statements\n        {-(Class\n          {-(TypeClassIdentifier)-}\n          {-(QuotedName\n            {-(Array\n              {-(Type\n                {-(TypeConstructorIdentifier)-}\n                {-(TypeParameters\n                  {-(TypeConstructorIdentifier)-}\n                  {-(TypeVariableIdentifier)-})-}\n                {-(Empty)-})-})-})-}\n          {-(TypeVariableIdentifier)-})-}\n        {-(Class\n          {-(TypeClassIdentifier)-}\n          {-(TypeVariableIdentifier)-})-})-})-}\n    {-(FunctionType\n      {-(Type\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeParameters\n          {-(TypeVariableIdentifier)-})-}\n        {-(Empty)-})-}\n      {-(FunctionType\n        {-(Type\n          {-(Array\n            {-(Type\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeParameters)-}\n              {-(Empty)-})-})-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeVariableIdentifier)-}\n            {-(TypeConstructorIdentifier)-})-}\n          {-(Empty)-})-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(Context'\n      {-(Statements\n        {-(TypeVariableIdentifier)-}\n        {-(ConstructorOperator\n          {-(ConstructorSymbol)-})-}\n        {-(TypeConstructorIdentifier)-})-})-}\n    {-(FunctionType\n      {-(Type\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(Type\n        {-(TypeVariableIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(Context'\n      {-(Statements\n        {-(Class\n          {-(TypeClassIdentifier)-}\n          {-(TypeVariableIdentifier)-}\n          {-(TypeVariableIdentifier)-})-}\n        {-(ConstructorOperator\n          {-(ConstructorSymbol)-})-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(TypeVariableIdentifier)-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-signatures.diffB-A.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeSignature\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n      (FunctionType\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))\n        (FunctionType\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (TypeConstructorIdentifier))\n                (Empty)))))))\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(FunctionType\n      {+(Type\n        {+(TypeVariableIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(FunctionType\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(FunctionType\n          {+(Type\n            {+(TypeVariableIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+}\n          {+(FunctionType\n            {+(Type\n              {+(Array\n                {+(Type\n                  {+(TypeConstructorIdentifier)+}\n                  {+(TypeParameters)+}\n                  {+(Empty)+})+})+}\n              {+(TypeParameters)+}\n              {+(Empty)+})+}\n            {+(Type\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeParameters\n                {+(TypeConstructorIdentifier)+})+}\n              {+(Empty)+})+})+})+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(Context'\n      {+(Class\n        {+(TypeClassIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(Context'\n      {+(Class\n        {+(TypeClassIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(FunctionType\n      {+(Type\n        {+(TypeVariableIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(Type\n        {+(TypeVariableIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(FunctionType\n      {+(Type\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(Type\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+})+})+}\n    (TypeSignature\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n    {-(Context'\n      {-(Class\n        {-(TypeClassIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n      (FunctionType\n        (Type\n        { (TypeVariableIdentifier)\n        ->(Array\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+}) }\n          (TypeParameters)\n          (Empty))\n        (Type\n        { (TypeVariableIdentifier)\n        ->(TypeConstructorIdentifier) }\n          (TypeParameters)\n          (Empty))))\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(FunctionType\n      {+(Type\n        {+(Tuple\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+}\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(Type\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeParameters\n          {+(TypeConstructorIdentifier)+})+}\n        {+(Empty)+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(FunctionType\n      {+(Type\n        {+(TypeVariableIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(FunctionType\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeVariableIdentifier)+}\n            {+(Statements\n              {+(TypeConstructorIdentifier)+}\n              {+(InfixOperatorPattern\n                {+(Type\n                  {+(TypeConstructorIdentifier)+}\n                  {+(TypeParameters\n                    {+(TypeVariableIdentifier)+})+}\n                  {+(Empty)+})+}\n                {+(TypeOperator)+}\n                {+(Type\n                  {+(TypeVariableIdentifier)+}\n                  {+(TypeParameters)+}\n                  {+(Empty)+})+})+})+})+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(Array\n              {+(Type\n                {+(TypeConstructorIdentifier)+}\n                {+(TypeParameters\n                  {+(TypeVariableIdentifier)+})+}\n                {+(Empty)+})+})+}\n            {+(Statements\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeVariableIdentifier)+}\n              {+(Statements\n                {+(TypeConstructorIdentifier)+}\n                {+(InfixOperatorPattern\n                  {+(Type\n                    {+(TypeConstructorIdentifier)+}\n                    {+(TypeParameters\n                      {+(TypeVariableIdentifier)+})+}\n                    {+(Empty)+})+}\n                  {+(TypeOperator)+}\n                  {+(Type\n                    {+(TypeVariableIdentifier)+}\n                    {+(TypeParameters)+}\n                    {+(Empty)+})+})+})+})+})+}\n          {+(Empty)+})+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(ScopedTypeVariables\n      {+(TypeVariableIdentifier)+})+}\n    {+(FunctionType\n      {+(Type\n        {+(Array\n          {+(Type\n            {+(TypeVariableIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(Type\n        {+(Array\n          {+(Type\n            {+(TypeVariableIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(ScopedTypeVariables\n      {+(Statements\n        {+(TypeVariableIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(FunctionType\n      {+(Type\n        {+(Tuple\n          {+(Type\n            {+(TypeVariableIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+}\n          {+(Type\n            {+(TypeVariableIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(Type\n        {+(Array\n          {+(Type\n            {+(TypeVariableIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(FunctionType\n      {+(Type\n        {+(TypeVariableIdentifier)+}\n        {+(TypeParameters\n          {+(TypeVariableIdentifier)+})+}\n        {+(Empty)+})+}\n      {+(FunctionType\n        {+(Type\n          {+(Statements\n            {+(ScopedTypeVariables\n              {+(TypeVariableIdentifier)+})+}\n            {+(Context'\n              {+(Statements\n                {+(TypeVariableIdentifier)+}\n                {+(TypeVariableIdentifier)+})+})+}\n            {+(FunctionType\n              {+(Type\n                {+(TypeVariableIdentifier)+}\n                {+(TypeParameters\n                  {+(TypeVariableIdentifier)+})+}\n                {+(Empty)+})+}\n              {+(Type\n                {+(TypeVariableIdentifier)+}\n                {+(TypeParameters)+}\n                {+(Empty)+})+})+})+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(FunctionType\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters\n              {+(TypeVariableIdentifier)+}\n              {+(TypeVariableIdentifier)+})+}\n            {+(Empty)+})+}\n          {+(Type\n            {+(TypeVariableIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(Context'\n      {+(EqualityConstraint\n        {+(TypeVariableIdentifier)+}\n        {+(TypeConstructorIdentifier)+})+})+}\n    {+(TypeVariableIdentifier)+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(Context'\n      {+(EqualityConstraint\n        {+(TypeVariableIdentifier)+}\n        {+(TypeConstructorIdentifier)+})+})+}\n    {+(TypeVariableIdentifier)+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(ScopedTypeVariables\n      {+(Statements\n        {+(TypeVariableIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(Context'\n      {+(Statements\n        {+(Class\n          {+(TypeClassIdentifier)+}\n          {+(TypeVariableIdentifier)+})+}\n        {+(Class\n          {+(TypeClassIdentifier)+}\n          {+(TypeVariableIdentifier)+})+}\n        {+(EqualityConstraint\n          {+(Class\n            {+(TypeClassIdentifier)+}\n            {+(TypeVariableIdentifier)+})+}\n          {+(Class\n            {+(TypeClassIdentifier)+}\n            {+(TypeVariableIdentifier)+})+})+})+})+}\n    {+(FunctionType\n      {+(Type\n        {+(TypeVariableIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(FunctionType\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeVariableIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(Context'\n      {+(Class\n        {+(TypeClassIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(Context'\n      {+(Class\n        {+(TypeClassIdentifier)+}\n        {+(Array\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters\n              {+(TypeConstructorIdentifier)+})+}\n            {+(Empty)+})+}\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+}\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+}\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+})+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(FunctionType\n      {+(Type\n        {+(TypeVariableIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(Type\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeParameters\n          {+(TypeVariableIdentifier)+})+}\n        {+(Empty)+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(Context'\n      {+(Statements\n        {+(Class\n          {+(TypeClassIdentifier)+}\n          {+(QuotedName\n            {+(Array\n              {+(Type\n                {+(TypeConstructorIdentifier)+}\n                {+(TypeParameters\n                  {+(TypeConstructorIdentifier)+}\n                  {+(TypeVariableIdentifier)+})+}\n                {+(Empty)+})+})+})+}\n          {+(TypeVariableIdentifier)+})+}\n        {+(Class\n          {+(TypeClassIdentifier)+}\n          {+(TypeVariableIdentifier)+})+})+})+}\n    {+(FunctionType\n      {+(Type\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeParameters\n          {+(TypeVariableIdentifier)+})+}\n        {+(Empty)+})+}\n      {+(FunctionType\n        {+(Type\n          {+(Array\n            {+(Type\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeParameters)+}\n              {+(Empty)+})+})+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters\n            {+(TypeVariableIdentifier)+}\n            {+(TypeConstructorIdentifier)+})+}\n          {+(Empty)+})+})+})+})+}\n  {+(TypeSignature\n    {+(VariableIdentifier)+}\n    {+(Context'\n      {+(Statements\n        {+(TypeVariableIdentifier)+}\n        {+(ConstructorOperator\n          {+(ConstructorSymbol)+})+}\n        {+(TypeConstructorIdentifier)+})+})+}\n    {+(FunctionType\n      {+(Type\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+}\n      {+(Type\n        {+(TypeVariableIdentifier)+}\n        {+(TypeParameters)+}\n        {+(Empty)+})+})+})+}\n    (TypeSignature\n    { (VariableIdentifier)\n    ->(VariableIdentifier) }\n    {+(Context'\n      {+(Statements\n        {+(Class\n          {+(TypeClassIdentifier)+}\n          {+(TypeVariableIdentifier)+}\n          {+(TypeVariableIdentifier)+})+}\n        {+(ConstructorOperator\n          {+(ConstructorSymbol)+})+}\n        {+(TypeVariableIdentifier)+})+})+}\n    { (FunctionType\n      {-(Type\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(Type\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-})\n    ->(TypeVariableIdentifier) })\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(FunctionType\n      {-(Type\n        {-(Array\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(Type\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(FunctionType\n      {-(Type\n        {-(Tuple\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-}\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(Type\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeParameters\n          {-(TypeConstructorIdentifier)-})-}\n        {-(Empty)-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(FunctionType\n      {-(Type\n        {-(TypeVariableIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(FunctionType\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeVariableIdentifier)-}\n            {-(Statements\n              {-(TypeConstructorIdentifier)-}\n              {-(InfixOperatorPattern\n                {-(Type\n                  {-(TypeConstructorIdentifier)-}\n                  {-(TypeParameters\n                    {-(TypeVariableIdentifier)-})-}\n                  {-(Empty)-})-}\n                {-(TypeOperator)-}\n                {-(Type\n                  {-(TypeVariableIdentifier)-}\n                  {-(TypeParameters)-}\n                  {-(Empty)-})-})-})-})-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(Array\n              {-(Type\n                {-(TypeConstructorIdentifier)-}\n                {-(TypeParameters\n                  {-(TypeVariableIdentifier)-})-}\n                {-(Empty)-})-})-}\n            {-(Statements\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeVariableIdentifier)-}\n              {-(Statements\n                {-(TypeConstructorIdentifier)-}\n                {-(InfixOperatorPattern\n                  {-(Type\n                    {-(TypeConstructorIdentifier)-}\n                    {-(TypeParameters\n                      {-(TypeVariableIdentifier)-})-}\n                    {-(Empty)-})-}\n                  {-(TypeOperator)-}\n                  {-(Type\n                    {-(TypeVariableIdentifier)-}\n                    {-(TypeParameters)-}\n                    {-(Empty)-})-})-})-})-})-}\n          {-(Empty)-})-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(ScopedTypeVariables\n      {-(TypeVariableIdentifier)-})-}\n    {-(FunctionType\n      {-(Type\n        {-(Array\n          {-(Type\n            {-(TypeVariableIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(Type\n        {-(Array\n          {-(Type\n            {-(TypeVariableIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(ScopedTypeVariables\n      {-(Statements\n        {-(TypeVariableIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(FunctionType\n      {-(Type\n        {-(Tuple\n          {-(Type\n            {-(TypeVariableIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-}\n          {-(Type\n            {-(TypeVariableIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(Type\n        {-(Array\n          {-(Type\n            {-(TypeVariableIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(FunctionType\n      {-(Type\n        {-(TypeVariableIdentifier)-}\n        {-(TypeParameters\n          {-(TypeVariableIdentifier)-})-}\n        {-(Empty)-})-}\n      {-(FunctionType\n        {-(Type\n          {-(Statements\n            {-(ScopedTypeVariables\n              {-(TypeVariableIdentifier)-})-}\n            {-(Context'\n              {-(Statements\n                {-(TypeVariableIdentifier)-}\n                {-(TypeVariableIdentifier)-})-})-}\n            {-(FunctionType\n              {-(Type\n                {-(TypeVariableIdentifier)-}\n                {-(TypeParameters\n                  {-(TypeVariableIdentifier)-})-}\n                {-(Empty)-})-}\n              {-(Type\n                {-(TypeVariableIdentifier)-}\n                {-(TypeParameters)-}\n                {-(Empty)-})-})-})-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(FunctionType\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters\n              {-(TypeVariableIdentifier)-}\n              {-(TypeVariableIdentifier)-})-}\n            {-(Empty)-})-}\n          {-(Type\n            {-(TypeVariableIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(Context'\n      {-(EqualityConstraint\n        {-(TypeVariableIdentifier)-}\n        {-(TypeConstructorIdentifier)-})-})-}\n    {-(TypeVariableIdentifier)-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(Context'\n      {-(EqualityConstraint\n        {-(TypeVariableIdentifier)-}\n        {-(TypeConstructorIdentifier)-})-})-}\n    {-(TypeVariableIdentifier)-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(ScopedTypeVariables\n      {-(Statements\n        {-(TypeVariableIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(Context'\n      {-(Statements\n        {-(Class\n          {-(TypeClassIdentifier)-}\n          {-(TypeVariableIdentifier)-})-}\n        {-(Class\n          {-(TypeClassIdentifier)-}\n          {-(TypeVariableIdentifier)-})-}\n        {-(EqualityConstraint\n          {-(Class\n            {-(TypeClassIdentifier)-}\n            {-(TypeVariableIdentifier)-})-}\n          {-(Class\n            {-(TypeClassIdentifier)-}\n            {-(TypeVariableIdentifier)-})-})-})-})-}\n    {-(FunctionType\n      {-(Type\n        {-(TypeVariableIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(FunctionType\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeVariableIdentifier)-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(Context'\n      {-(Class\n        {-(TypeClassIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(Context'\n      {-(Class\n        {-(TypeClassIdentifier)-}\n        {-(Array\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters\n              {-(TypeConstructorIdentifier)-})-}\n            {-(Empty)-})-}\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-}\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-}\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-})-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(FunctionType\n      {-(Type\n        {-(TypeVariableIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(Type\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeParameters\n          {-(TypeVariableIdentifier)-})-}\n        {-(Empty)-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(Context'\n      {-(Statements\n        {-(Class\n          {-(TypeClassIdentifier)-}\n          {-(QuotedName\n            {-(Array\n              {-(Type\n                {-(TypeConstructorIdentifier)-}\n                {-(TypeParameters\n                  {-(TypeConstructorIdentifier)-}\n                  {-(TypeVariableIdentifier)-})-}\n                {-(Empty)-})-})-})-}\n          {-(TypeVariableIdentifier)-})-}\n        {-(Class\n          {-(TypeClassIdentifier)-}\n          {-(TypeVariableIdentifier)-})-})-})-}\n    {-(FunctionType\n      {-(Type\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeParameters\n          {-(TypeVariableIdentifier)-})-}\n        {-(Empty)-})-}\n      {-(FunctionType\n        {-(Type\n          {-(Array\n            {-(Type\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeParameters)-}\n              {-(Empty)-})-})-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-}\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(TypeVariableIdentifier)-}\n            {-(TypeConstructorIdentifier)-})-}\n          {-(Empty)-})-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(Context'\n      {-(Statements\n        {-(TypeVariableIdentifier)-}\n        {-(ConstructorOperator\n          {-(ConstructorSymbol)-})-}\n        {-(TypeConstructorIdentifier)-})-})-}\n    {-(FunctionType\n      {-(Type\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-}\n      {-(Type\n        {-(TypeVariableIdentifier)-}\n        {-(TypeParameters)-}\n        {-(Empty)-})-})-})-}\n  {-(TypeSignature\n    {-(VariableIdentifier)-}\n    {-(Context'\n      {-(Statements\n        {-(Class\n          {-(TypeClassIdentifier)-}\n          {-(TypeVariableIdentifier)-}\n          {-(TypeVariableIdentifier)-})-}\n        {-(ConstructorOperator\n          {-(ConstructorSymbol)-})-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(TypeVariableIdentifier)-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-signatures.parseA.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeSignature\n      (VariableIdentifier)\n      (FunctionType\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))\n        (FunctionType\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (TypeConstructorIdentifier))\n                (Empty)))))))\n    (TypeSignature\n      (VariableIdentifier)\n      (FunctionType\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))\n        (FunctionType\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (Array\n                  (Type\n                    (TypeConstructorIdentifier)\n                    (TypeParameters)\n                    (Empty)))\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (TypeConstructorIdentifier))\n                (Empty)))))))\n    (TypeSignature\n      (VariableIdentifier)\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (FunctionType\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))))\n    (TypeSignature\n      (VariableIdentifier)\n      (FunctionType\n        (Type\n          (TypeConstructorIdentifier)\n          (TypeParameters)\n          (Empty))\n        (Type\n          (TypeConstructorIdentifier)\n          (TypeParameters)\n          (Empty))))\n    (TypeSignature\n      (VariableIdentifier)\n      (FunctionType\n        (Type\n          (Array\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))\n        (Type\n          (TypeConstructorIdentifier)\n          (TypeParameters)\n          (Empty))))\n    (TypeSignature\n      (VariableIdentifier)\n      (FunctionType\n        (Type\n          (Tuple\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))\n        (Type\n          (TypeConstructorIdentifier)\n          (TypeParameters\n            (TypeConstructorIdentifier))\n          (Empty))))\n    (TypeSignature\n      (VariableIdentifier)\n      (FunctionType\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))\n        (FunctionType\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier)\n              (Statements\n                (TypeConstructorIdentifier)\n                (InfixOperatorPattern\n                  (Type\n                    (TypeConstructorIdentifier)\n                    (TypeParameters\n                      (TypeVariableIdentifier))\n                    (Empty))\n                  (TypeOperator)\n                  (Type\n                    (TypeVariableIdentifier)\n                    (TypeParameters)\n                    (Empty)))))\n            (Empty))\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (Array\n                (Type\n                  (TypeConstructorIdentifier)\n                  (TypeParameters\n                    (TypeVariableIdentifier))\n                  (Empty)))\n              (Statements\n                (TypeConstructorIdentifier)\n                (TypeVariableIdentifier)\n                (Statements\n                  (TypeConstructorIdentifier)\n                  (InfixOperatorPattern\n                    (Type\n                      (TypeConstructorIdentifier)\n                      (TypeParameters\n                        (TypeVariableIdentifier))\n                      (Empty))\n                    (TypeOperator)\n                    (Type\n                      (TypeVariableIdentifier)\n                      (TypeParameters)\n                      (Empty))))))\n            (Empty)))))\n    (TypeSignature\n      (VariableIdentifier)\n      (ScopedTypeVariables\n        (TypeVariableIdentifier))\n      (FunctionType\n        (Type\n          (Array\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))\n        (Type\n          (Array\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))))\n    (TypeSignature\n      (VariableIdentifier)\n      (ScopedTypeVariables\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (FunctionType\n        (Type\n          (Tuple\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))\n        (Type\n          (Array\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))))\n    (TypeSignature\n      (VariableIdentifier)\n      (FunctionType\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters\n            (TypeVariableIdentifier))\n          (Empty))\n        (FunctionType\n          (Type\n            (Statements\n              (ScopedTypeVariables\n                (TypeVariableIdentifier))\n              (Context'\n                (Statements\n                  (TypeVariableIdentifier)\n                  (TypeVariableIdentifier)))\n              (FunctionType\n                (Type\n                  (TypeVariableIdentifier)\n                  (TypeParameters\n                    (TypeVariableIdentifier))\n                  (Empty))\n                (Type\n                  (TypeVariableIdentifier)\n                  (TypeParameters)\n                  (Empty))))\n            (TypeParameters)\n            (Empty))\n          (FunctionType\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeVariableIdentifier)\n                (TypeVariableIdentifier))\n              (Empty))\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))))))\n    (TypeSignature\n      (VariableIdentifier)\n      (Context'\n        (EqualityConstraint\n          (TypeVariableIdentifier)\n          (TypeConstructorIdentifier)))\n      (TypeVariableIdentifier))\n    (TypeSignature\n      (VariableIdentifier)\n      (Context'\n        (EqualityConstraint\n          (TypeVariableIdentifier)\n          (TypeConstructorIdentifier)))\n      (TypeVariableIdentifier))\n    (TypeSignature\n      (VariableIdentifier)\n      (ScopedTypeVariables\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (EqualityConstraint\n            (Class\n              (TypeClassIdentifier)\n              (TypeVariableIdentifier))\n            (Class\n              (TypeClassIdentifier)\n              (TypeVariableIdentifier)))))\n      (FunctionType\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))\n        (FunctionType\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty)))))\n    (TypeSignature\n      (VariableIdentifier)\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (Array\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeConstructorIdentifier))\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeVariableIdentifier)))\n      (FunctionType\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))\n        (Type\n          (TypeConstructorIdentifier)\n          (TypeParameters\n            (TypeVariableIdentifier))\n          (Empty))))\n    (TypeSignature\n      (VariableIdentifier)\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (QuotedName\n              (Array\n                (Type\n                  (TypeConstructorIdentifier)\n                  (TypeParameters\n                    (TypeConstructorIdentifier)\n                    (TypeVariableIdentifier))\n                  (Empty))))\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (FunctionType\n        (Type\n          (TypeConstructorIdentifier)\n          (TypeParameters\n            (TypeVariableIdentifier))\n          (Empty))\n        (FunctionType\n          (Type\n            (Array\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty)))\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier)\n              (TypeConstructorIdentifier))\n            (Empty)))))\n    (TypeSignature\n      (VariableIdentifier)\n      (Context'\n        (Statements\n          (TypeVariableIdentifier)\n          (ConstructorOperator\n            (ConstructorSymbol))\n          (TypeConstructorIdentifier)))\n      (FunctionType\n        (Type\n          (TypeConstructorIdentifier)\n          (TypeParameters)\n          (Empty))\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))))\n    (TypeSignature\n      (VariableIdentifier)\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier))\n          (ConstructorOperator\n            (ConstructorSymbol))\n          (TypeVariableIdentifier)))\n      (TypeVariableIdentifier))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-signatures.parseB.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeSignature\n      (VariableIdentifier)\n      (FunctionType\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))\n        (FunctionType\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (FunctionType\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (FunctionType\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty))\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (TypeConstructorIdentifier))\n                (Empty)))))))\n    (TypeSignature\n      (VariableIdentifier)\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (FunctionType\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))))\n    (TypeSignature\n      (VariableIdentifier)\n      (FunctionType\n        (Type\n          (TypeConstructorIdentifier)\n          (TypeParameters)\n          (Empty))\n        (Type\n          (TypeConstructorIdentifier)\n          (TypeParameters)\n          (Empty))))\n    (TypeSignature\n      (VariableIdentifier)\n      (FunctionType\n        (Type\n          (Array\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))\n        (Type\n          (TypeConstructorIdentifier)\n          (TypeParameters)\n          (Empty))))\n    (TypeSignature\n      (VariableIdentifier)\n      (FunctionType\n        (Type\n          (Tuple\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))\n        (Type\n          (TypeConstructorIdentifier)\n          (TypeParameters\n            (TypeConstructorIdentifier))\n          (Empty))))\n    (TypeSignature\n      (VariableIdentifier)\n      (FunctionType\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))\n        (FunctionType\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier)\n              (Statements\n                (TypeConstructorIdentifier)\n                (InfixOperatorPattern\n                  (Type\n                    (TypeConstructorIdentifier)\n                    (TypeParameters\n                      (TypeVariableIdentifier))\n                    (Empty))\n                  (TypeOperator)\n                  (Type\n                    (TypeVariableIdentifier)\n                    (TypeParameters)\n                    (Empty)))))\n            (Empty))\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (Array\n                (Type\n                  (TypeConstructorIdentifier)\n                  (TypeParameters\n                    (TypeVariableIdentifier))\n                  (Empty)))\n              (Statements\n                (TypeConstructorIdentifier)\n                (TypeVariableIdentifier)\n                (Statements\n                  (TypeConstructorIdentifier)\n                  (InfixOperatorPattern\n                    (Type\n                      (TypeConstructorIdentifier)\n                      (TypeParameters\n                        (TypeVariableIdentifier))\n                      (Empty))\n                    (TypeOperator)\n                    (Type\n                      (TypeVariableIdentifier)\n                      (TypeParameters)\n                      (Empty))))))\n            (Empty)))))\n    (TypeSignature\n      (VariableIdentifier)\n      (ScopedTypeVariables\n        (TypeVariableIdentifier))\n      (FunctionType\n        (Type\n          (Array\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))\n        (Type\n          (Array\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))))\n    (TypeSignature\n      (VariableIdentifier)\n      (ScopedTypeVariables\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (FunctionType\n        (Type\n          (Tuple\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))\n        (Type\n          (Array\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeParameters)\n          (Empty))))\n    (TypeSignature\n      (VariableIdentifier)\n      (FunctionType\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters\n            (TypeVariableIdentifier))\n          (Empty))\n        (FunctionType\n          (Type\n            (Statements\n              (ScopedTypeVariables\n                (TypeVariableIdentifier))\n              (Context'\n                (Statements\n                  (TypeVariableIdentifier)\n                  (TypeVariableIdentifier)))\n              (FunctionType\n                (Type\n                  (TypeVariableIdentifier)\n                  (TypeParameters\n                    (TypeVariableIdentifier))\n                  (Empty))\n                (Type\n                  (TypeVariableIdentifier)\n                  (TypeParameters)\n                  (Empty))))\n            (TypeParameters)\n            (Empty))\n          (FunctionType\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeVariableIdentifier)\n                (TypeVariableIdentifier))\n              (Empty))\n            (Type\n              (TypeVariableIdentifier)\n              (TypeParameters)\n              (Empty))))))\n    (TypeSignature\n      (VariableIdentifier)\n      (Context'\n        (EqualityConstraint\n          (TypeVariableIdentifier)\n          (TypeConstructorIdentifier)))\n      (TypeVariableIdentifier))\n    (TypeSignature\n      (VariableIdentifier)\n      (Context'\n        (EqualityConstraint\n          (TypeVariableIdentifier)\n          (TypeConstructorIdentifier)))\n      (TypeVariableIdentifier))\n    (TypeSignature\n      (VariableIdentifier)\n      (ScopedTypeVariables\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))\n          (EqualityConstraint\n            (Class\n              (TypeClassIdentifier)\n              (TypeVariableIdentifier))\n            (Class\n              (TypeClassIdentifier)\n              (TypeVariableIdentifier)))))\n      (FunctionType\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))\n        (FunctionType\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeVariableIdentifier)\n            (TypeParameters)\n            (Empty)))))\n    (TypeSignature\n      (VariableIdentifier)\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (TypeVariableIdentifier)))\n      (Context'\n        (Class\n          (TypeClassIdentifier)\n          (Array\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (TypeConstructorIdentifier))\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty)))\n          (TypeVariableIdentifier)))\n      (FunctionType\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))\n        (Type\n          (TypeConstructorIdentifier)\n          (TypeParameters\n            (TypeVariableIdentifier))\n          (Empty))))\n    (TypeSignature\n      (VariableIdentifier)\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (QuotedName\n              (Array\n                (Type\n                  (TypeConstructorIdentifier)\n                  (TypeParameters\n                    (TypeConstructorIdentifier)\n                    (TypeVariableIdentifier))\n                  (Empty))))\n            (TypeVariableIdentifier))\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier))))\n      (FunctionType\n        (Type\n          (TypeConstructorIdentifier)\n          (TypeParameters\n            (TypeVariableIdentifier))\n          (Empty))\n        (FunctionType\n          (Type\n            (Array\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters)\n                (Empty)))\n            (TypeParameters)\n            (Empty))\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier)\n              (TypeConstructorIdentifier))\n            (Empty)))))\n    (TypeSignature\n      (VariableIdentifier)\n      (Context'\n        (Statements\n          (TypeVariableIdentifier)\n          (ConstructorOperator\n            (ConstructorSymbol))\n          (TypeConstructorIdentifier)))\n      (FunctionType\n        (Type\n          (TypeConstructorIdentifier)\n          (TypeParameters)\n          (Empty))\n        (Type\n          (TypeVariableIdentifier)\n          (TypeParameters)\n          (Empty))))\n    (TypeSignature\n      (VariableIdentifier)\n      (Context'\n        (Statements\n          (Class\n            (TypeClassIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier))\n          (ConstructorOperator\n            (ConstructorSymbol))\n          (TypeVariableIdentifier)))\n      (TypeVariableIdentifier))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-synonyms.A.hs",
    "content": "type Foo = Bar\ntype List = []\ntype Foo a = Bar a\ntype Rec a = [Circ a]\ntype V = ()\ntype X = (,)\ntype Y = (,,)\ntype Z = (->)\ntype Nat = Zero ': Succ Zero ': Succ (Succ Zero) ': '[]\ntype Foo bar baz wix = '[ W, A (B c) ]\ntype Foo Bar = \"higher-kinded\"\ntype Bar (Foo m a) = BarF m a\ntype Foo = HasCallStack => Bar []\ntype Foo a b = forall a b. FooF a b\ntype (Member t r) = KnownNat (ElemIndex t r)\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-synonyms.B.hs",
    "content": "type Bar = Foo\ntype List' = []\ntype Foo a b = Bar a b\ntype Rec a = [Triangle a]\ntype X = ()\ntype Y = (,,)\ntype Z = (,)\ntype T = (->)\ntype Nat = Succ (Succ Zero) ': Succ Zero ': Zero ': '[]\ntype Wax bar baz wix = '[ W, A (B c) ]\ntype Bar Foo = \"higher-kinded\"\ntype Foo (Bar m a) = BarF m a\ntype Bar = HasCallStack => Foo []\ntype Bar a b = forall a b. BarF a b\ntype (MemberBar t r) = KnownNat (ElemIndexBar t r)\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-synonyms.diffA-B.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeSynonym\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (TypePattern\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }))\n    (TypeSynonym\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (TypePattern\n        (ListConstructor)))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeVariableIdentifier)\n      {+(TypeVariableIdentifier)+})\n      (TypePattern\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)\n        {+(TypeVariableIdentifier)+})))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeVariableIdentifier))\n      (TypePattern\n        (Array\n          (Type\n          { (TypeConstructorIdentifier)\n          ->(TypeConstructorIdentifier) }\n            (TypeParameters\n              (TypeVariableIdentifier))\n            (Empty)))))\n    (TypeSynonym\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (TypePattern\n        (UnitConstructor)))\n  {-(TypeSynonym\n    {-(Statements\n      {-(TypeConstructorIdentifier)-})-}\n    {-(TypePattern\n      {-(TupleConstructor)-})-})-}\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (TupleConstructor)))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (TypePattern\n      { (FunctionConstructor)\n      ->(TupleConstructor) }))\n  {+(TypeSynonym\n    {+(Statements\n      {+(TypeConstructorIdentifier)+})+}\n    {+(TypePattern\n      {+(FunctionConstructor)+})+})+}\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (InfixOperatorPattern\n          (Type\n          { (TypeConstructorIdentifier)\n          ->(TypeConstructorIdentifier) }\n            (TypeParameters\n            {+(Statements\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeConstructorIdentifier)+})+})\n            (Empty))\n          (TypeOperator)\n          (Type\n            (InfixOperatorPattern\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (TypeConstructorIdentifier))\n                (Empty))\n              (TypeOperator)\n              (Type\n                (InfixOperatorPattern\n                  (Type\n                  { (TypeConstructorIdentifier)\n                  ->(TypeConstructorIdentifier) }\n                    (TypeParameters\n                    {-(Statements\n                      {-(TypeConstructorIdentifier)-}\n                      {-(TypeConstructorIdentifier)-})-})\n                    (Empty))\n                  (TypeOperator)\n                  (Type\n                    (QuotedName\n                      (ListConstructor))\n                    (TypeParameters)\n                    (Empty)))\n                (TypeParameters)\n                (Empty)))\n            (TypeParameters)\n            (Empty)))))\n    (TypeSynonym\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeVariableIdentifier)\n        (TypeVariableIdentifier)\n        (TypeVariableIdentifier))\n      (TypePattern\n        (QuotedName\n          (Array\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (Statements\n                  (TypeConstructorIdentifier)\n                  (TypeVariableIdentifier)))\n              (Empty))))))\n    (TypeSynonym\n      (Statements\n      {-(TypeConstructorIdentifier)-}\n        (TypeConstructorIdentifier)\n      {+(TypeConstructorIdentifier)+})\n      (TextElement))\n    (TypeSynonym\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (Statements\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (TypePattern\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))))\n    (TypeSynonym\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (Context'\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (Statements\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }\n          (ListConstructor))))\n    (TypeSynonym\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }\n        (TypeVariableIdentifier)\n        (TypeVariableIdentifier))\n      (ScopedTypeVariables\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (TypePattern\n        (Statements\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))))\n    (TypeSynonym\n      (Statements\n        (Statements\n        { (TypeConstructorIdentifier)\n        ->(TypeConstructorIdentifier) }\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (TypePattern\n        (Statements\n          (TypeConstructorIdentifier)\n          (Statements\n          { (TypeConstructorIdentifier)\n          ->(TypeConstructorIdentifier) }\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-synonyms.diffB-A.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeSynonym\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (TypePattern\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) }))\n    (TypeSynonym\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (TypePattern\n        (ListConstructor)))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeVariableIdentifier)\n      {-(TypeVariableIdentifier)-})\n      (TypePattern\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)\n        {-(TypeVariableIdentifier)-})))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeVariableIdentifier))\n      (TypePattern\n        (Array\n          (Type\n          { (TypeConstructorIdentifier)\n          ->(TypeConstructorIdentifier) }\n            (TypeParameters\n              (TypeVariableIdentifier))\n            (Empty)))))\n    (TypeSynonym\n      (Statements\n      { (TypeConstructorIdentifier)\n      ->(TypeConstructorIdentifier) })\n      (TypePattern\n        (UnitConstructor)))\n  {+(TypeSynonym\n    {+(Statements\n      {+(TypeConstructorIdentifier)+})+}\n    {+(TypePattern\n      {+(TupleConstructor)+})+})+}\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (TupleConstructor)))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (TypePattern\n      { (TupleConstructor)\n      ->(FunctionConstructor) }))\n  {+(TypeSynonym\n    {+(Statements\n      {+(TypeConstructorIdentifier)+})+}\n    {+(TypePattern\n      {+(InfixOperatorPattern\n        {+(Type\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+}\n        {+(TypeOperator)+}\n        {+(Type\n          {+(InfixOperatorPattern\n            {+(Type\n              {+(TypeConstructorIdentifier)+}\n              {+(TypeParameters\n                {+(TypeConstructorIdentifier)+})+}\n              {+(Empty)+})+}\n            {+(TypeOperator)+}\n            {+(Type\n              {+(InfixOperatorPattern\n                {+(Type\n                  {+(TypeConstructorIdentifier)+}\n                  {+(TypeParameters\n                    {+(Statements\n                      {+(TypeConstructorIdentifier)+}\n                      {+(TypeConstructorIdentifier)+})+})+}\n                  {+(Empty)+})+}\n                {+(TypeOperator)+}\n                {+(Type\n                  {+(QuotedName\n                    {+(ListConstructor)+})+}\n                  {+(TypeParameters)+}\n                  {+(Empty)+})+})+}\n              {+(TypeParameters)+}\n              {+(Empty)+})+})+}\n          {+(TypeParameters)+}\n          {+(Empty)+})+})+})+})+}\n  {+(TypeSynonym\n    {+(Statements\n      {+(TypeConstructorIdentifier)+}\n      {+(TypeVariableIdentifier)+}\n      {+(TypeVariableIdentifier)+}\n      {+(TypeVariableIdentifier)+})+}\n    {+(TypePattern\n      {+(QuotedName\n        {+(Array\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters)+}\n            {+(Empty)+})+}\n          {+(Type\n            {+(TypeConstructorIdentifier)+}\n            {+(TypeParameters\n              {+(Statements\n                {+(TypeConstructorIdentifier)+}\n                {+(TypeVariableIdentifier)+})+})+}\n            {+(Empty)+})+})+})+})+})+}\n  {+(TypeSynonym\n    {+(Statements\n      {+(TypeConstructorIdentifier)+}\n      {+(TypeConstructorIdentifier)+})+}\n    {+(TextElement)+})+}\n  {+(TypeSynonym\n    {+(Statements\n      {+(TypeConstructorIdentifier)+}\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeVariableIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(TypePattern\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeVariableIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+})+}\n  {+(TypeSynonym\n    {+(Statements\n      {+(TypeConstructorIdentifier)+})+}\n    {+(Context'\n      {+(TypeConstructorIdentifier)+})+}\n    {+(TypePattern\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(ListConstructor)+})+})+})+}\n  {+(TypeSynonym\n    {+(Statements\n      {+(TypeConstructorIdentifier)+}\n      {+(TypeVariableIdentifier)+}\n      {+(TypeVariableIdentifier)+})+}\n    {+(ScopedTypeVariables\n      {+(Statements\n        {+(TypeVariableIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(TypePattern\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeVariableIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+})+}\n  {+(TypeSynonym\n    {+(Statements\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(TypeVariableIdentifier)+}\n        {+(TypeVariableIdentifier)+})+})+}\n    {+(TypePattern\n      {+(Statements\n        {+(TypeConstructorIdentifier)+}\n        {+(Statements\n          {+(TypeConstructorIdentifier)+}\n          {+(TypeVariableIdentifier)+}\n          {+(TypeVariableIdentifier)+})+})+})+})+}\n  {-(TypeSynonym\n    {-(Statements\n      {-(TypeConstructorIdentifier)-})-}\n    {-(TypePattern\n      {-(FunctionConstructor)-})-})-}\n  {-(TypeSynonym\n    {-(Statements\n      {-(TypeConstructorIdentifier)-})-}\n    {-(TypePattern\n      {-(InfixOperatorPattern\n        {-(Type\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeParameters\n            {-(Statements\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeConstructorIdentifier)-})-})-}\n          {-(Empty)-})-}\n        {-(TypeOperator)-}\n        {-(Type\n          {-(InfixOperatorPattern\n            {-(Type\n              {-(TypeConstructorIdentifier)-}\n              {-(TypeParameters\n                {-(TypeConstructorIdentifier)-})-}\n              {-(Empty)-})-}\n            {-(TypeOperator)-}\n            {-(Type\n              {-(InfixOperatorPattern\n                {-(Type\n                  {-(TypeConstructorIdentifier)-}\n                  {-(TypeParameters)-}\n                  {-(Empty)-})-}\n                {-(TypeOperator)-}\n                {-(Type\n                  {-(QuotedName\n                    {-(ListConstructor)-})-}\n                  {-(TypeParameters)-}\n                  {-(Empty)-})-})-}\n              {-(TypeParameters)-}\n              {-(Empty)-})-})-}\n          {-(TypeParameters)-}\n          {-(Empty)-})-})-})-})-}\n  {-(TypeSynonym\n    {-(Statements\n      {-(TypeConstructorIdentifier)-}\n      {-(TypeVariableIdentifier)-}\n      {-(TypeVariableIdentifier)-}\n      {-(TypeVariableIdentifier)-})-}\n    {-(TypePattern\n      {-(QuotedName\n        {-(Array\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters)-}\n            {-(Empty)-})-}\n          {-(Type\n            {-(TypeConstructorIdentifier)-}\n            {-(TypeParameters\n              {-(Statements\n                {-(TypeConstructorIdentifier)-}\n                {-(TypeVariableIdentifier)-})-})-}\n            {-(Empty)-})-})-})-})-})-}\n  {-(TypeSynonym\n    {-(Statements\n      {-(TypeConstructorIdentifier)-}\n      {-(TypeConstructorIdentifier)-})-}\n    {-(TextElement)-})-}\n  {-(TypeSynonym\n    {-(Statements\n      {-(TypeConstructorIdentifier)-}\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeVariableIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(TypePattern\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeVariableIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-})-}\n  {-(TypeSynonym\n    {-(Statements\n      {-(TypeConstructorIdentifier)-})-}\n    {-(Context'\n      {-(TypeConstructorIdentifier)-})-}\n    {-(TypePattern\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(ListConstructor)-})-})-})-}\n  {-(TypeSynonym\n    {-(Statements\n      {-(TypeConstructorIdentifier)-}\n      {-(TypeVariableIdentifier)-}\n      {-(TypeVariableIdentifier)-})-}\n    {-(ScopedTypeVariables\n      {-(Statements\n        {-(TypeVariableIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(TypePattern\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeVariableIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-})-}\n  {-(TypeSynonym\n    {-(Statements\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(TypeVariableIdentifier)-}\n        {-(TypeVariableIdentifier)-})-})-}\n    {-(TypePattern\n      {-(Statements\n        {-(TypeConstructorIdentifier)-}\n        {-(Statements\n          {-(TypeConstructorIdentifier)-}\n          {-(TypeVariableIdentifier)-}\n          {-(TypeVariableIdentifier)-})-})-})-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-synonyms.parseA.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (TypeConstructorIdentifier)))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (ListConstructor)))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeVariableIdentifier))\n      (TypePattern\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier))))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeVariableIdentifier))\n      (TypePattern\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier))\n            (Empty)))))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (UnitConstructor)))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (TupleConstructor)))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (TupleConstructor)))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (FunctionConstructor)))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (InfixOperatorPattern\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters)\n            (Empty))\n          (TypeOperator)\n          (Type\n            (InfixOperatorPattern\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (TypeConstructorIdentifier))\n                (Empty))\n              (TypeOperator)\n              (Type\n                (InfixOperatorPattern\n                  (Type\n                    (TypeConstructorIdentifier)\n                    (TypeParameters\n                      (Statements\n                        (TypeConstructorIdentifier)\n                        (TypeConstructorIdentifier)))\n                    (Empty))\n                  (TypeOperator)\n                  (Type\n                    (QuotedName\n                      (ListConstructor))\n                    (TypeParameters)\n                    (Empty)))\n                (TypeParameters)\n                (Empty)))\n            (TypeParameters)\n            (Empty)))))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeVariableIdentifier)\n        (TypeVariableIdentifier)\n        (TypeVariableIdentifier))\n      (TypePattern\n        (QuotedName\n          (Array\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (Statements\n                  (TypeConstructorIdentifier)\n                  (TypeVariableIdentifier)))\n              (Empty))))))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeConstructorIdentifier))\n      (TextElement))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier)\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (TypePattern\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (Context'\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (Statements\n          (TypeConstructorIdentifier)\n          (ListConstructor))))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeVariableIdentifier)\n        (TypeVariableIdentifier))\n      (ScopedTypeVariables\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (TypePattern\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))))\n    (TypeSynonym\n      (Statements\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (TypePattern\n        (Statements\n          (TypeConstructorIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/haskell/corpus/type-synonyms.parseB.txt",
    "content": "(Module\n  (Empty)\n  (Statements\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (TypeConstructorIdentifier)))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (ListConstructor)))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeVariableIdentifier)\n        (TypeVariableIdentifier))\n      (TypePattern\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeVariableIdentifier))\n      (TypePattern\n        (Array\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (TypeVariableIdentifier))\n            (Empty)))))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (UnitConstructor)))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (TupleConstructor)))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (TupleConstructor)))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (FunctionConstructor)))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (InfixOperatorPattern\n          (Type\n            (TypeConstructorIdentifier)\n            (TypeParameters\n              (Statements\n                (TypeConstructorIdentifier)\n                (TypeConstructorIdentifier)))\n            (Empty))\n          (TypeOperator)\n          (Type\n            (InfixOperatorPattern\n              (Type\n                (TypeConstructorIdentifier)\n                (TypeParameters\n                  (TypeConstructorIdentifier))\n                (Empty))\n              (TypeOperator)\n              (Type\n                (InfixOperatorPattern\n                  (Type\n                    (TypeConstructorIdentifier)\n                    (TypeParameters)\n                    (Empty))\n                  (TypeOperator)\n                  (Type\n                    (QuotedName\n                      (ListConstructor))\n                    (TypeParameters)\n                    (Empty)))\n                (TypeParameters)\n                (Empty)))\n            (TypeParameters)\n            (Empty)))))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeVariableIdentifier)\n        (TypeVariableIdentifier)\n        (TypeVariableIdentifier))\n      (TypePattern\n        (QuotedName\n          (Array\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters)\n              (Empty))\n            (Type\n              (TypeConstructorIdentifier)\n              (TypeParameters\n                (Statements\n                  (TypeConstructorIdentifier)\n                  (TypeVariableIdentifier)))\n              (Empty))))))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeConstructorIdentifier))\n      (TextElement))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier)\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (TypePattern\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier))\n      (Context'\n        (TypeConstructorIdentifier))\n      (TypePattern\n        (Statements\n          (TypeConstructorIdentifier)\n          (ListConstructor))))\n    (TypeSynonym\n      (Statements\n        (TypeConstructorIdentifier)\n        (TypeVariableIdentifier)\n        (TypeVariableIdentifier))\n      (ScopedTypeVariables\n        (Statements\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (TypePattern\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier))))\n    (TypeSynonym\n      (Statements\n        (Statements\n          (TypeConstructorIdentifier)\n          (TypeVariableIdentifier)\n          (TypeVariableIdentifier)))\n      (TypePattern\n        (Statements\n          (TypeConstructorIdentifier)\n          (Statements\n            (TypeConstructorIdentifier)\n            (TypeVariableIdentifier)\n            (TypeVariableIdentifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ArrayAccess.A.java",
    "content": "class Dinosaur {\n  void apply() {\n    (T1)a[0];\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ArrayAccess.B.java",
    "content": "class Dinosaur {\n  void apply() {\n    anArray[2];\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ArrayAccess.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n        {+(Subscript\n          {+(Identifier)+}\n          {+(Integer)+})+}\n        {-(Annotation\n          {-(Subscript\n            {-(Identifier)-}\n            {-(Integer)-})-}\n          {-(Identifier)-})-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ArrayAccess.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n        {+(Annotation\n          {+(Subscript\n            {+(Identifier)+}\n            {+(Integer)+})+}\n          {+(Identifier)+})+}\n        {-(Subscript\n          {-(Identifier)-}\n          {-(Integer)-})-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ArrayAccess.parseA.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Annotation\n            (Subscript\n              (Identifier)\n              (Integer))\n            (Identifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ArrayAccess.parseB.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Subscript\n            (Identifier)\n            (Integer)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/AssertStatement.A.java",
    "content": "class Dino {\n  void fn() {\n    for (File file : snap.index()) {\n        assert oldFile == null;\n    }\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/AssertStatement.B.java",
    "content": "class Dino {\n  void fn() {\n    assert failure : \"expecting non null\";\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/AssertStatement.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n        {+(AssertStatement\n          {+(Identifier)+}\n          {+(TextElement)+})+}\n        {-(ForEach\n          {-(Variable\n            {-(Identifier)-}\n            {-(Identifier)-})-}\n          {-(Call\n            {-(MemberAccess\n              {-(Identifier)-})-}\n            {-(Empty)-})-}\n          {-(Statements\n            {-(AssertStatement\n              {-(Equal\n                {-(Identifier)-}\n                {-(Null)-})-})-})-})-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/AssertStatement.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n        {+(ForEach\n          {+(Variable\n            {+(Identifier)+}\n            {+(Identifier)+})+}\n          {+(Call\n            {+(MemberAccess\n              {+(Identifier)+})+}\n            {+(Empty)+})+}\n          {+(Statements\n            {+(AssertStatement\n              {+(Equal\n                {+(Identifier)+}\n                {+(Null)+})+})+})+})+}\n        {-(AssertStatement\n          {-(Identifier)-}\n          {-(TextElement)-})-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/AssertStatement.parseA.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (ForEach\n            (Variable\n              (Identifier)\n              (Identifier))\n            (Call\n              (MemberAccess\n                (Identifier))\n              (Empty))\n            (Statements\n              (AssertStatement\n                (Equal\n                  (Identifier)\n                  (Null))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/AssertStatement.parseB.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (AssertStatement\n            (Identifier)\n            (TextElement)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Binary.A.java",
    "content": "a ^ b;\na % b;\na << b;\na >> b;\na >>> b;\n3 + 2;\n3 - 2;\n3 * 2;\n9 / 3;\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Binary.B.java",
    "content": "a > b;\na < b;\na == b;\na >= b;\na <= b;\na != b;\na && b;\na || b;\na & b;\na | b;\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Binary.diffA-B.txt",
    "content": "(Statements\n{+(GreaterThan\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(LessThan\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(Equal\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(GreaterThanEqual\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(LessThanEqual\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(Not\n  {+(Equal\n    {+(Identifier)+}\n    {+(Identifier)+})+})+}\n{+(And\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(Or\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(BAnd\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(BOr\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(BXOr\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(Modulo\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(LShift\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(RShift\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(UnsignedRShift\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(Plus\n  {-(Integer)-}\n  {-(Integer)-})-}\n{-(Minus\n  {-(Integer)-}\n  {-(Integer)-})-}\n{-(Times\n  {-(Integer)-}\n  {-(Integer)-})-}\n{-(DividedBy\n  {-(Integer)-}\n  {-(Integer)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Binary.diffB-A.txt",
    "content": "(Statements\n{+(BXOr\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(Modulo\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(LShift\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(RShift\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(UnsignedRShift\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(Plus\n  {+(Integer)+}\n  {+(Integer)+})+}\n{+(Minus\n  {+(Integer)+}\n  {+(Integer)+})+}\n{+(Times\n  {+(Integer)+}\n  {+(Integer)+})+}\n{+(DividedBy\n  {+(Integer)+}\n  {+(Integer)+})+}\n{-(GreaterThan\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(LessThan\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(Equal\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(GreaterThanEqual\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(LessThanEqual\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(Not\n  {-(Equal\n    {-(Identifier)-}\n    {-(Identifier)-})-})-}\n{-(And\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(Or\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(BAnd\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(BOr\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Binary.parseA.txt",
    "content": "(Statements\n  (BXOr\n    (Identifier)\n    (Identifier))\n  (Modulo\n    (Identifier)\n    (Identifier))\n  (LShift\n    (Identifier)\n    (Identifier))\n  (RShift\n    (Identifier)\n    (Identifier))\n  (UnsignedRShift\n    (Identifier)\n    (Identifier))\n  (Plus\n    (Integer)\n    (Integer))\n  (Minus\n    (Integer)\n    (Integer))\n  (Times\n    (Integer)\n    (Integer))\n  (DividedBy\n    (Integer)\n    (Integer)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Binary.parseB.txt",
    "content": "(Statements\n  (GreaterThan\n    (Identifier)\n    (Identifier))\n  (LessThan\n    (Identifier)\n    (Identifier))\n  (Equal\n    (Identifier)\n    (Identifier))\n  (GreaterThanEqual\n    (Identifier)\n    (Identifier))\n  (LessThanEqual\n    (Identifier)\n    (Identifier))\n  (Not\n    (Equal\n      (Identifier)\n      (Identifier)))\n  (And\n    (Identifier)\n    (Identifier))\n  (Or\n    (Identifier)\n    (Identifier))\n  (BAnd\n    (Identifier)\n    (Identifier))\n  (BOr\n    (Identifier)\n    (Identifier)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Boolean.A.java",
    "content": "public class Point {\n  void dinosaur() {\n    Boolean x = true;\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Boolean.B.java",
    "content": "public class Point {\n  void dinosaur() {\n    Boolean example = false;\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Boolean.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n              { (Identifier)\n              ->(Identifier) })\n            { (Boolean)\n            ->(Boolean) })))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Boolean.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n              { (Identifier)\n              ->(Identifier) })\n            { (Boolean)\n            ->(Boolean) })))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Boolean.parseA.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n                (Identifier))\n              (Boolean))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Boolean.parseB.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n                (Identifier))\n              (Boolean))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Char.A.java",
    "content": "public class Point {\n  void dinosaur() {\n    Char a = 'a';\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Char.B.java",
    "content": "class Point {\n  Char dinosaur() {\n    Char B = 'B';\n    if (x)\n      B;\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Char.diffA-B.txt",
    "content": "(Statements\n  (Class\n  {-(AccessibilityModifier)-}\n    (Identifier)\n    (Statements\n      (Method\n      {+(Identifier)+}\n      {-(Void)-}\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n              { (Identifier)\n              ->(Identifier) })\n            { (TextElement)\n            ->(TextElement) }))\n        {+(If\n          {+(Identifier)+}\n          {+(Identifier)+}\n          {+(Empty)+})+})))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Char.diffB-A.txt",
    "content": "(Statements\n  (Class\n  {+(AccessibilityModifier)+}\n    (Identifier)\n    (Statements\n      (Method\n      {+(Void)+}\n      {-(Identifier)-}\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n              { (Identifier)\n              ->(Identifier) })\n            { (TextElement)\n            ->(TextElement) }))\n        {-(If\n          {-(Identifier)-}\n          {-(Identifier)-}\n          {-(Empty)-})-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Char.parseA.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n                (Identifier))\n              (TextElement))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Char.parseB.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Identifier)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n                (Identifier))\n              (TextElement)))\n          (If\n            (Identifier)\n            (Identifier)\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ClassBody.A.java",
    "content": "class Dino {\n  public void dispose() {\n    Test.flat(new Function<Integer>() {\n    });\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ClassBody.B.java",
    "content": "class Dino {\n  \n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ClassBody.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n    {-(Method\n      {-(Void)-}\n      {-(AccessibilityModifier)-}\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(Statements\n        {-(Call\n          {-(MemberAccess\n            {-(Identifier)-})-}\n          {-(New\n            {-(GenericType\n              {-(Identifier)-}\n              {-(Identifier)-})-}\n            {-(Statements)-})-}\n          {-(Empty)-})-})-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ClassBody.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n    {+(Method\n      {+(Void)+}\n      {+(AccessibilityModifier)+}\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(Statements\n        {+(Call\n          {+(MemberAccess\n            {+(Identifier)+})+}\n          {+(New\n            {+(GenericType\n              {+(Identifier)+}\n              {+(Identifier)+})+}\n            {+(Statements)+})+}\n          {+(Empty)+})+})+})+})))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ClassBody.parseA.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (AccessibilityModifier)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Call\n            (MemberAccess\n              (Identifier))\n            (New\n              (GenericType\n                (Identifier)\n                (Identifier))\n              (Statements))\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ClassBody.parseB.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ClassLiteral.A.java",
    "content": "class Dino {\n   void normalError() {\n      error(TestException.class);\n    }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ClassLiteral.B.java",
    "content": "class Dino {\n   public static void normalError() {\n      Class<String> c = String.class;\n    }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ClassLiteral.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n      {+(AccessibilityModifier)+}\n      {+(AccessibilityModifier)+}\n        (Empty)\n        (Identifier)\n        (Statements\n        {+(GreaterThan\n          {+(LessThan\n            {+(Identifier)+}\n            {+(Identifier)+})+}\n          {+(Assignment\n            {+(Identifier)+}\n            {+(ClassLiteral\n              {+(Identifier)+})+})+})+}\n        {-(Call\n          {-(Identifier)-}\n          {-(ClassLiteral\n            {-(Identifier)-})-}\n          {-(Empty)-})-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ClassLiteral.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n      {-(AccessibilityModifier)-}\n      {-(AccessibilityModifier)-}\n        (Empty)\n        (Identifier)\n        (Statements\n        {+(Call\n          {+(Identifier)+}\n          {+(ClassLiteral\n            {+(Identifier)+})+}\n          {+(Empty)+})+}\n        {-(GreaterThan\n          {-(LessThan\n            {-(Identifier)-}\n            {-(Identifier)-})-}\n          {-(Assignment\n            {-(Identifier)-}\n            {-(ClassLiteral\n              {-(Identifier)-})-})-})-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ClassLiteral.parseA.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Call\n            (Identifier)\n            (ClassLiteral\n              (Identifier))\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ClassLiteral.parseB.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (AccessibilityModifier)\n        (AccessibilityModifier)\n        (Empty)\n        (Identifier)\n        (Statements\n          (GreaterThan\n            (LessThan\n              (Identifier)\n              (Identifier))\n            (Assignment\n              (Identifier)\n              (ClassLiteral\n                (Identifier)))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Comment.A.java",
    "content": "// This is a single-line comment.\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Comment.B.java",
    "content": "/* This is\na multi-line\ncomment */\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Comment.diffA-B.txt",
    "content": "(Statements\n  (Context\n  { (Comment)\n  ->(Comment) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Comment.diffB-A.txt",
    "content": "(Statements\n  (Context\n  { (Comment)\n  ->(Comment) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Comment.parseA.txt",
    "content": "(Statements\n  (Context\n    (Comment)\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Comment.parseB.txt",
    "content": "(Statements\n  (Context\n    (Comment)\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Continue.A.java",
    "content": "public class Test {\n\n   public static void main(String args[]) {\n      int [] numbers = {10, 20, 30, 40, 50};\n\n      for(int x : numbers ) {\n         if( x == 30 ) {\n            continue;\n         }\n         System.out.print( x );\n         System.out.print(\"\\n\");\n      }\n   }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Continue.B.java",
    "content": "class Test {\n   public static void main(String[] args) {\n         if (i > 4 && i < 9) {\n            continue;\n         }\n   }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Continue.diffA-B.txt",
    "content": "(Statements\n  (Class\n  {-(AccessibilityModifier)-}\n    (Identifier)\n    (Statements\n    {+(Method\n      {+(Void)+}\n      {+(AccessibilityModifier)+}\n      {+(AccessibilityModifier)+}\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(Annotation\n        {+(Identifier)+}\n        {+(Array\n          {+(Empty)+}\n          {+(Identifier)+})+})+}\n      {+(Statements\n        {+(If\n          {+(And\n            {+(GreaterThan\n              {+(Identifier)+}\n              {+(Integer)+})+}\n            {+(LessThan\n              {+(Identifier)+}\n              {+(Integer)+})+})+}\n          {+(Statements\n            {+(Continue\n              {+(Empty)+})+})+}\n          {+(Empty)+})+})+})+}\n    {-(Error)-})))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Continue.diffB-A.txt",
    "content": "(Statements\n  (Class\n  {+(AccessibilityModifier)+}\n    (Identifier)\n    (Statements\n    {+(Error)+}\n    {-(Method\n      {-(Void)-}\n      {-(AccessibilityModifier)-}\n      {-(AccessibilityModifier)-}\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(Annotation\n        {-(Identifier)-}\n        {-(Array\n          {-(Empty)-}\n          {-(Identifier)-})-})-}\n      {-(Statements\n        {-(If\n          {-(And\n            {-(GreaterThan\n              {-(Identifier)-}\n              {-(Integer)-})-}\n            {-(LessThan\n              {-(Identifier)-}\n              {-(Integer)-})-})-}\n          {-(Statements\n            {-(Continue\n              {-(Empty)-})-})-}\n          {-(Empty)-})-})-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Continue.parseA.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Error))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Continue.parseB.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (AccessibilityModifier)\n        (AccessibilityModifier)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Array\n            (Empty)\n            (Identifier)))\n        (Statements\n          (If\n            (And\n              (GreaterThan\n                (Identifier)\n                (Integer))\n              (LessThan\n                (Identifier)\n                (Integer)))\n            (Statements\n              (Continue\n                (Empty)))\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Continue0.A.java",
    "content": "public class Test {\n\n   public static void main(String args[]) {\n      int [] numbers = {10, 20, 30, 40, 50};\n\n      for(int x : numbers ) {\n         if( x == 30 ) {\n            continue;\n         }\n         System.out.print( x );\n         System.out.print(\"\\n\");\n      }\n   }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Continue1.A.java",
    "content": "public class Test {\n\n   public static void main(String args[]) {\n      int [] numbers = {10, 20, 30, 40, 50};\n\n      for(int x : numbers ) {\n         if( x == 30 ) {\n            continue;\n         }\n         System.out.print( x );\n         System.out.print(\"\\n\");\n      }\n   }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Dims.A.java",
    "content": "class ForDemo { int[] metrics; }\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Dims.B.java",
    "content": "class ForDemo {\n    void main(String[] args){\n    }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Dims.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n    {+(Method\n      {+(Void)+}\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(Annotation\n        {+(Identifier)+}\n        {+(Array\n          {+(Empty)+}\n          {+(Identifier)+})+})+}\n      {+(Statements)+})+}\n    {-(Statements\n      {-(Variable\n        {-(Array\n          {-(Empty)-}\n          {-(Int)-})-}\n        {-(Identifier)-})-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Dims.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n    {+(Statements\n      {+(Variable\n        {+(Array\n          {+(Empty)+}\n          {+(Int)+})+}\n        {+(Identifier)+})+})+}\n    {-(Method\n      {-(Void)-}\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(Annotation\n        {-(Identifier)-}\n        {-(Array\n          {-(Empty)-}\n          {-(Identifier)-})-})-}\n      {-(Statements)-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Dims.parseA.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Statements\n        (Variable\n          (Array\n            (Empty)\n            (Int))\n          (Identifier))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Dims.parseB.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Array\n            (Empty)\n            (Identifier)))\n        (Statements)))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/DoWhile.A.java",
    "content": "class WhileDemo {\n    public static void main(String[] args){\n      do {\n          System.out.print(\"Guess my name: \");\n          guess = scanner.nextLine();\n        }\n        while (!\"Daffy Duck\".equals(guess));\n    }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/DoWhile.B.java",
    "content": "class WhileDemo {\n\tpublic static void main(String[] args) {\n\t\tint i = 5;\n\t\tdo {\n\t\t\tSystem.out.println(i);\n\t\t\ti++;\n\t\t} while (i <= 10);\n\t}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/DoWhile.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (AccessibilityModifier)\n        (AccessibilityModifier)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Array\n            (Empty)\n            (Identifier)))\n        (Statements\n        {+(Statements\n          {+(Assignment\n            {+(Variable\n              {+(Int)+}\n              {+(Identifier)+})+}\n            {+(Integer)+})+})+}\n          (DoWhile\n          { (Not\n            {-(Call\n              {-(MemberAccess\n                {-(TextElement)-})-}\n              {-(Identifier)-}\n              {-(Empty)-})-})\n          ->(LessThanEqual\n            {+(Identifier)+}\n            {+(Integer)+}) }\n            (Statements\n              (Call\n              { (MemberAccess\n                {-(MemberAccess\n                  {-(Identifier)-})-})\n              ->(MemberAccess\n                {+(MemberAccess\n                  {+(Identifier)+})+}) }\n              {+(Identifier)+}\n              {-(TextElement)-}\n                (Empty))\n            {+(PostIncrement\n              {+(Identifier)+})+}\n            {-(Assignment\n              {-(Identifier)-}\n              {-(Call\n                {-(MemberAccess\n                  {-(Identifier)-})-}\n                {-(Empty)-})-})-})))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/DoWhile.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (AccessibilityModifier)\n        (AccessibilityModifier)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Array\n            (Empty)\n            (Identifier)))\n        (Statements\n        {+(DoWhile\n          {+(Not\n            {+(Call\n              {+(MemberAccess\n                {+(TextElement)+})+}\n              {+(Identifier)+}\n              {+(Empty)+})+})+}\n          {+(Statements\n            {+(Call\n              {+(MemberAccess\n                {+(MemberAccess\n                  {+(Identifier)+})+})+}\n              {+(TextElement)+}\n              {+(Empty)+})+}\n            {+(Assignment\n              {+(Identifier)+}\n              {+(Call\n                {+(MemberAccess\n                  {+(Identifier)+})+}\n                {+(Empty)+})+})+})+})+}\n        {-(Statements\n          {-(Assignment\n            {-(Variable\n              {-(Int)-}\n              {-(Identifier)-})-}\n            {-(Integer)-})-})-}\n        {-(DoWhile\n          {-(LessThanEqual\n            {-(Identifier)-}\n            {-(Integer)-})-}\n          {-(Statements\n            {-(Call\n              {-(MemberAccess\n                {-(MemberAccess\n                  {-(Identifier)-})-})-}\n              {-(Identifier)-}\n              {-(Empty)-})-}\n            {-(PostIncrement\n              {-(Identifier)-})-})-})-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/DoWhile.parseA.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (AccessibilityModifier)\n        (AccessibilityModifier)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Array\n            (Empty)\n            (Identifier)))\n        (Statements\n          (DoWhile\n            (Not\n              (Call\n                (MemberAccess\n                  (TextElement))\n                (Identifier)\n                (Empty)))\n            (Statements\n              (Call\n                (MemberAccess\n                  (MemberAccess\n                    (Identifier)))\n                (TextElement)\n                (Empty))\n              (Assignment\n                (Identifier)\n                (Call\n                  (MemberAccess\n                    (Identifier))\n                  (Empty))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/DoWhile.parseB.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (AccessibilityModifier)\n        (AccessibilityModifier)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Array\n            (Empty)\n            (Identifier)))\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Int)\n                (Identifier))\n              (Integer)))\n          (DoWhile\n            (LessThanEqual\n              (Identifier)\n              (Integer))\n            (Statements\n              (Call\n                (MemberAccess\n                  (MemberAccess\n                    (Identifier)))\n                (Identifier)\n                (Empty))\n              (PostIncrement\n                (Identifier)))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/EnumDeclaration.A.java",
    "content": "public enum Colour {\n\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/EnumDeclaration.B.java",
    "content": "enum Colour\n{\n    RED, GREEN, BLUE;\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/EnumDeclaration.diffA-B.txt",
    "content": "(Statements\n  (EnumDeclaration\n  {-(AccessibilityModifier)-}\n    (Identifier)\n  {+(Identifier)+}\n  {+(Identifier)+}\n  {+(Identifier)+}))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/EnumDeclaration.diffB-A.txt",
    "content": "(Statements\n  (EnumDeclaration\n  {+(AccessibilityModifier)+}\n    (Identifier)\n  {-(Identifier)-}\n  {-(Identifier)-}\n  {-(Identifier)-}))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/EnumDeclaration.parseA.txt",
    "content": "(Statements\n  (EnumDeclaration\n    (AccessibilityModifier)\n    (Identifier)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/EnumDeclaration.parseB.txt",
    "content": "(Statements\n  (EnumDeclaration\n    (Identifier)\n    (Identifier)\n    (Identifier)\n    (Identifier)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/FieldAccess.A.java",
    "content": "class Grouped {\n  Flowable(K key) {\n      this.key = key;\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/FieldAccess.B.java",
    "content": "class Grouped {\n  Flowable(K key) {\n      System.out.println(favorite().mountain);\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/FieldAccess.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Constructor\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Identifier))\n        (Statements\n        {+(Call\n          {+(MemberAccess\n            {+(MemberAccess\n              {+(Identifier)+})+})+}\n          {+(MemberAccess\n            {+(Call\n              {+(Identifier)+}\n              {+(Empty)+})+})+}\n          {+(Empty)+})+}\n        {-(Assignment\n          {-(MemberAccess\n            {-(This)-})-}\n          {-(Identifier)-})-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/FieldAccess.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Constructor\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Identifier))\n        (Statements\n        {+(Assignment\n          {+(MemberAccess\n            {+(This)+})+}\n          {+(Identifier)+})+}\n        {-(Call\n          {-(MemberAccess\n            {-(MemberAccess\n              {-(Identifier)-})-})-}\n          {-(MemberAccess\n            {-(Call\n              {-(Identifier)-}\n              {-(Empty)-})-})-}\n          {-(Empty)-})-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/FieldAccess.parseA.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Constructor\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Identifier))\n        (Statements\n          (Assignment\n            (MemberAccess\n              (This))\n            (Identifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/FieldAccess.parseB.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Constructor\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Identifier))\n        (Statements\n          (Call\n            (MemberAccess\n              (MemberAccess\n                (Identifier)))\n            (MemberAccess\n              (Call\n                (Identifier)\n                (Empty)))\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Float.A.java",
    "content": "public class Point {\n  void dinosaur() {\n    Float x = 10.0;\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Float.B.java",
    "content": "public class Point {\n  void dinosaur() {\n    Float x = 10.0;\n    Float y = 20.0;\n    System.out.print(x + y);\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Float.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n                (Identifier))\n              (Float)))\n        {+(Statements\n          {+(Assignment\n            {+(Variable\n              {+(Identifier)+}\n              {+(Identifier)+})+}\n            {+(Float)+})+})+}\n        {+(Call\n          {+(MemberAccess\n            {+(MemberAccess\n              {+(Identifier)+})+})+}\n          {+(Plus\n            {+(Identifier)+}\n            {+(Identifier)+})+}\n          {+(Empty)+})+})))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Float.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n                (Identifier))\n              (Float)))\n        {-(Statements\n          {-(Assignment\n            {-(Variable\n              {-(Identifier)-}\n              {-(Identifier)-})-}\n            {-(Float)-})-})-}\n        {-(Call\n          {-(MemberAccess\n            {-(MemberAccess\n              {-(Identifier)-})-})-}\n          {-(Plus\n            {-(Identifier)-}\n            {-(Identifier)-})-}\n          {-(Empty)-})-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Float.parseA.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n                (Identifier))\n              (Float))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Float.parseB.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n                (Identifier))\n              (Float)))\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n                (Identifier))\n              (Float)))\n          (Call\n            (MemberAccess\n              (MemberAccess\n                (Identifier)))\n            (Plus\n              (Identifier)\n              (Identifier))\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/For.A.java",
    "content": "class ForDemo {\n    public static void main(String[] args){\n         for(int i=1; i<11; i++){\n              System.out.println(\"Count is: \" + i);\n         }\n    }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/For.B.java",
    "content": "class ForDemo {\n    public static void main(String[] args){\n         for(int i: list){\n              System.out.println(\"Count is: \" + i);\n         }\n    }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/For.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (AccessibilityModifier)\n        (AccessibilityModifier)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Array\n            (Empty)\n            (Identifier)))\n        (Statements\n        {+(ForEach\n          {+(Variable\n            {+(Int)+}\n            {+(Identifier)+})+}\n          {+(Identifier)+}\n          {+(Statements\n            {+(Call\n              {+(MemberAccess\n                {+(MemberAccess\n                  {+(Identifier)+})+})+}\n              {+(Plus\n                {+(TextElement)+}\n                {+(Identifier)+})+}\n              {+(Empty)+})+})+})+}\n        {-(For\n          {-(Statements\n            {-(Assignment\n              {-(Variable\n                {-(Int)-}\n                {-(Identifier)-})-}\n              {-(Integer)-})-})-}\n          {-(LessThan\n            {-(Identifier)-}\n            {-(Integer)-})-}\n          {-(Statements\n            {-(PostIncrement\n              {-(Identifier)-})-})-}\n          {-(Statements\n            {-(Call\n              {-(MemberAccess\n                {-(MemberAccess\n                  {-(Identifier)-})-})-}\n              {-(Plus\n                {-(TextElement)-}\n                {-(Identifier)-})-}\n              {-(Empty)-})-})-})-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/For.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (AccessibilityModifier)\n        (AccessibilityModifier)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Array\n            (Empty)\n            (Identifier)))\n        (Statements\n        {+(For\n          {+(Statements\n            {+(Assignment\n              {+(Variable\n                {+(Int)+}\n                {+(Identifier)+})+}\n              {+(Integer)+})+})+}\n          {+(LessThan\n            {+(Identifier)+}\n            {+(Integer)+})+}\n          {+(Statements\n            {+(PostIncrement\n              {+(Identifier)+})+})+}\n          {+(Statements\n            {+(Call\n              {+(MemberAccess\n                {+(MemberAccess\n                  {+(Identifier)+})+})+}\n              {+(Plus\n                {+(TextElement)+}\n                {+(Identifier)+})+}\n              {+(Empty)+})+})+})+}\n        {-(ForEach\n          {-(Variable\n            {-(Int)-}\n            {-(Identifier)-})-}\n          {-(Identifier)-}\n          {-(Statements\n            {-(Call\n              {-(MemberAccess\n                {-(MemberAccess\n                  {-(Identifier)-})-})-}\n              {-(Plus\n                {-(TextElement)-}\n                {-(Identifier)-})-}\n              {-(Empty)-})-})-})-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/For.parseA.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (AccessibilityModifier)\n        (AccessibilityModifier)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Array\n            (Empty)\n            (Identifier)))\n        (Statements\n          (For\n            (Statements\n              (Assignment\n                (Variable\n                  (Int)\n                  (Identifier))\n                (Integer)))\n            (LessThan\n              (Identifier)\n              (Integer))\n            (Statements\n              (PostIncrement\n                (Identifier)))\n            (Statements\n              (Call\n                (MemberAccess\n                  (MemberAccess\n                    (Identifier)))\n                (Plus\n                  (TextElement)\n                  (Identifier))\n                (Empty)))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/For.parseB.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (AccessibilityModifier)\n        (AccessibilityModifier)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Array\n            (Empty)\n            (Identifier)))\n        (Statements\n          (ForEach\n            (Variable\n              (Int)\n              (Identifier))\n            (Identifier)\n            (Statements\n              (Call\n                (MemberAccess\n                  (MemberAccess\n                    (Identifier)))\n                (Plus\n                  (TextElement)\n                  (Identifier))\n                (Empty)))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/If.A.java",
    "content": "if (x)\n  y;\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/If.B.java",
    "content": "if (x=1)\n  System.out.print(x);\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/If.diffA-B.txt",
    "content": "(Statements\n  (If\n  { (Identifier)\n  ->(Assignment\n    {+(Identifier)+}\n    {+(Integer)+}) }\n  { (Identifier)\n  ->(Call\n    {+(MemberAccess\n      {+(MemberAccess\n        {+(Identifier)+})+})+}\n    {+(Identifier)+}\n    {+(Empty)+}) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/If.diffB-A.txt",
    "content": "(Statements\n  (If\n  { (Assignment\n    {-(Identifier)-}\n    {-(Integer)-})\n  ->(Identifier) }\n  { (Call\n    {-(MemberAccess\n      {-(MemberAccess\n        {-(Identifier)-})-})-}\n    {-(Identifier)-}\n    {-(Empty)-})\n  ->(Identifier) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/If.parseA.txt",
    "content": "(Statements\n  (If\n    (Identifier)\n    (Identifier)\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/If.parseB.txt",
    "content": "(Statements\n  (If\n    (Assignment\n      (Identifier)\n      (Integer))\n    (Call\n      (MemberAccess\n        (MemberAccess\n          (Identifier)))\n      (Identifier)\n      (Empty))\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Import.A.java",
    "content": "import javax.swing.JOptionPane;  \n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Import.B.java",
    "content": "import java.until.*;  \n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Import.diffA-B.txt",
    "content": "(Statements\n  (Import\n  {+(Identifier)+}\n  {+(Identifier)+}\n  {+(Asterisk)+}\n  {-(Identifier)-}\n  {-(Identifier)-}\n  {-(Identifier)-}))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Import.diffB-A.txt",
    "content": "(Statements\n  (Import\n  {+(Identifier)+}\n  { (Identifier)\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) }\n  {-(Asterisk)-}))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Import.parseA.txt",
    "content": "(Statements\n  (Import\n    (Identifier)\n    (Identifier)\n    (Identifier)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Import.parseB.txt",
    "content": "(Statements\n  (Import\n    (Identifier)\n    (Identifier)\n    (Asterisk)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Int.A.java",
    "content": "public class Point {\n  void dinosaur() {\n    Int x = 1;\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Int.B.java",
    "content": "public class Point {\n  void dinosaur() {\n    Int A = 123;\n    Int B = 10;\n    System.out.print(A + B); \n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Int.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n              { (Identifier)\n              ->(Identifier) })\n            { (Integer)\n            ->(Integer) }))\n        {+(Statements\n          {+(Assignment\n            {+(Variable\n              {+(Identifier)+}\n              {+(Identifier)+})+}\n            {+(Integer)+})+})+}\n        {+(Call\n          {+(MemberAccess\n            {+(MemberAccess\n              {+(Identifier)+})+})+}\n          {+(Plus\n            {+(Identifier)+}\n            {+(Identifier)+})+}\n          {+(Empty)+})+})))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Int.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n              { (Identifier)\n              ->(Identifier) })\n            { (Integer)\n            ->(Integer) }))\n        {-(Statements\n          {-(Assignment\n            {-(Variable\n              {-(Identifier)-}\n              {-(Identifier)-})-}\n            {-(Integer)-})-})-}\n        {-(Call\n          {-(MemberAccess\n            {-(MemberAccess\n              {-(Identifier)-})-})-}\n          {-(Plus\n            {-(Identifier)-}\n            {-(Identifier)-})-}\n          {-(Empty)-})-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Int.parseA.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n                (Identifier))\n              (Integer))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Int.parseB.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n                (Identifier))\n              (Integer)))\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n                (Identifier))\n              (Integer)))\n          (Call\n            (MemberAccess\n              (MemberAccess\n                (Identifier)))\n            (Plus\n              (Identifier)\n              (Identifier))\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Interface.A.java",
    "content": "interface Top {\n}\n// normal declaration\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Interface.B.java",
    "content": "@interface TerminationHandle {\n    Bar foo = 1;\n}\n// annotation type declaration\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Interface.diffA-B.txt",
    "content": "(Statements\n  (InterfaceDeclaration\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n    {+(Statements\n      {+(Assignment\n        {+(Variable\n          {+(Identifier)+}\n          {+(Identifier)+})+}\n        {+(Integer)+})+})+}))\n  (Context\n  { (Comment)\n  ->(Comment) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Interface.diffB-A.txt",
    "content": "(Statements\n  (InterfaceDeclaration\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n    {-(Statements\n      {-(Assignment\n        {-(Variable\n          {-(Identifier)-}\n          {-(Identifier)-})-}\n        {-(Integer)-})-})-}))\n  (Context\n  { (Comment)\n  ->(Comment) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Interface.parseA.txt",
    "content": "(Statements\n  (InterfaceDeclaration\n    (Identifier)\n    (Statements))\n  (Context\n    (Comment)\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Interface.parseB.txt",
    "content": "(Statements\n  (InterfaceDeclaration\n    (Identifier)\n    (Statements\n      (Statements\n        (Assignment\n          (Variable\n            (Identifier)\n            (Identifier))\n          (Integer)))))\n  (Context\n    (Comment)\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Lambda.A.java",
    "content": "class LambdaTest {\n    void singleton() {\n        version -> create;\n    }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Lambda.B.java",
    "content": "class LambdaTest {\n    void singleton() {\n      stateOwner.add(x -> System.out.println(\"State changed\"));\n    }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Lambda.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n        {+(Call\n          {+(MemberAccess\n            {+(Identifier)+})+}\n          {+(Lambda\n            {+(Identifier)+}\n            {+(LambdaBody\n              {+(Call\n                {+(MemberAccess\n                  {+(MemberAccess\n                    {+(Identifier)+})+})+}\n                {+(TextElement)+}\n                {+(Empty)+})+})+})+}\n          {+(Empty)+})+}\n        {-(Lambda\n          {-(Identifier)-}\n          {-(LambdaBody\n            {-(Identifier)-})-})-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Lambda.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n        {+(Lambda\n          {+(Identifier)+}\n          {+(LambdaBody\n            {+(Identifier)+})+})+}\n        {-(Call\n          {-(MemberAccess\n            {-(Identifier)-})-}\n          {-(Lambda\n            {-(Identifier)-}\n            {-(LambdaBody\n              {-(Call\n                {-(MemberAccess\n                  {-(MemberAccess\n                    {-(Identifier)-})-})-}\n                {-(TextElement)-}\n                {-(Empty)-})-})-})-}\n          {-(Empty)-})-})))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Lambda.parseA.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Lambda\n            (Identifier)\n            (LambdaBody\n              (Identifier))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Lambda.parseB.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Call\n            (MemberAccess\n              (Identifier))\n            (Lambda\n              (Identifier)\n              (LambdaBody\n                (Call\n                  (MemberAccess\n                    (MemberAccess\n                      (Identifier)))\n                  (TextElement)\n                  (Empty))))\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ScopedIdentifier.A.java",
    "content": "class Natural {\n    int compare(Object a, Object b) {\n      (a).compareTo(b);\n    }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ScopedIdentifier.B.java",
    "content": "static final class EventLoopWorker extends Scheduler.Worker {\n\n    }\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ScopedIdentifier.diffA-B.txt",
    "content": "(Statements\n  (Class\n  {+(AccessibilityModifier)+}\n  {+(AccessibilityModifier)+}\n  { (Identifier)\n  ->(Identifier) }\n  {+(MemberAccess\n    {+(Identifier)+})+}\n    (Statements\n    {-(Method\n      {-(Int)-}\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(Annotation\n        {-(Identifier)-}\n        {-(Identifier)-})-}\n      {-(Annotation\n        {-(Identifier)-}\n        {-(Identifier)-})-}\n      {-(Statements\n        {-(Call\n          {-(MemberAccess\n            {-(Identifier)-})-}\n          {-(Identifier)-}\n          {-(Empty)-})-})-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ScopedIdentifier.diffB-A.txt",
    "content": "(Statements\n  (Class\n  {-(AccessibilityModifier)-}\n  {-(AccessibilityModifier)-}\n  { (Identifier)\n  ->(Identifier) }\n  {-(MemberAccess\n    {-(Identifier)-})-}\n    (Statements\n    {+(Method\n      {+(Int)+}\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(Annotation\n        {+(Identifier)+}\n        {+(Identifier)+})+}\n      {+(Annotation\n        {+(Identifier)+}\n        {+(Identifier)+})+}\n      {+(Statements\n        {+(Call\n          {+(MemberAccess\n            {+(Identifier)+})+}\n          {+(Identifier)+}\n          {+(Empty)+})+})+})+})))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ScopedIdentifier.parseA.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Int)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Identifier))\n        (Annotation\n          (Identifier)\n          (Identifier))\n        (Statements\n          (Call\n            (MemberAccess\n              (Identifier))\n            (Identifier)\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/ScopedIdentifier.parseB.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (AccessibilityModifier)\n    (Identifier)\n    (MemberAccess\n      (Identifier))\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/SpreadParameter.A.java",
    "content": "class Dinosaur {\n  Disposable(Disposable... resources) {\n      }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/SpreadParameter.B.java",
    "content": "class Dinosaur {\n  Disposable(int ...resources) {\n      }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/SpreadParameter.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Constructor\n        (Identifier)\n        (SpreadParameter\n          (Variable\n          { (Identifier)\n          ->(Int) }\n            (Identifier)))\n        (Statements)))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/SpreadParameter.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Constructor\n        (Identifier)\n        (SpreadParameter\n          (Variable\n          { (Int)\n          ->(Identifier) }\n            (Identifier)))\n        (Statements)))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/SpreadParameter.parseA.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Constructor\n        (Identifier)\n        (SpreadParameter\n          (Variable\n            (Identifier)\n            (Identifier)))\n        (Statements)))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/SpreadParameter.parseB.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Constructor\n        (Identifier)\n        (SpreadParameter\n          (Variable\n            (Int)\n            (Identifier)))\n        (Statements)))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/String.A.java",
    "content": "public class Point {\n  void dinosaur() {\n    String str = \"yo wassup\";\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/String.B.java",
    "content": "public class Point {\n  void dinosaur() {\n    String gfg3 = String.format(\"%07d\", num);\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/String.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n              { (Identifier)\n              ->(Identifier) })\n            { (TextElement)\n            ->(Call\n              {+(MemberAccess\n                {+(Identifier)+})+}\n              {+(TextElement)+}\n              {+(Identifier)+}\n              {+(Empty)+}) })))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/String.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n              { (Identifier)\n              ->(Identifier) })\n            { (Call\n              {-(MemberAccess\n                {-(Identifier)-})-}\n              {-(TextElement)-}\n              {-(Identifier)-}\n              {-(Empty)-})\n            ->(TextElement) })))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/String.parseA.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n                (Identifier))\n              (TextElement))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/String.parseB.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n                (Identifier))\n              (Call\n                (MemberAccess\n                  (Identifier))\n                (TextElement)\n                (Identifier)\n                (Empty)))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Switch.A.java",
    "content": "public class Test\n{\n    public static void main(String[] args)\n    {\n        int day = 5;\n        String dayString;\n\n        switch (day)\n        {\n            case 1:  dayString = \"Monday\";\n                     break;\n            case 2:  dayString = \"Tuesday\";\n                     break;\n            case 3:  dayString = \"Wednesday\";\n                     break;\n            case 4:  dayString = \"Thursday\";\n                     break;\n            case 5:  dayString = \"Friday\";\n                     break;\n            case 6:  dayString = \"Saturday\";\n                     break;\n            case 7:  dayString = \"Sunday\";\n                     break;\n            default: dayString = \"Invalid day\";\n                     break;\n        }\n        System.out.println(dayString);\n    }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Switch.B.java",
    "content": "public class Test\n{\n    public static void main(String[] args)\n    {\n        int day = 5;\n        int cupcakes = 2;\n\n        switch (day)\n        {\n            case 1:  cupcakes = 1;\n                     break;\n            default: cupcakes = 2;\n                     break;\n        }\n        System.out.println(dayString);\n    }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Switch.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (AccessibilityModifier)\n        (AccessibilityModifier)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Array\n            (Empty)\n            (Identifier)))\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Int)\n                (Identifier))\n              (Integer)))\n          (Statements\n          {+(Assignment\n            {+(Variable\n              {+(Int)+}\n              {+(Identifier)+})+}\n            {+(Integer)+})+}\n          {-(Variable\n            {-(Identifier)-}\n            {-(Identifier)-})-})\n          (Match\n            (Identifier)\n            (Statements\n              (Pattern\n                (Integer)\n                (Statements\n                  (Assignment\n                  { (Identifier)\n                  ->(Identifier) }\n                  { (TextElement)\n                  ->(Integer) })\n                  (Break\n                    (Empty))))\n            {+(Pattern\n              {+(Empty)+}\n              {+(Statements\n                {+(Assignment\n                  {+(Identifier)+}\n                  {+(Integer)+})+}\n                {+(Break\n                  {+(Empty)+})+})+})+}\n            {-(Pattern\n              {-(Integer)-}\n              {-(Statements\n                {-(Assignment\n                  {-(Identifier)-}\n                  {-(TextElement)-})-}\n                {-(Break\n                  {-(Empty)-})-})-})-}\n            {-(Pattern\n              {-(Integer)-}\n              {-(Statements\n                {-(Assignment\n                  {-(Identifier)-}\n                  {-(TextElement)-})-}\n                {-(Break\n                  {-(Empty)-})-})-})-}\n            {-(Pattern\n              {-(Integer)-}\n              {-(Statements\n                {-(Assignment\n                  {-(Identifier)-}\n                  {-(TextElement)-})-}\n                {-(Break\n                  {-(Empty)-})-})-})-}\n            {-(Pattern\n              {-(Integer)-}\n              {-(Statements\n                {-(Assignment\n                  {-(Identifier)-}\n                  {-(TextElement)-})-}\n                {-(Break\n                  {-(Empty)-})-})-})-}\n            {-(Pattern\n              {-(Integer)-}\n              {-(Statements\n                {-(Assignment\n                  {-(Identifier)-}\n                  {-(TextElement)-})-}\n                {-(Break\n                  {-(Empty)-})-})-})-}\n            {-(Pattern\n              {-(Integer)-}\n              {-(Statements\n                {-(Assignment\n                  {-(Identifier)-}\n                  {-(TextElement)-})-}\n                {-(Break\n                  {-(Empty)-})-})-})-}\n            {-(Pattern\n              {-(Empty)-}\n              {-(Statements\n                {-(Assignment\n                  {-(Identifier)-}\n                  {-(TextElement)-})-}\n                {-(Break\n                  {-(Empty)-})-})-})-}))\n          (Call\n            (MemberAccess\n              (MemberAccess\n                (Identifier)))\n            (Identifier)\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Switch.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (AccessibilityModifier)\n        (AccessibilityModifier)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Array\n            (Empty)\n            (Identifier)))\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Int)\n                (Identifier))\n              (Integer)))\n          (Statements\n          {+(Variable\n            {+(Identifier)+}\n            {+(Identifier)+})+}\n          {-(Assignment\n            {-(Variable\n              {-(Int)-}\n              {-(Identifier)-})-}\n            {-(Integer)-})-})\n          (Match\n            (Identifier)\n            (Statements\n              (Pattern\n                (Integer)\n                (Statements\n                  (Assignment\n                  { (Identifier)\n                  ->(Identifier) }\n                  { (Integer)\n                  ->(TextElement) })\n                  (Break\n                    (Empty))))\n            {+(Pattern\n              {+(Integer)+}\n              {+(Statements\n                {+(Assignment\n                  {+(Identifier)+}\n                  {+(TextElement)+})+}\n                {+(Break\n                  {+(Empty)+})+})+})+}\n              (Pattern\n              { (Empty)\n              ->(Integer) }\n                (Statements\n                  (Assignment\n                  { (Identifier)\n                  ->(Identifier) }\n                  { (Integer)\n                  ->(TextElement) })\n                  (Break\n                    (Empty))))\n            {+(Pattern\n              {+(Integer)+}\n              {+(Statements\n                {+(Assignment\n                  {+(Identifier)+}\n                  {+(TextElement)+})+}\n                {+(Break\n                  {+(Empty)+})+})+})+}\n            {+(Pattern\n              {+(Integer)+}\n              {+(Statements\n                {+(Assignment\n                  {+(Identifier)+}\n                  {+(TextElement)+})+}\n                {+(Break\n                  {+(Empty)+})+})+})+}\n            {+(Pattern\n              {+(Integer)+}\n              {+(Statements\n                {+(Assignment\n                  {+(Identifier)+}\n                  {+(TextElement)+})+}\n                {+(Break\n                  {+(Empty)+})+})+})+}\n            {+(Pattern\n              {+(Integer)+}\n              {+(Statements\n                {+(Assignment\n                  {+(Identifier)+}\n                  {+(TextElement)+})+}\n                {+(Break\n                  {+(Empty)+})+})+})+}\n            {+(Pattern\n              {+(Empty)+}\n              {+(Statements\n                {+(Assignment\n                  {+(Identifier)+}\n                  {+(TextElement)+})+}\n                {+(Break\n                  {+(Empty)+})+})+})+}))\n          (Call\n            (MemberAccess\n              (MemberAccess\n                (Identifier)))\n            (Identifier)\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Switch.parseA.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (AccessibilityModifier)\n        (AccessibilityModifier)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Array\n            (Empty)\n            (Identifier)))\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Int)\n                (Identifier))\n              (Integer)))\n          (Statements\n            (Variable\n              (Identifier)\n              (Identifier)))\n          (Match\n            (Identifier)\n            (Statements\n              (Pattern\n                (Integer)\n                (Statements\n                  (Assignment\n                    (Identifier)\n                    (TextElement))\n                  (Break\n                    (Empty))))\n              (Pattern\n                (Integer)\n                (Statements\n                  (Assignment\n                    (Identifier)\n                    (TextElement))\n                  (Break\n                    (Empty))))\n              (Pattern\n                (Integer)\n                (Statements\n                  (Assignment\n                    (Identifier)\n                    (TextElement))\n                  (Break\n                    (Empty))))\n              (Pattern\n                (Integer)\n                (Statements\n                  (Assignment\n                    (Identifier)\n                    (TextElement))\n                  (Break\n                    (Empty))))\n              (Pattern\n                (Integer)\n                (Statements\n                  (Assignment\n                    (Identifier)\n                    (TextElement))\n                  (Break\n                    (Empty))))\n              (Pattern\n                (Integer)\n                (Statements\n                  (Assignment\n                    (Identifier)\n                    (TextElement))\n                  (Break\n                    (Empty))))\n              (Pattern\n                (Integer)\n                (Statements\n                  (Assignment\n                    (Identifier)\n                    (TextElement))\n                  (Break\n                    (Empty))))\n              (Pattern\n                (Empty)\n                (Statements\n                  (Assignment\n                    (Identifier)\n                    (TextElement))\n                  (Break\n                    (Empty))))))\n          (Call\n            (MemberAccess\n              (MemberAccess\n                (Identifier)))\n            (Identifier)\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Switch.parseB.txt",
    "content": "(Statements\n  (Class\n    (AccessibilityModifier)\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (AccessibilityModifier)\n        (AccessibilityModifier)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Array\n            (Empty)\n            (Identifier)))\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Int)\n                (Identifier))\n              (Integer)))\n          (Statements\n            (Assignment\n              (Variable\n                (Int)\n                (Identifier))\n              (Integer)))\n          (Match\n            (Identifier)\n            (Statements\n              (Pattern\n                (Integer)\n                (Statements\n                  (Assignment\n                    (Identifier)\n                    (Integer))\n                  (Break\n                    (Empty))))\n              (Pattern\n                (Empty)\n                (Statements\n                  (Assignment\n                    (Identifier)\n                    (Integer))\n                  (Break\n                    (Empty))))))\n          (Call\n            (MemberAccess\n              (MemberAccess\n                (Identifier)))\n            (Identifier)\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Throws.A.java",
    "content": "class Beyonce {\n  void x() {\n  BufferedReader newReader() throws FileNotFoundException {\n      new BufferedReader(new InputStreamReader(new FileInputStream(file), charset));\n    }\n  }\n}\n// this doesn't work\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Throws.B.java",
    "content": "class Beyonce {\n  BufferedReader newReader() throws FileNotFoundException {\n      new BufferedReader(new InputStreamReader(new FileInputStream(file), charset));\n    }\n}\n// this doesn't work\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/TryCatches.A.java",
    "content": "class Example2{\n   public static void main(String args[]){\n     try{\n         int a[]=new int[7];\n         a[4]=30/0;\n         System.out.println(\"First print statement in try block\");\n     }\n     catch(ArithmeticException e){\n        System.out.println(\"Warning: ArithmeticException\");\n     }\n     catch(ArrayIndexOutOfBoundsException e){\n        System.out.println(\"Warning: ArrayIndexOutOfBoundsException\");\n     }\n     catch(Exception e){\n        System.out.println(\"Warning: Some Other exception\");\n     }\n   System.out.println(\"Out of try-catch block...\");\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/TryCatches.B.java",
    "content": "class Example2{\n  public static void main(String args[]){\n   try{\n      int data = 50;\n   } catch (ArithmeticException e){System.out.println(e);}\n   System.out.println(\"rest of the code...\");\n}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/TryWithResourcesStatement.A.java",
    "content": "class Dino {\n  void hi() {\n      try (CustomAnalyzer analyzer = new CustomAnalyzer()){\n    }\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/TryWithResourcesStatement.B.java",
    "content": "class Dino {\n  void hi() {\n      try (int analyzer = 123){\n    }\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/TryWithResourcesStatement.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (TryWithResources\n            (Assignment\n              (Variable\n              { (Identifier)\n              ->(Int) }\n                (Identifier))\n            { (New\n              {-(Identifier)-})\n            ->(Integer) })\n            (Statements)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/TryWithResourcesStatement.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (TryWithResources\n            (Assignment\n              (Variable\n              { (Int)\n              ->(Identifier) }\n                (Identifier))\n            { (Integer)\n            ->(New\n              {+(Identifier)+}) })\n            (Statements)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/TryWithResourcesStatement.parseA.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (TryWithResources\n            (Assignment\n              (Variable\n                (Identifier)\n                (Identifier))\n              (New\n                (Identifier)))\n            (Statements)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/TryWithResourcesStatement.parseB.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (TryWithResources\n            (Assignment\n              (Variable\n                (Int)\n                (Identifier))\n              (Integer))\n            (Statements)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/TypeArgument.A.java",
    "content": "class Test {\n    void printCollection(Collection<String> c) {\n          // a wildcard collection\n    }\n  }\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/TypeArgument.B.java",
    "content": "class Test {\n    static void printCollection(Collection<?> c) {\n          // a wildcard collection\n        for (Object o : c) {\n            System.out.println(o);\n        }\n    }\n  }\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/TypeArgument.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n      {+(AccessibilityModifier)+}\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (GenericType\n            (Identifier)\n          {+(Wildcard)+}\n          {-(Identifier)-}))\n        (Statements\n          (Context\n            (Comment)\n          { (Empty)\n          ->(ForEach\n            {+(Variable\n              {+(Identifier)+}\n              {+(Identifier)+})+}\n            {+(Identifier)+}\n            {+(Statements\n              {+(Call\n                {+(MemberAccess\n                  {+(MemberAccess\n                    {+(Identifier)+})+})+}\n                {+(Identifier)+}\n                {+(Empty)+})+})+}) }))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/TypeArgument.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n      {-(AccessibilityModifier)-}\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (GenericType\n            (Identifier)\n          {+(Identifier)+}\n          {-(Wildcard)-}))\n        (Statements\n          (Context\n            (Comment)\n          { (ForEach\n            {-(Variable\n              {-(Identifier)-}\n              {-(Identifier)-})-}\n            {-(Identifier)-}\n            {-(Statements\n              {-(Call\n                {-(MemberAccess\n                  {-(MemberAccess\n                    {-(Identifier)-})-})-}\n                {-(Identifier)-}\n                {-(Empty)-})-})-})\n          ->(Empty) }))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/TypeArgument.parseA.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (GenericType\n            (Identifier)\n            (Identifier)))\n        (Statements\n          (Context\n            (Comment)\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/TypeArgument.parseB.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (AccessibilityModifier)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (GenericType\n            (Identifier)\n            (Wildcard)))\n        (Statements\n          (Context\n            (Comment)\n            (ForEach\n              (Variable\n                (Identifier)\n                (Identifier))\n              (Identifier)\n              (Statements\n                (Call\n                  (MemberAccess\n                    (MemberAccess\n                      (Identifier)))\n                  (Identifier)\n                  (Empty))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Update.A.java",
    "content": "foo++;\n++bar;\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Update.B.java",
    "content": "baz--;\n--boo;\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Update.diffA-B.txt",
    "content": "(Statements\n{+(PostDecrement\n  {+(Identifier)+})+}\n{+(PreDecrement\n  {+(Identifier)+})+}\n{-(PostIncrement\n  {-(Identifier)-})-}\n{-(PreIncrement\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Update.diffB-A.txt",
    "content": "(Statements\n{+(PostIncrement\n  {+(Identifier)+})+}\n{+(PreIncrement\n  {+(Identifier)+})+}\n{-(PostDecrement\n  {-(Identifier)-})-}\n{-(PreDecrement\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Update.parseA.txt",
    "content": "(Statements\n  (PostIncrement\n    (Identifier))\n  (PreIncrement\n    (Identifier)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Update.parseB.txt",
    "content": "(Statements\n  (PostDecrement\n    (Identifier))\n  (PreDecrement\n    (Identifier)))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/VariableDeclaration.A.java",
    "content": "class Dino {\n  void test() {\n    int x = 3;\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/VariableDeclaration.B.java",
    "content": "class Dino {\n  void test() {\n    float x = 3.0;\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/VariableDeclaration.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n              { (Int)\n              ->(Float) }\n                (Identifier))\n            { (Integer)\n            ->(Float) })))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/VariableDeclaration.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n              { (Float)\n              ->(Int) }\n                (Identifier))\n            { (Float)\n            ->(Integer) })))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/VariableDeclaration.parseA.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Int)\n                (Identifier))\n              (Integer))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/VariableDeclaration.parseB.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Float)\n                (Identifier))\n              (Float))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/While.A.java",
    "content": "class WhileDemo {\n    public static void main(String[] args){\n        int count = 1;\n        while (count < 11) {\n            System.out.println(\"Count is: \" + count);\n            count++;\n        }\n    }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/While.B.java",
    "content": "class WhileDemo {\n    void main(String[] args){\n        String theString = \"cheese\";\n        while (theString != \"poop\") {\n            System.out.println(\"Count is: \" + theString);\n        }\n    }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/While.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n      {-(AccessibilityModifier)-}\n      {-(AccessibilityModifier)-}\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Array\n            (Empty)\n            (Identifier)))\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n              { (Int)\n              ->(Identifier) }\n              { (Identifier)\n              ->(Identifier) })\n            { (Integer)\n            ->(TextElement) }))\n          (While\n          { (LessThan\n            {-(Identifier)-}\n            {-(Integer)-})\n          ->(Not\n            {+(Equal\n              {+(Identifier)+}\n              {+(TextElement)+})+}) }\n            (Statements\n              (Call\n                (MemberAccess\n                  (MemberAccess\n                    (Identifier)))\n                (Plus\n                  (TextElement)\n                { (Identifier)\n                ->(Identifier) })\n                (Empty))\n            {-(PostIncrement\n              {-(Identifier)-})-})))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/While.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n      {+(AccessibilityModifier)+}\n      {+(AccessibilityModifier)+}\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Array\n            (Empty)\n            (Identifier)))\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n              { (Identifier)\n              ->(Int) }\n              { (Identifier)\n              ->(Identifier) })\n            { (TextElement)\n            ->(Integer) }))\n          (While\n          { (Not\n            {-(Equal\n              {-(Identifier)-}\n              {-(TextElement)-})-})\n          ->(LessThan\n            {+(Identifier)+}\n            {+(Integer)+}) }\n            (Statements\n              (Call\n                (MemberAccess\n                  (MemberAccess\n                    (Identifier)))\n                (Plus\n                  (TextElement)\n                { (Identifier)\n                ->(Identifier) })\n                (Empty))\n            {+(PostIncrement\n              {+(Identifier)+})+})))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/While.parseA.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (AccessibilityModifier)\n        (AccessibilityModifier)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Array\n            (Empty)\n            (Identifier)))\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Int)\n                (Identifier))\n              (Integer)))\n          (While\n            (LessThan\n              (Identifier)\n              (Integer))\n            (Statements\n              (Call\n                (MemberAccess\n                  (MemberAccess\n                    (Identifier)))\n                (Plus\n                  (TextElement)\n                  (Identifier))\n                (Empty))\n              (PostIncrement\n                (Identifier)))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/While.parseB.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (Array\n            (Empty)\n            (Identifier)))\n        (Statements\n          (Statements\n            (Assignment\n              (Variable\n                (Identifier)\n                (Identifier))\n              (TextElement)))\n          (While\n            (Not\n              (Equal\n                (Identifier)\n                (TextElement)))\n            (Statements\n              (Call\n                (MemberAccess\n                  (MemberAccess\n                    (Identifier)))\n                (Plus\n                  (TextElement)\n                  (Identifier))\n                (Empty)))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Wildcard.A.java",
    "content": "class Connectable {\n  void connect(Consumer<? super Disposable> connection);\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Wildcard.B.java",
    "content": "class Connectable {\n  void connect(C<? extends B> connection);\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Wildcard.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (GenericType\n          { (Identifier)\n          ->(Identifier) }\n            (Wildcard\n            { (WildcardBoundSuper\n              {-(Identifier)-})\n            ->(WildcardBoundExtends\n              {+(Identifier)+}) })))\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Wildcard.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (GenericType\n          { (Identifier)\n          ->(Identifier) }\n            (Wildcard\n            { (WildcardBoundExtends\n              {-(Identifier)-})\n            ->(WildcardBoundSuper\n              {+(Identifier)+}) })))\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Wildcard.parseA.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (GenericType\n            (Identifier)\n            (Wildcard\n              (WildcardBoundSuper\n                (Identifier)))))\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/Wildcard.parseB.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n    (Statements\n      (Method\n        (Void)\n        (Empty)\n        (Identifier)\n        (Annotation\n          (Identifier)\n          (GenericType\n            (Identifier)\n            (Wildcard\n              (WildcardBoundExtends\n                (Identifier)))))\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/array-access.java",
    "content": "class Dinosaur {\n  void apply() {\n    (T1)a[0];\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/assertStatement.java",
    "content": "class Dino {\n  void fn() {\n    for (File file : snap.index()) {\n        assert oldFile == null;\n    }\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/assertStringLiteral.java",
    "content": "class Dino {\n  void hi() {\n    assert failure : \"expecting non null\";\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/enum.java",
    "content": "enum HandSign {\n   SCISSOR, PAPER, STONE\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/methodReference.java",
    "content": "class TermsSetQueryBuilder {\n    void Terms() {\n        min = read(Script::new);\n    }\n}\n\nclass TermsSetQueryBuilder {\n    void Terms() {\n        min = read(Script::yodawg);\n    }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/modifier-abstract.java",
    "content": "abstract class Point {\n\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/modifier-private.java",
    "content": "\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/modifier-protected.java",
    "content": "protected class Point {\n\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/modifier-public.java",
    "content": "public class Point {\n\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/modifier-static.java",
    "content": "public static class Point {\n\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/null.java",
    "content": "public class Point {\n  void dinosaur() {\n    String str = null;\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/package.java",
    "content": "package myVector;\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/return.java",
    "content": "public class Point {\n  void dinosaur() {\n    return x;\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/try.java",
    "content": "public class Bar {\n  public void foo() {\n    try {\n      System.out.println(1/0);\n    } catch (Exception e) {\n      e.printStackTrace(System.out);\n    }\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/java/corpus/try_with_resources.java",
    "content": "public class Bar {\n  public void foo() {\n   try (BufferedReader br = new BufferedReader()) {\n      System.out.println(1/0);\n    } catch (Exception e) {\n      e.printStackTrace(System.out);\n    }\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/analysis/exports/lib.js",
    "content": "export function square(x) {\n    return x * x;\n}\nexport function area(x, y) {\n  return x * y;\n}\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/analysis/exports/main.js",
    "content": "import { square, area } from 'lib';\nconsole.log(square(11)); // 121\nconsole.log(area(4, 3)); // 12\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/analysis/foo.js",
    "content": "module.exports.bar = bar\n\nfunction bar() {\n  return \"this is the bar function\";\n}\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/analysis/main.js",
    "content": "const foo = require('./foo')\n\nfoo.bar()\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/analysis/main2.js",
    "content": "const bar = require('bar')\nconst tos = require('tos')\nconst wap = require('wap')\n\nconsole.log(bar())\nconsole.log(tos())\nconsole.log(wap())\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/anonymous-function.A.js",
    "content": "function(a,b) { return a + b; }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/anonymous-function.B.js",
    "content": "function(b,c) { return b * c; }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/anonymous-function.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Empty)\n  {-(RequiredParameter\n    {-(Empty)-}\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(Empty)-})-}\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n  {+(RequiredParameter\n    {+(Empty)+}\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(Empty)+})+}\n    (StatementBlock\n      (Return\n      { (Plus\n        {-(Identifier)-}\n        {-(Identifier)-})\n      ->(Times\n        {+(Identifier)+}\n        {+(Identifier)+}) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/anonymous-function.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Empty)\n  {+(RequiredParameter\n    {+(Empty)+}\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(Empty)+})+}\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n  {-(RequiredParameter\n    {-(Empty)-}\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(Empty)-})-}\n    (StatementBlock\n      (Return\n      { (Times\n        {-(Identifier)-}\n        {-(Identifier)-})\n      ->(Plus\n        {+(Identifier)+}\n        {+(Identifier)+}) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/anonymous-function.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Function \n          (StatementBlock \n            (Statement \n              (ReturnStatement \n                (Expression \n                  (BinaryExpression \n                    (Token) \n                    (Expression \n                      (Identifier \"a\")) \n                    (Expression \n                      (Identifier \"b\"))))))) \n          (FormalParameters \n            (RequiredParameter \n              (Identifier \"a\")) \n            (RequiredParameter \n              (Identifier \"b\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/anonymous-function.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Function \n          (StatementBlock \n            (Statement \n              (ReturnStatement \n                (Expression \n                  (BinaryExpression \n                    (Token) \n                    (Expression \n                      (Identifier \"b\")) \n                    (Expression \n                      (Identifier \"c\"))))))) \n          (FormalParameters \n            (RequiredParameter \n              (Identifier \"b\")) \n            (RequiredParameter \n              (Identifier \"c\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/anonymous-parameterless-function.A.js",
    "content": "function() { return 'hi'; }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/anonymous-parameterless-function.B.js",
    "content": "function() { return 'hello'; }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/anonymous-parameterless-function.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Empty)\n    (StatementBlock\n      (Return\n      { (TextElement)\n      ->(TextElement) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/anonymous-parameterless-function.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Empty)\n    (StatementBlock\n      (Return\n      { (TextElement)\n      ->(TextElement) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/anonymous-parameterless-function.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Function \n          (StatementBlock \n            (Statement \n              (ReturnStatement \n                (Expression \n                  (String))))) \n          (FormalParameters))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/anonymous-parameterless-function.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Function \n          (StatementBlock \n            (Statement \n              (ReturnStatement \n                (Expression \n                  (String))))) \n          (FormalParameters))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/array.A.js",
    "content": "[ \"item1\" ];\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/array.B.js",
    "content": "[ \"item1\", \"item2\" ];\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/array.diffA-B.txt",
    "content": "(Statements\n  (Array\n    (TextElement)\n  {+(TextElement)+}))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/array.diffB-A.txt",
    "content": "(Statements\n  (Array\n    (TextElement)\n  {-(TextElement)-}))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/array.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Array \n          (Expression \n            (String)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/array.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Array \n          (Expression \n            (String)) \n          (Expression \n            (String)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/arrow-function.A.js",
    "content": "(f, g) => { return h; };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/arrow-function.B.js",
    "content": "(f, g) => { return g; };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/arrow-function.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Empty)\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n      (Return\n      { (Identifier)\n      ->(Identifier) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/arrow-function.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Empty)\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n      (Return\n      { (Identifier)\n      ->(Identifier) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/arrow-function.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (ArrowFunction \n          (StatementBlock \n            (Statement \n              (ReturnStatement \n                (Expression \n                  (Identifier \"h\"))))) \n          (FormalParameters \n            (RequiredParameter \n              (Identifier \"f\")) \n            (RequiredParameter \n              (Identifier \"g\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/arrow-function.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (ArrowFunction \n          (StatementBlock \n            (Statement \n              (ReturnStatement \n                (Expression \n                  (Identifier \"g\"))))) \n          (FormalParameters \n            (RequiredParameter \n              (Identifier \"f\")) \n            (RequiredParameter \n              (Identifier \"g\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/assignment-pattern.A.js",
    "content": "var { x = 0 } = foo;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/assignment-pattern.B.js",
    "content": "var { y = 1 } = foo;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/assignment-pattern.diffA-B.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Empty)\n      (Hash\n        (Assignment\n        { (ShorthandPropertyIdentifier)\n        ->(ShorthandPropertyIdentifier) }\n        { (Float)\n        ->(Float) }))\n      (Identifier))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/assignment-pattern.diffB-A.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Empty)\n      (Hash\n        (Assignment\n        { (ShorthandPropertyIdentifier)\n        ->(ShorthandPropertyIdentifier) }\n        { (Float)\n        ->(Float) }))\n      (Identifier))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/assignment-pattern.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (VariableDeclaration \n        (VariableDeclarator \n          (Expression \n            (Identifier \"foo\")) \n          (DestructuringPattern \n            (ObjectPattern \n              (AssignmentPattern \n                (ShorthandPropertyIdentifier \"x\") \n                (Expression \n                  (Number \"0\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/assignment-pattern.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (VariableDeclaration \n        (VariableDeclarator \n          (Expression \n            (Identifier \"foo\")) \n          (DestructuringPattern \n            (ObjectPattern \n              (AssignmentPattern \n                (ShorthandPropertyIdentifier \"y\") \n                (Expression \n                  (Number \"1\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/assignment.A.js",
    "content": "x = 0;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/assignment.B.js",
    "content": "x = 1;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/assignment.diffA-B.txt",
    "content": "(Statements\n  (Assignment\n    (Identifier)\n  { (Float)\n  ->(Float) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/assignment.diffB-A.txt",
    "content": "(Statements\n  (Assignment\n    (Identifier)\n  { (Float)\n  ->(Float) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/assignment.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AssignmentExpression \n          (Identifier \"x\") \n          (Expression \n            (Number \"0\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/assignment.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AssignmentExpression \n          (Identifier \"x\") \n          (Expression \n            (Number \"1\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/bitwise-operator.A.js",
    "content": "i >> j;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/bitwise-operator.B.js",
    "content": "i >> k;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/bitwise-operator.diffA-B.txt",
    "content": "(Statements\n  (RShift\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/bitwise-operator.diffB-A.txt",
    "content": "(Statements\n  (RShift\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/bitwise-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (BinaryExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")) \n          (Expression \n            (Identifier \"j\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/bitwise-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (BinaryExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")) \n          (Expression \n            (Identifier \"k\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/boolean-operator.A.js",
    "content": "i || j;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/boolean-operator.B.js",
    "content": "i && j;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/boolean-operator.diffA-B.txt",
    "content": "(Statements\n{+(And\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(Or\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/boolean-operator.diffB-A.txt",
    "content": "(Statements\n{+(Or\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(And\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/boolean-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (BinaryExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")) \n          (Expression \n            (Identifier \"j\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/boolean-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (BinaryExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")) \n          (Expression \n            (Identifier \"j\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/break.A.js",
    "content": "for (i = 0; i < 10; i++) { if (i === 4) { break; }; i }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/break.B.js",
    "content": "for (i = 0; i < 10; i++) { if (i === 4) { continue; }; i }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/break.diffA-B.txt",
    "content": "(Statements\n  (For\n    (Assignment\n      (Identifier)\n      (Float))\n    (LessThan\n      (Identifier)\n      (Float))\n    (Update\n      (Identifier))\n    (Statements\n      (If\n        (StrictEqual\n          (Identifier)\n          (Float))\n        (Statements\n        {+(Continue\n          {+(Empty)+})+}\n        {-(Break\n          {-(Empty)-})-})\n        (Empty))\n      (Empty)\n      (Identifier))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/break.diffB-A.txt",
    "content": "(Statements\n  (For\n    (Assignment\n      (Identifier)\n      (Float))\n    (LessThan\n      (Identifier)\n      (Float))\n    (Update\n      (Identifier))\n    (Statements\n      (If\n        (StrictEqual\n          (Identifier)\n          (Float))\n        (Statements\n        {+(Break\n          {+(Empty)+})+}\n        {-(Continue\n          {-(Empty)-})-})\n        (Empty))\n      (Empty)\n      (Identifier))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/break.parseA.txt",
    "content": "(Program \n  (Statement \n    (ForStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (IfStatement \n              (Statement \n                (StatementBlock \n                  (Statement \n                    (BreakStatement)))) \n              (ParenthesizedExpression \n                (Expression \n                  (BinaryExpression \n                    (Token) \n                    (Expression \n                      (Identifier \"i\")) \n                    (Expression \n                      (Number \"4\"))))))) \n          (Statement \n            (EmptyStatement \";\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"i\")))))) \n      (ExpressionStatement \n        (Expression \n          (AssignmentExpression \n            (Identifier \"i\") \n            (Expression \n              (Number \"0\"))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (Identifier \"i\")) \n            (Expression \n              (Number \"10\"))))) \n      (Expression \n        (UpdateExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/break.parseB.txt",
    "content": "(Program \n  (Statement \n    (ForStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (IfStatement \n              (Statement \n                (StatementBlock \n                  (Statement \n                    (ContinueStatement)))) \n              (ParenthesizedExpression \n                (Expression \n                  (BinaryExpression \n                    (Token) \n                    (Expression \n                      (Identifier \"i\")) \n                    (Expression \n                      (Number \"4\"))))))) \n          (Statement \n            (EmptyStatement \";\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"i\")))))) \n      (ExpressionStatement \n        (Expression \n          (AssignmentExpression \n            (Identifier \"i\") \n            (Expression \n              (Number \"0\"))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (Identifier \"i\")) \n            (Expression \n              (Number \"10\"))))) \n      (Expression \n        (UpdateExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/chained-callbacks.A.js",
    "content": "this.map(function (a) { return a.b; })\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/chained-callbacks.B.js",
    "content": "this.reduce(function (a) { return b.a; })\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/chained-callbacks.diffA-B.txt",
    "content": "(Statements\n  (Call\n    (MemberAccess\n      (This)\n    { (Identifier)\n    ->(Identifier) })\n    (Function\n      (Empty)\n      (Empty)\n      (Empty)\n      (RequiredParameter\n        (Empty)\n        (Empty)\n        (Identifier)\n        (Empty))\n      (StatementBlock\n        (Return\n          (MemberAccess\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) }))))\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/chained-callbacks.diffB-A.txt",
    "content": "(Statements\n  (Call\n    (MemberAccess\n      (This)\n    { (Identifier)\n    ->(Identifier) })\n    (Function\n      (Empty)\n      (Empty)\n      (Empty)\n      (RequiredParameter\n        (Empty)\n        (Empty)\n        (Identifier)\n        (Empty))\n      (StatementBlock\n        (Return\n          (MemberAccess\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) }))))\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/chained-callbacks.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (MemberExpression \n              (PropertyIdentifier \"map\") \n              (Expression \n                (This \"this\")))) \n          (Arguments \n            (Expression \n              (Function \n                (StatementBlock \n                  (Statement \n                    (ReturnStatement \n                      (Expression \n                        (MemberExpression \n                          (PropertyIdentifier \"b\") \n                          (Expression \n                            (Identifier \"a\"))))))) \n                (FormalParameters \n                  (RequiredParameter \n                    (Identifier \"a\")))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/chained-callbacks.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (MemberExpression \n              (PropertyIdentifier \"reduce\") \n              (Expression \n                (This \"this\")))) \n          (Arguments \n            (Expression \n              (Function \n                (StatementBlock \n                  (Statement \n                    (ReturnStatement \n                      (Expression \n                        (MemberExpression \n                          (PropertyIdentifier \"a\") \n                          (Expression \n                            (Identifier \"b\"))))))) \n                (FormalParameters \n                  (RequiredParameter \n                    (Identifier \"a\")))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/chained-property-access.A.js",
    "content": "return returned.promise().done( newDefer.resolve ).fail( newDefer.reject )\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/chained-property-access.B.js",
    "content": "return returned.promise().done( otherDefer.resolve ).fail( otherDefer.reject )\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/chained-property-access.diffA-B.txt",
    "content": "(Statements\n  (Return\n    (Call\n      (MemberAccess\n        (Call\n          (MemberAccess\n            (Call\n              (MemberAccess\n                (Identifier)\n                (Identifier))\n              (Empty))\n            (Identifier))\n          (MemberAccess\n          { (Identifier)\n          ->(Identifier) }\n            (Identifier))\n          (Empty))\n        (Identifier))\n      (MemberAccess\n      { (Identifier)\n      ->(Identifier) }\n        (Identifier))\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/chained-property-access.diffB-A.txt",
    "content": "(Statements\n  (Return\n    (Call\n      (MemberAccess\n        (Call\n          (MemberAccess\n            (Call\n              (MemberAccess\n                (Identifier)\n                (Identifier))\n              (Empty))\n            (Identifier))\n          (MemberAccess\n          { (Identifier)\n          ->(Identifier) }\n            (Identifier))\n          (Empty))\n        (Identifier))\n      (MemberAccess\n      { (Identifier)\n      ->(Identifier) }\n        (Identifier))\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/chained-property-access.parseA.txt",
    "content": "(Program \n  (Statement \n    (ReturnStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (MemberExpression \n              (PropertyIdentifier \"fail\") \n              (Expression \n                (CallExpression \n                  (Expression \n                    (MemberExpression \n                      (PropertyIdentifier \"done\") \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (MemberExpression \n                              (PropertyIdentifier \"promise\") \n                              (Expression \n                                (Identifier \"returned\")))) \n                          (Arguments))))) \n                  (Arguments \n                    (Expression \n                      (MemberExpression \n                        (PropertyIdentifier \"resolve\") \n                        (Expression \n                          (Identifier \"newDefer\"))))))))) \n          (Arguments \n            (Expression \n              (MemberExpression \n                (PropertyIdentifier \"reject\") \n                (Expression \n                  (Identifier \"newDefer\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/chained-property-access.parseB.txt",
    "content": "(Program \n  (Statement \n    (ReturnStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (MemberExpression \n              (PropertyIdentifier \"fail\") \n              (Expression \n                (CallExpression \n                  (Expression \n                    (MemberExpression \n                      (PropertyIdentifier \"done\") \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (MemberExpression \n                              (PropertyIdentifier \"promise\") \n                              (Expression \n                                (Identifier \"returned\")))) \n                          (Arguments))))) \n                  (Arguments \n                    (Expression \n                      (MemberExpression \n                        (PropertyIdentifier \"resolve\") \n                        (Expression \n                          (Identifier \"otherDefer\"))))))))) \n          (Arguments \n            (Expression \n              (MemberExpression \n                (PropertyIdentifier \"reject\") \n                (Expression \n                  (Identifier \"otherDefer\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/class.A.js",
    "content": "class Foo { bar = 5; static one(a) { return a; }; two(b) { return b; } three(c) { return c; } }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/class.B.js",
    "content": "class Foo { static foo(a) { return a; }; bar(b) { return b; } baz(c) { return c; } }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/class.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (TypeIdentifier)\n    (Statements\n    {+(Method\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(RequiredParameter\n        {+(Empty)+}\n        {+(Empty)+}\n        {+(Identifier)+}\n        {+(Empty)+})+}\n      {+(StatementBlock\n        {+(Return\n          {+(Identifier)+})+})+})+}\n    {+(Method\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(RequiredParameter\n        {+(Empty)+}\n        {+(Empty)+}\n        {+(Identifier)+}\n        {+(Empty)+})+}\n      {+(StatementBlock\n        {+(Return\n          {+(Identifier)+})+})+})+}\n    {+(Method\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(RequiredParameter\n        {+(Empty)+}\n        {+(Empty)+}\n        {+(Identifier)+}\n        {+(Empty)+})+}\n      {+(StatementBlock\n        {+(Return\n          {+(Identifier)+})+})+})+}\n    {-(PublicFieldDefinition\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(Float)-})-}\n    {-(Method\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(RequiredParameter\n        {-(Empty)-}\n        {-(Empty)-}\n        {-(Identifier)-}\n        {-(Empty)-})-}\n      {-(StatementBlock\n        {-(Return\n          {-(Identifier)-})-})-})-}\n    {-(Method\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(RequiredParameter\n        {-(Empty)-}\n        {-(Empty)-}\n        {-(Identifier)-}\n        {-(Empty)-})-}\n      {-(StatementBlock\n        {-(Return\n          {-(Identifier)-})-})-})-}\n    {-(Method\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(RequiredParameter\n        {-(Empty)-}\n        {-(Empty)-}\n        {-(Identifier)-}\n        {-(Empty)-})-}\n      {-(StatementBlock\n        {-(Return\n          {-(Identifier)-})-})-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/class.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (TypeIdentifier)\n    (Statements\n    {+(PublicFieldDefinition\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(Float)+})+}\n      (Method\n        (Empty)\n        (Empty)\n        (Empty)\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (RequiredParameter\n          (Empty)\n          (Empty)\n          (Identifier)\n          (Empty))\n        (StatementBlock\n          (Return\n            (Identifier))))\n      (Method\n        (Empty)\n        (Empty)\n        (Empty)\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (RequiredParameter\n          (Empty)\n          (Empty)\n          (Identifier)\n          (Empty))\n        (StatementBlock\n          (Return\n            (Identifier))))\n      (Method\n        (Empty)\n        (Empty)\n        (Empty)\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (RequiredParameter\n          (Empty)\n          (Empty)\n          (Identifier)\n          (Empty))\n        (StatementBlock\n          (Return\n            (Identifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/class.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (ClassDeclaration \n        (ClassBody \n          (PublicFieldDefinition \n            (Expression \n              (Number \"5\")) \n            (PropertyIdentifier \"bar\")) \n          (MethodDefinition \n            (StatementBlock \n              (Statement \n                (ReturnStatement \n                  (Expression \n                    (Identifier \"a\"))))) \n            (PropertyIdentifier \"one\") \n            (FormalParameters \n              (RequiredParameter \n                (Identifier \"a\")))) \n          (MethodDefinition \n            (StatementBlock \n              (Statement \n                (ReturnStatement \n                  (Expression \n                    (Identifier \"b\"))))) \n            (PropertyIdentifier \"two\") \n            (FormalParameters \n              (RequiredParameter \n                (Identifier \"b\")))) \n          (MethodDefinition \n            (StatementBlock \n              (Statement \n                (ReturnStatement \n                  (Expression \n                    (Identifier \"c\"))))) \n            (PropertyIdentifier \"three\") \n            (FormalParameters \n              (RequiredParameter \n                (Identifier \"c\"))))) \n        (TypeIdentifier \"Foo\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/class.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (ClassDeclaration \n        (ClassBody \n          (MethodDefinition \n            (StatementBlock \n              (Statement \n                (ReturnStatement \n                  (Expression \n                    (Identifier \"a\"))))) \n            (PropertyIdentifier \"foo\") \n            (FormalParameters \n              (RequiredParameter \n                (Identifier \"a\")))) \n          (MethodDefinition \n            (StatementBlock \n              (Statement \n                (ReturnStatement \n                  (Expression \n                    (Identifier \"b\"))))) \n            (PropertyIdentifier \"bar\") \n            (FormalParameters \n              (RequiredParameter \n                (Identifier \"b\")))) \n          (MethodDefinition \n            (StatementBlock \n              (Statement \n                (ReturnStatement \n                  (Expression \n                    (Identifier \"c\"))))) \n            (PropertyIdentifier \"baz\") \n            (FormalParameters \n              (RequiredParameter \n                (Identifier \"c\"))))) \n        (TypeIdentifier \"Foo\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/comma-operator.A.js",
    "content": "a = 1, b = 2;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/comma-operator.B.js",
    "content": "c = {d: (3, 4 + 5, 6)};\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/comma-operator.diffA-B.txt",
    "content": "(Statements\n{+(Assignment\n  {+(Identifier)+}\n  {+(Hash\n    {+(KeyValue\n      {+(Identifier)+}\n      {+(SequenceExpression\n        {+(Float)+}\n        {+(SequenceExpression\n          {+(Plus\n            {+(Float)+}\n            {+(Float)+})+}\n          {+(Float)+})+})+})+})+})+}\n{-(SequenceExpression\n  {-(Assignment\n    {-(Identifier)-}\n    {-(Float)-})-}\n  {-(Assignment\n    {-(Identifier)-}\n    {-(Float)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/comma-operator.diffB-A.txt",
    "content": "(Statements\n{+(SequenceExpression\n  {+(Assignment\n    {+(Identifier)+}\n    {+(Float)+})+}\n  {+(Assignment\n    {+(Identifier)+}\n    {+(Float)+})+})+}\n{-(Assignment\n  {-(Identifier)-}\n  {-(Hash\n    {-(KeyValue\n      {-(Identifier)-}\n      {-(SequenceExpression\n        {-(Float)-}\n        {-(SequenceExpression\n          {-(Plus\n            {-(Float)-}\n            {-(Float)-})-}\n          {-(Float)-})-})-})-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/comma-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (SequenceExpression \n        (Expression \n          (AssignmentExpression \n            (Identifier \"a\") \n            (Expression \n              (Number \"1\")))) \n        (Expression \n          (AssignmentExpression \n            (Identifier \"b\") \n            (Expression \n              (Number \"2\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/comma-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AssignmentExpression \n          (Identifier \"c\") \n          (Expression \n            (Object \n              (Pair \n                (Expression \n                  (ParenthesizedExpression \n                    (SequenceExpression \n                      (Expression \n                        (Number \"3\")) \n                      (SequenceExpression \n                        (Expression \n                          (BinaryExpression \n                            (Token) \n                            (Expression \n                              (Number \"4\")) \n                            (Expression \n                              (Number \"5\")))) \n                        (Expression \n                          (Number \"6\")))))) \n                (PropertyIdentifier \"d\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/comment.A.js",
    "content": "// This is a property\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/comment.B.js",
    "content": "/*\n * This is a method\n*/\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/comment.diffA-B.txt",
    "content": "(Statements\n  (Context\n  { (Comment)\n  ->(Comment) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/comment.diffB-A.txt",
    "content": "(Statements\n  (Context\n  { (Comment)\n  ->(Comment) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/comment.parseA.txt",
    "content": "(Program)\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/comment.parseB.txt",
    "content": "(Program)\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/constructor-call.A.js",
    "content": "new module.Klass(1, \"two\");\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/constructor-call.B.js",
    "content": "new module.Klass(1, \"three\");\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/constructor-call.diffA-B.txt",
    "content": "(Statements\n  (New\n    (MemberAccess\n      (Identifier)\n      (Identifier))\n    (Empty)\n    (Float)\n  { (TextElement)\n  ->(TextElement) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/constructor-call.diffB-A.txt",
    "content": "(Statements\n  (New\n    (MemberAccess\n      (Identifier)\n      (Identifier))\n    (Empty)\n    (Float)\n  { (TextElement)\n  ->(TextElement) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/constructor-call.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (NewExpression \n          (Arguments \n            (Expression \n              (Number \"1\")) \n            (Expression \n              (String))) \n          (MemberExpression \n            (PropertyIdentifier \"Klass\") \n            (Expression \n              (Identifier \"module\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/constructor-call.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (NewExpression \n          (Arguments \n            (Expression \n              (Number \"1\")) \n            (Expression \n              (String))) \n          (MemberExpression \n            (PropertyIdentifier \"Klass\") \n            (Expression \n              (Identifier \"module\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/continue.A.js",
    "content": "for (i = 0; i < 10; i++) { if (i === 4) { continue; }; i }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/continue.B.js",
    "content": "for (i = 0; i < 10; i++) { if (i === 4) { break; }; i }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/continue.diffA-B.txt",
    "content": "(Statements\n  (For\n    (Assignment\n      (Identifier)\n      (Float))\n    (LessThan\n      (Identifier)\n      (Float))\n    (Update\n      (Identifier))\n    (Statements\n      (If\n        (StrictEqual\n          (Identifier)\n          (Float))\n        (Statements\n        {+(Break\n          {+(Empty)+})+}\n        {-(Continue\n          {-(Empty)-})-})\n        (Empty))\n      (Empty)\n      (Identifier))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/continue.diffB-A.txt",
    "content": "(Statements\n  (For\n    (Assignment\n      (Identifier)\n      (Float))\n    (LessThan\n      (Identifier)\n      (Float))\n    (Update\n      (Identifier))\n    (Statements\n      (If\n        (StrictEqual\n          (Identifier)\n          (Float))\n        (Statements\n        {+(Continue\n          {+(Empty)+})+}\n        {-(Break\n          {-(Empty)-})-})\n        (Empty))\n      (Empty)\n      (Identifier))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/continue.parseA.txt",
    "content": "(Program \n  (Statement \n    (ForStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (IfStatement \n              (Statement \n                (StatementBlock \n                  (Statement \n                    (ContinueStatement)))) \n              (ParenthesizedExpression \n                (Expression \n                  (BinaryExpression \n                    (Token) \n                    (Expression \n                      (Identifier \"i\")) \n                    (Expression \n                      (Number \"4\"))))))) \n          (Statement \n            (EmptyStatement \";\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"i\")))))) \n      (ExpressionStatement \n        (Expression \n          (AssignmentExpression \n            (Identifier \"i\") \n            (Expression \n              (Number \"0\"))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (Identifier \"i\")) \n            (Expression \n              (Number \"10\"))))) \n      (Expression \n        (UpdateExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/continue.parseB.txt",
    "content": "(Program \n  (Statement \n    (ForStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (IfStatement \n              (Statement \n                (StatementBlock \n                  (Statement \n                    (BreakStatement)))) \n              (ParenthesizedExpression \n                (Expression \n                  (BinaryExpression \n                    (Token) \n                    (Expression \n                      (Identifier \"i\")) \n                    (Expression \n                      (Number \"4\"))))))) \n          (Statement \n            (EmptyStatement \";\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"i\")))))) \n      (ExpressionStatement \n        (Expression \n          (AssignmentExpression \n            (Identifier \"i\") \n            (Expression \n              (Number \"0\"))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (Identifier \"i\")) \n            (Expression \n              (Number \"10\"))))) \n      (Expression \n        (UpdateExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/delete-operator.A.js",
    "content": "delete thing['prop'];\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/delete-operator.B.js",
    "content": "delete thing.prop\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/delete-operator.diffA-B.txt",
    "content": "(Statements\n  (Delete\n  { (Subscript\n    {-(Identifier)-}\n    {-(TextElement)-})\n  ->(MemberAccess\n    {+(Identifier)+}\n    {+(Identifier)+}) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/delete-operator.diffB-A.txt",
    "content": "(Statements\n  (Delete\n  { (MemberAccess\n    {-(Identifier)-}\n    {-(Identifier)-})\n  ->(Subscript\n    {+(Identifier)+}\n    {+(TextElement)+}) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/delete-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (UnaryExpression \n          (Token) \n          (Expression \n            (SubscriptExpression \n              (Expression \n                (Identifier \"thing\")) \n              (Expression \n                (String)))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/delete-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (UnaryExpression \n          (Token) \n          (Expression \n            (MemberExpression \n              (PropertyIdentifier \"prop\") \n              (Expression \n                (Identifier \"thing\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/do-while-statement.A.js",
    "content": "do { console.log(insert); } while (true);\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/do-while-statement.B.js",
    "content": "do { console.log(replacement); } while (false);\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/do-while-statement.diffA-B.txt",
    "content": "(Statements\n  (DoWhile\n  { (Boolean)\n  ->(Boolean) }\n    (Statements\n      (Call\n        (MemberAccess\n          (Identifier)\n          (Identifier))\n      { (Identifier)\n      ->(Identifier) }\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/do-while-statement.diffB-A.txt",
    "content": "(Statements\n  (DoWhile\n  { (Boolean)\n  ->(Boolean) }\n    (Statements\n      (Call\n        (MemberAccess\n          (Identifier)\n          (Identifier))\n      { (Identifier)\n      ->(Identifier) }\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/do-while-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (DoStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (MemberExpression \n                      (PropertyIdentifier \"log\") \n                      (Expression \n                        (Identifier \"console\")))) \n                  (Arguments \n                    (Expression \n                      (Identifier \"insert\"))))))))) \n      (ParenthesizedExpression \n        (Expression \n          (True \"true\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/do-while-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (DoStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (MemberExpression \n                      (PropertyIdentifier \"log\") \n                      (Expression \n                        (Identifier \"console\")))) \n                  (Arguments \n                    (Expression \n                      (Identifier \"replacement\"))))))))) \n      (ParenthesizedExpression \n        (Expression \n          (False \"false\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/export.A.js",
    "content": "export { name1, name2, name3, nameN };\nexport { variable1 as name1, variable2 as name2, nameN };\nexport let name1, name2, nameN;\nexport let name1 = value1, name2 = value2, name3, nameN;\nexport default namedFunction;\nexport default function () { };\nexport default function name1() { };\nexport { name1 as default };\nexport * from 'foo';\nexport { name1, name2, nameN } from 'foo';\nexport { import1 as name1, import2 as name2, nameN } from 'bar';\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/export.B.js",
    "content": "export { name4, name5, name6, nameZ };\nexport { variable2 as name2, variable3 as name3, nameY };\nexport let name3, name4, nameT;\nexport let name2 = value2, name3 = value3, name4, nameO;\nexport default otherNamedFunction;\nexport default function newName1() {};\nexport default function () {};\nexport { name2 as statement };\nexport * from 'baz';\nexport { name7, name8, nameP } from 'buzz';\nexport { import6 as name6, import7 as name7, nameB } from 'fizz';\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/export.diffA-B.txt",
    "content": "(Statements\n{ (QualifiedExport)\n->(QualifiedExport) }\n{ (QualifiedExport)\n->(QualifiedExport) }\n  (DefaultExport\n    (VariableDeclaration\n      (Assignment\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n      (Assignment\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n      (Assignment\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))))\n  (DefaultExport\n    (VariableDeclaration\n    {-(Assignment\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n      (Assignment\n        (Empty)\n        (Identifier)\n        (Identifier))\n      (Assignment\n        (Empty)\n        (Identifier)\n      { (Empty)\n      ->(Identifier) })\n      (Assignment\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n    {+(Assignment\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(Empty)+})+}))\n  (DefaultExport\n  { (Identifier)\n  ->(Identifier) })\n{+(DefaultExport\n  {+(Function\n    {+(Empty)+}\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(StatementBlock)+})+})+}\n  (DefaultExport\n    (Function\n      (Empty)\n      (Empty)\n      (Empty)\n      (StatementBlock)))\n{+(QualifiedExport)+}\n{+(DefaultExport\n  {+(TextElement)+})+}\n{+(QualifiedExportFrom)+}\n{+(QualifiedExportFrom)+}\n{-(DefaultExport\n  {-(Function\n    {-(Empty)-}\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(StatementBlock)-})-})-}\n{-(QualifiedExport)-}\n{-(DefaultExport\n  {-(TextElement)-})-}\n{-(QualifiedExportFrom)-}\n{-(QualifiedExportFrom)-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/export.diffB-A.txt",
    "content": "(Statements\n{ (QualifiedExport)\n->(QualifiedExport) }\n{ (QualifiedExport)\n->(QualifiedExport) }\n  (DefaultExport\n    (VariableDeclaration\n      (Assignment\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n      (Assignment\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n      (Assignment\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))))\n  (DefaultExport\n    (VariableDeclaration\n    {+(Assignment\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n      (Assignment\n        (Empty)\n        (Identifier)\n        (Identifier))\n      (Assignment\n        (Empty)\n        (Identifier)\n      { (Identifier)\n      ->(Empty) })\n      (Assignment\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n    {-(Assignment\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(Empty)-})-}))\n  (DefaultExport\n  { (Identifier)\n  ->(Identifier) })\n{-(DefaultExport\n  {-(Function\n    {-(Empty)-}\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(StatementBlock)-})-})-}\n  (DefaultExport\n    (Function\n      (Empty)\n      (Empty)\n      (Empty)\n      (StatementBlock)))\n{+(DefaultExport\n  {+(Function\n    {+(Empty)+}\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(StatementBlock)+})+})+}\n{ (QualifiedExport)\n->(QualifiedExport) }\n  (DefaultExport\n  { (TextElement)\n  ->(TextElement) })\n{ (QualifiedExportFrom)\n->(QualifiedExportFrom) }\n{ (QualifiedExportFrom)\n->(QualifiedExportFrom) })\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/export.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExportStatement \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"name1\")) \n        (ExportSpecifier \n          (Identifier \"name2\")) \n        (ExportSpecifier \n          (Identifier \"name3\")) \n        (ExportSpecifier \n          (Identifier \"nameN\"))))) \n  (Statement \n    (ExportStatement \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"name1\") \n          (Identifier \"variable1\")) \n        (ExportSpecifier \n          (Identifier \"name2\") \n          (Identifier \"variable2\")) \n        (ExportSpecifier \n          (Identifier \"nameN\"))))) \n  (Statement \n    (ExportStatement \n      (Declaration \n        (LexicalDeclaration \n          (VariableDeclarator \n            (Identifier \"name1\")) \n          (VariableDeclarator \n            (Identifier \"name2\")) \n          (VariableDeclarator \n            (Identifier \"nameN\")))))) \n  (Statement \n    (ExportStatement \n      (Declaration \n        (LexicalDeclaration \n          (VariableDeclarator \n            (Expression \n              (Identifier \"value1\")) \n            (Identifier \"name1\")) \n          (VariableDeclarator \n            (Expression \n              (Identifier \"value2\")) \n            (Identifier \"name2\")) \n          (VariableDeclarator \n            (Identifier \"name3\")) \n          (VariableDeclarator \n            (Identifier \"nameN\")))))) \n  (Statement \n    (ExportStatement \n      (Expression \n        (Identifier \"namedFunction\")))) \n  (Statement \n    (ExportStatement \n      (Expression \n        (Function \n          (StatementBlock) \n          (FormalParameters))))) \n  (Statement \n    (ExportStatement \n      (Expression \n        (Function \n          (StatementBlock) \n          (Identifier \"name1\") \n          (FormalParameters))))) \n  (Statement \n    (ExportStatement \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"default\") \n          (Identifier \"name1\"))))) \n  (Statement \n    (ExportStatement \n      (String))) \n  (Statement \n    (ExportStatement \n      (String) \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"name1\")) \n        (ExportSpecifier \n          (Identifier \"name2\")) \n        (ExportSpecifier \n          (Identifier \"nameN\"))))) \n  (Statement \n    (ExportStatement \n      (String) \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"name1\") \n          (Identifier \"import1\")) \n        (ExportSpecifier \n          (Identifier \"name2\") \n          (Identifier \"import2\")) \n        (ExportSpecifier \n          (Identifier \"nameN\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/export.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExportStatement \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"name4\")) \n        (ExportSpecifier \n          (Identifier \"name5\")) \n        (ExportSpecifier \n          (Identifier \"name6\")) \n        (ExportSpecifier \n          (Identifier \"nameZ\"))))) \n  (Statement \n    (ExportStatement \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"name2\") \n          (Identifier \"variable2\")) \n        (ExportSpecifier \n          (Identifier \"name3\") \n          (Identifier \"variable3\")) \n        (ExportSpecifier \n          (Identifier \"nameY\"))))) \n  (Statement \n    (ExportStatement \n      (Declaration \n        (LexicalDeclaration \n          (VariableDeclarator \n            (Identifier \"name3\")) \n          (VariableDeclarator \n            (Identifier \"name4\")) \n          (VariableDeclarator \n            (Identifier \"nameT\")))))) \n  (Statement \n    (ExportStatement \n      (Declaration \n        (LexicalDeclaration \n          (VariableDeclarator \n            (Expression \n              (Identifier \"value2\")) \n            (Identifier \"name2\")) \n          (VariableDeclarator \n            (Expression \n              (Identifier \"value3\")) \n            (Identifier \"name3\")) \n          (VariableDeclarator \n            (Identifier \"name4\")) \n          (VariableDeclarator \n            (Identifier \"nameO\")))))) \n  (Statement \n    (ExportStatement \n      (Expression \n        (Identifier \"otherNamedFunction\")))) \n  (Statement \n    (ExportStatement \n      (Expression \n        (Function \n          (StatementBlock) \n          (Identifier \"newName1\") \n          (FormalParameters))))) \n  (Statement \n    (ExportStatement \n      (Expression \n        (Function \n          (StatementBlock) \n          (FormalParameters))))) \n  (Statement \n    (ExportStatement \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"statement\") \n          (Identifier \"name2\"))))) \n  (Statement \n    (ExportStatement \n      (String))) \n  (Statement \n    (ExportStatement \n      (String) \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"name7\")) \n        (ExportSpecifier \n          (Identifier \"name8\")) \n        (ExportSpecifier \n          (Identifier \"nameP\"))))) \n  (Statement \n    (ExportStatement \n      (String) \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"name6\") \n          (Identifier \"import6\")) \n        (ExportSpecifier \n          (Identifier \"name7\") \n          (Identifier \"import7\")) \n        (ExportSpecifier \n          (Identifier \"nameB\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/false.A.js",
    "content": "false;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/false.B.js",
    "content": "return false;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/false.diffA-B.txt",
    "content": "(Statements\n{+(Return\n  {+(Boolean)+})+}\n{-(Boolean)-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/false.diffB-A.txt",
    "content": "(Statements\n{+(Boolean)+}\n{-(Return\n  {-(Boolean)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/false.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (False \"false\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/false.parseB.txt",
    "content": "(Program \n  (Statement \n    (ReturnStatement \n      (Expression \n        (False \"false\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-in-statement.A.js",
    "content": "for (thing in things) { thing(); }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-in-statement.B.js",
    "content": "for (item in items) { item(); }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-in-statement.diffA-B.txt",
    "content": "(Statements\n  (ForEach\n  { (Identifier)\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Call\n      { (Identifier)\n      ->(Identifier) }\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-in-statement.diffB-A.txt",
    "content": "(Statements\n  (ForEach\n  { (Identifier)\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Call\n      { (Identifier)\n      ->(Identifier) }\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-in-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (ForInStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"thing\")) \n                  (Arguments))))))) \n      (Identifier \"thing\") \n      (Expression \n        (Identifier \"things\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-in-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (ForInStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"item\")) \n                  (Arguments))))))) \n      (Identifier \"item\") \n      (Expression \n        (Identifier \"items\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-loop-with-in-statement.A.js",
    "content": "for (key in something && i = 0; i < n; i++) { doSomething(); }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-loop-with-in-statement.B.js",
    "content": "for (otherKey in something && i = 0; i < n; i++) { doOtherSomething(); }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-loop-with-in-statement.diffA-B.txt",
    "content": "(Statements\n  (For\n    (And\n      (Member\n      { (Identifier)\n      ->(Identifier) }\n        (Identifier))\n      (Assignment\n        (Identifier)\n        (Float)))\n    (LessThan\n      (Identifier)\n      (Identifier))\n    (Update\n      (Identifier))\n    (Statements\n      (Call\n      { (Identifier)\n      ->(Identifier) }\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-loop-with-in-statement.diffB-A.txt",
    "content": "(Statements\n  (For\n    (And\n      (Member\n      { (Identifier)\n      ->(Identifier) }\n        (Identifier))\n      (Assignment\n        (Identifier)\n        (Float)))\n    (LessThan\n      (Identifier)\n      (Identifier))\n    (Update\n      (Identifier))\n    (Statements\n      (Call\n      { (Identifier)\n      ->(Identifier) }\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-loop-with-in-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (ForStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"doSomething\")) \n                  (Arguments))))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (BinaryExpression \n                (Token) \n                (Expression \n                  (Identifier \"key\")) \n                (Expression \n                  (Identifier \"something\")))) \n            (Expression \n              (AssignmentExpression \n                (Identifier \"i\") \n                (Expression \n                  (Number \"0\"))))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (Identifier \"i\")) \n            (Expression \n              (Identifier \"n\"))))) \n      (Expression \n        (UpdateExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-loop-with-in-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (ForStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"doOtherSomething\")) \n                  (Arguments))))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (BinaryExpression \n                (Token) \n                (Expression \n                  (Identifier \"otherKey\")) \n                (Expression \n                  (Identifier \"something\")))) \n            (Expression \n              (AssignmentExpression \n                (Identifier \"i\") \n                (Expression \n                  (Number \"0\"))))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (Identifier \"i\")) \n            (Expression \n              (Identifier \"n\"))))) \n      (Expression \n        (UpdateExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-of-statement.A.js",
    "content": "for (let item of items) { process(item); };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-of-statement.B.js",
    "content": "for (let thing of things) { process(thing); };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-of-statement.diffA-B.txt",
    "content": "(Statements\n  (ForEach\n  { (Identifier)\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Call\n        (Identifier)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-of-statement.diffB-A.txt",
    "content": "(Statements\n  (ForEach\n  { (Identifier)\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Call\n        (Identifier)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-of-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (ForInStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"process\")) \n                  (Arguments \n                    (Expression \n                      (Identifier \"item\"))))))))) \n      (Identifier \"item\") \n      (Expression \n        (Identifier \"items\")))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-of-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (ForInStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"process\")) \n                  (Arguments \n                    (Expression \n                      (Identifier \"thing\"))))))))) \n      (Identifier \"thing\") \n      (Expression \n        (Identifier \"things\")))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-statement.A.js",
    "content": "for (i = 0, init(); i < 10; i++) { log(i); }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-statement.B.js",
    "content": "for (i = 0, init(); i < 100; i++) { log(i); }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-statement.diffA-B.txt",
    "content": "(Statements\n  (For\n    (SequenceExpression\n      (Assignment\n        (Identifier)\n        (Float))\n      (Call\n        (Identifier)\n        (Empty)))\n    (LessThan\n      (Identifier)\n    { (Float)\n    ->(Float) })\n    (Update\n      (Identifier))\n    (Statements\n      (Call\n        (Identifier)\n        (Identifier)\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-statement.diffB-A.txt",
    "content": "(Statements\n  (For\n    (SequenceExpression\n      (Assignment\n        (Identifier)\n        (Float))\n      (Call\n        (Identifier)\n        (Empty)))\n    (LessThan\n      (Identifier)\n    { (Float)\n    ->(Float) })\n    (Update\n      (Identifier))\n    (Statements\n      (Call\n        (Identifier)\n        (Identifier)\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (ForStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"log\")) \n                  (Arguments \n                    (Expression \n                      (Identifier \"i\"))))))))) \n      (ExpressionStatement \n        (SequenceExpression \n          (Expression \n            (AssignmentExpression \n              (Identifier \"i\") \n              (Expression \n                (Number \"0\")))) \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"init\")) \n              (Arguments))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (Identifier \"i\")) \n            (Expression \n              (Number \"10\"))))) \n      (Expression \n        (UpdateExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/for-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (ForStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"log\")) \n                  (Arguments \n                    (Expression \n                      (Identifier \"i\"))))))))) \n      (ExpressionStatement \n        (SequenceExpression \n          (Expression \n            (AssignmentExpression \n              (Identifier \"i\") \n              (Expression \n                (Number \"0\")))) \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"init\")) \n              (Arguments))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (Identifier \"i\")) \n            (Expression \n              (Number \"100\"))))) \n      (Expression \n        (UpdateExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/function-call-args.A.js",
    "content": "someFunction(1, \"string\", function(a,b) { console.log(a); return b; }, true)\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/function-call-args.B.js",
    "content": "someFunction(1, \"otherString\", function(b,c) { console.log(b); return c; }, false)\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/function-call-args.diffA-B.txt",
    "content": "(Statements\n  (Call\n    (Identifier)\n    (Float)\n  { (TextElement)\n  ->(TextElement) }\n    (Function\n      (Empty)\n      (Empty)\n      (Empty)\n    {-(RequiredParameter\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(Empty)-})-}\n      (RequiredParameter\n        (Empty)\n        (Empty)\n        (Identifier)\n        (Empty))\n    {+(RequiredParameter\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(Empty)+})+}\n      (StatementBlock\n        (Call\n          (MemberAccess\n            (Identifier)\n            (Identifier))\n        { (Identifier)\n        ->(Identifier) }\n          (Empty))\n        (Return\n        { (Identifier)\n        ->(Identifier) })))\n  { (Boolean)\n  ->(Boolean) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/function-call-args.diffB-A.txt",
    "content": "(Statements\n  (Call\n    (Identifier)\n    (Float)\n  { (TextElement)\n  ->(TextElement) }\n    (Function\n      (Empty)\n      (Empty)\n      (Empty)\n    {+(RequiredParameter\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(Empty)+})+}\n      (RequiredParameter\n        (Empty)\n        (Empty)\n        (Identifier)\n        (Empty))\n    {-(RequiredParameter\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(Empty)-})-}\n      (StatementBlock\n        (Call\n          (MemberAccess\n            (Identifier)\n            (Identifier))\n        { (Identifier)\n        ->(Identifier) }\n          (Empty))\n        (Return\n        { (Identifier)\n        ->(Identifier) })))\n  { (Boolean)\n  ->(Boolean) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/function-call-args.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (Identifier \"someFunction\")) \n          (Arguments \n            (Expression \n              (Number \"1\")) \n            (Expression \n              (String)) \n            (Expression \n              (Function \n                (StatementBlock \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (MemberExpression \n                              (PropertyIdentifier \"log\") \n                              (Expression \n                                (Identifier \"console\")))) \n                          (Arguments \n                            (Expression \n                              (Identifier \"a\"))))))) \n                  (Statement \n                    (ReturnStatement \n                      (Expression \n                        (Identifier \"b\"))))) \n                (FormalParameters \n                  (RequiredParameter \n                    (Identifier \"a\")) \n                  (RequiredParameter \n                    (Identifier \"b\"))))) \n            (Expression \n              (True \"true\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/function-call-args.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (Identifier \"someFunction\")) \n          (Arguments \n            (Expression \n              (Number \"1\")) \n            (Expression \n              (String)) \n            (Expression \n              (Function \n                (StatementBlock \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (MemberExpression \n                              (PropertyIdentifier \"log\") \n                              (Expression \n                                (Identifier \"console\")))) \n                          (Arguments \n                            (Expression \n                              (Identifier \"b\"))))))) \n                  (Statement \n                    (ReturnStatement \n                      (Expression \n                        (Identifier \"c\"))))) \n                (FormalParameters \n                  (RequiredParameter \n                    (Identifier \"b\")) \n                  (RequiredParameter \n                    (Identifier \"c\"))))) \n            (Expression \n              (False \"false\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/function-call.A.js",
    "content": "someFunction(arg1, \"arg2\");\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/function-call.B.js",
    "content": "someFunction(arg1, \"arg3\");\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/function-call.diffA-B.txt",
    "content": "(Statements\n  (Call\n    (Identifier)\n    (Identifier)\n  { (TextElement)\n  ->(TextElement) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/function-call.diffB-A.txt",
    "content": "(Statements\n  (Call\n    (Identifier)\n    (Identifier)\n  { (TextElement)\n  ->(TextElement) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/function-call.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (Identifier \"someFunction\")) \n          (Arguments \n            (Expression \n              (Identifier \"arg1\")) \n            (Expression \n              (String))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/function-call.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (Identifier \"someFunction\")) \n          (Arguments \n            (Expression \n              (Identifier \"arg1\")) \n            (Expression \n              (String))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/function.A.js",
    "content": "function(arg1, arg2) { arg2; };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/function.B.js",
    "content": "function(arg1, arg2) { arg1; };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/function.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Empty)\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n    { (Identifier)\n    ->(Identifier) })))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/function.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Empty)\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n    { (Identifier)\n    ->(Identifier) })))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/function.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Function \n          (StatementBlock \n            (Statement \n              (ExpressionStatement \n                (Expression \n                  (Identifier \"arg2\"))))) \n          (FormalParameters \n            (RequiredParameter \n              (Identifier \"arg1\")) \n            (RequiredParameter \n              (Identifier \"arg2\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/function.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Function \n          (StatementBlock \n            (Statement \n              (ExpressionStatement \n                (Expression \n                  (Identifier \"arg1\"))))) \n          (FormalParameters \n            (RequiredParameter \n              (Identifier \"arg1\")) \n            (RequiredParameter \n              (Identifier \"arg2\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/generator-function.A.js",
    "content": "function *generateStuff(arg1, arg2) { yield; yield arg2; };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/generator-function.B.js",
    "content": "function *generateNewStuff(arg1, arg2) { yield; yield arg2; };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/generator-function.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n  { (Identifier)\n  ->(Identifier) }\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n      (Yield\n        (Empty))\n      (Yield\n        (Identifier))))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/generator-function.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n  { (Identifier)\n  ->(Identifier) }\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n      (Yield\n        (Empty))\n      (Yield\n        (Identifier))))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/generator-function.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (GeneratorFunctionDeclaration \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (YieldExpression)))) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (YieldExpression \n                  (Expression \n                    (Identifier \"arg2\"))))))) \n        (Identifier \"generateStuff\") \n        (FormalParameters \n          (RequiredParameter \n            (Identifier \"arg1\")) \n          (RequiredParameter \n            (Identifier \"arg2\")))))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/generator-function.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (GeneratorFunctionDeclaration \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (YieldExpression)))) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (YieldExpression \n                  (Expression \n                    (Identifier \"arg2\"))))))) \n        (Identifier \"generateNewStuff\") \n        (FormalParameters \n          (RequiredParameter \n            (Identifier \"arg1\")) \n          (RequiredParameter \n            (Identifier \"arg2\")))))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/identifier.A.js",
    "content": "theVar;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/identifier.B.js",
    "content": "theVar2\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/identifier.diffA-B.txt",
    "content": "(Statements\n{ (Identifier)\n->(Identifier) })\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/identifier.diffB-A.txt",
    "content": "(Statements\n{ (Identifier)\n->(Identifier) })\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/identifier.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Identifier \"theVar\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/identifier.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Identifier \"theVar2\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/if-else.A.js",
    "content": "if (x) y; else if (a) b; else if (c) d; else if (e) f; else g\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/if-else.B.js",
    "content": "if (g) h; else if (i) { j; } else if (k) l; else if (m) { n; } else o\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/if-else.diffA-B.txt",
    "content": "(Statements\n  (If\n  { (Identifier)\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) }\n    (If\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Statements\n      {+(Identifier)+}) }\n      (If\n      { (Identifier)\n      ->(Identifier) }\n      { (Identifier)\n      ->(Identifier) }\n        (If\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Statements\n          {+(Identifier)+}) }\n        { (Identifier)\n        ->(Identifier) })))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/if-else.diffB-A.txt",
    "content": "(Statements\n  (If\n  { (Identifier)\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) }\n    (If\n    { (Identifier)\n    ->(Identifier) }\n    { (Statements\n      {-(Identifier)-})\n    ->(Identifier) }\n      (If\n      { (Identifier)\n      ->(Identifier) }\n      { (Identifier)\n      ->(Identifier) }\n        (If\n        { (Identifier)\n        ->(Identifier) }\n        { (Statements\n          {-(Identifier)-})\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) })))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/if-else.parseA.txt",
    "content": "(Program \n  (Statement \n    (IfStatement \n      (Statement \n        (IfStatement \n          (Statement \n            (IfStatement \n              (Statement \n                (IfStatement \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (Identifier \"g\")))) \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (Identifier \"f\")))) \n                  (ParenthesizedExpression \n                    (Expression \n                      (Identifier \"e\"))))) \n              (Statement \n                (ExpressionStatement \n                  (Expression \n                    (Identifier \"d\")))) \n              (ParenthesizedExpression \n                (Expression \n                  (Identifier \"c\"))))) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"b\")))) \n          (ParenthesizedExpression \n            (Expression \n              (Identifier \"a\"))))) \n      (Statement \n        (ExpressionStatement \n          (Expression \n            (Identifier \"y\")))) \n      (ParenthesizedExpression \n        (Expression \n          (Identifier \"x\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/if-else.parseB.txt",
    "content": "(Program \n  (Statement \n    (IfStatement \n      (Statement \n        (IfStatement \n          (Statement \n            (IfStatement \n              (Statement \n                (IfStatement \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (Identifier \"o\")))) \n                  (Statement \n                    (StatementBlock \n                      (Statement \n                        (ExpressionStatement \n                          (Expression \n                            (Identifier \"n\")))))) \n                  (ParenthesizedExpression \n                    (Expression \n                      (Identifier \"m\"))))) \n              (Statement \n                (ExpressionStatement \n                  (Expression \n                    (Identifier \"l\")))) \n              (ParenthesizedExpression \n                (Expression \n                  (Identifier \"k\"))))) \n          (Statement \n            (StatementBlock \n              (Statement \n                (ExpressionStatement \n                  (Expression \n                    (Identifier \"j\")))))) \n          (ParenthesizedExpression \n            (Expression \n              (Identifier \"i\"))))) \n      (Statement \n        (ExpressionStatement \n          (Expression \n            (Identifier \"h\")))) \n      (ParenthesizedExpression \n        (Expression \n          (Identifier \"g\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/if.A.js",
    "content": "if (x) { log(y); }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/if.B.js",
    "content": "if (a.b) { log(c); d; }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/if.diffA-B.txt",
    "content": "(Statements\n  (If\n  { (Identifier)\n  ->(MemberAccess\n    {+(Identifier)+}\n    {+(Identifier)+}) }\n    (Statements\n      (Call\n        (Identifier)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n    {+(Identifier)+})\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/if.diffB-A.txt",
    "content": "(Statements\n  (If\n  { (MemberAccess\n    {-(Identifier)-}\n    {-(Identifier)-})\n  ->(Identifier) }\n    (Statements\n      (Call\n        (Identifier)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n    {-(Identifier)-})\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/if.parseA.txt",
    "content": "(Program \n  (Statement \n    (IfStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"log\")) \n                  (Arguments \n                    (Expression \n                      (Identifier \"y\"))))))))) \n      (ParenthesizedExpression \n        (Expression \n          (Identifier \"x\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/if.parseB.txt",
    "content": "(Program \n  (Statement \n    (IfStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"log\")) \n                  (Arguments \n                    (Expression \n                      (Identifier \"c\"))))))) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"d\")))))) \n      (ParenthesizedExpression \n        (Expression \n          (MemberExpression \n            (PropertyIdentifier \"b\") \n            (Expression \n              (Identifier \"a\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/import.A.js",
    "content": "import defaultMember from \"foo\";\nimport * as name from \"aardvark\";\nimport { member } from \"ant\";\nimport { member1 , member2 } from \"antelope\";\nimport { member1 , member2 as alias2 } from \"ant-eater\";\nimport defaultMember, { member1, member2 as alias2 } from \"anaconda\";\nimport defaultMember, * as name from \"alligator\";\nimport \"arctic-tern\";\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/import.B.js",
    "content": "import defaultMember from \"babirusa\";\nimport * as otherName from \"baboon\";\nimport { element } from \"badger\";\nimport { element1 , element2 } from \"bald-eagle\";\nimport { element1 , element2 as elementAlias2 } from \"bandicoot\";\nimport defaultMember, { element1, element2 as elementAlias2 } from \"banteng\";\nimport defaultMember, * as element from \"barbet\";\nimport \"basilisk\";\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/import.diffA-B.txt",
    "content": "(Statements\n{+(Import)+}\n{+(QualifiedAliasedImport\n  {+(Identifier)+})+}\n{ (Import)\n->(Import) }\n{+(Import)+}\n{+(Import)+}\n{+(Statements\n  {+(Import)+}\n  {+(Import)+})+}\n{+(Statements\n  {+(Import)+}\n  {+(QualifiedAliasedImport\n    {+(Identifier)+})+})+}\n{+(SideEffectImport)+}\n{-(QualifiedAliasedImport\n  {-(Identifier)-})-}\n{-(Import)-}\n{-(Import)-}\n{-(Import)-}\n{-(Statements\n  {-(Import)-}\n  {-(Import)-})-}\n{-(Statements\n  {-(Import)-}\n  {-(QualifiedAliasedImport\n    {-(Identifier)-})-})-}\n{-(SideEffectImport)-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/import.diffB-A.txt",
    "content": "(Statements\n{+(Import)+}\n{+(QualifiedAliasedImport\n  {+(Identifier)+})+}\n{ (Import)\n->(Import) }\n{+(Import)+}\n{+(Import)+}\n{+(Statements\n  {+(Import)+}\n  {+(Import)+})+}\n{+(Statements\n  {+(Import)+}\n  {+(QualifiedAliasedImport\n    {+(Identifier)+})+})+}\n{+(SideEffectImport)+}\n{-(QualifiedAliasedImport\n  {-(Identifier)-})-}\n{-(Import)-}\n{-(Import)-}\n{-(Import)-}\n{-(Statements\n  {-(Import)-}\n  {-(Import)-})-}\n{-(Statements\n  {-(Import)-}\n  {-(QualifiedAliasedImport\n    {-(Identifier)-})-})-}\n{-(SideEffectImport)-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/import.parseA.txt",
    "content": "(Program \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (Identifier \"defaultMember\")))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (NamespaceImport \n          (Identifier \"name\"))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (NamedImports \n          (ImportSpecifier \n            (Identifier \"member\")))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (NamedImports \n          (ImportSpecifier \n            (Identifier \"member1\")) \n          (ImportSpecifier \n            (Identifier \"member2\")))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (NamedImports \n          (ImportSpecifier \n            (Identifier \"member1\")) \n          (ImportSpecifier \n            (Identifier \"alias2\") \n            (Identifier \"member2\")))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (Identifier \"defaultMember\") \n        (NamedImports \n          (ImportSpecifier \n            (Identifier \"member1\")) \n          (ImportSpecifier \n            (Identifier \"alias2\") \n            (Identifier \"member2\")))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (Identifier \"defaultMember\") \n        (NamespaceImport \n          (Identifier \"name\"))))) \n  (Statement \n    (ImportStatement \n      (String))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/import.parseB.txt",
    "content": "(Program \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (Identifier \"defaultMember\")))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (NamespaceImport \n          (Identifier \"otherName\"))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (NamedImports \n          (ImportSpecifier \n            (Identifier \"element\")))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (NamedImports \n          (ImportSpecifier \n            (Identifier \"element1\")) \n          (ImportSpecifier \n            (Identifier \"element2\")))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (NamedImports \n          (ImportSpecifier \n            (Identifier \"element1\")) \n          (ImportSpecifier \n            (Identifier \"elementAlias2\") \n            (Identifier \"element2\")))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (Identifier \"defaultMember\") \n        (NamedImports \n          (ImportSpecifier \n            (Identifier \"element1\")) \n          (ImportSpecifier \n            (Identifier \"elementAlias2\") \n            (Identifier \"element2\")))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (Identifier \"defaultMember\") \n        (NamespaceImport \n          (Identifier \"element\"))))) \n  (Statement \n    (ImportStatement \n      (String))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/jsx.A.js",
    "content": "function Something() {\n  return <div>\n    <Foo>hello</Foo>\n  </div>;\n}\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/jsx.B.js",
    "content": "function Something() {\n  return <div>\n    <Foo<T>>goodbye</Foo>\n  </div>;\n}\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/jsx.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Identifier)\n    (StatementBlock\n      (Return\n        (JsxElement\n          (JsxOpeningElement\n            (Identifier)\n            (Empty))\n          (JsxText)\n          (JsxElement\n            (JsxOpeningElement\n              (Identifier)\n            { (Empty)\n            ->(TypeArguments\n              {+(TypeIdentifier)+}) })\n          { (JsxText)\n          ->(JsxText) }\n            (JsxClosingElement\n              (Identifier)))\n          (JsxText)\n          (JsxClosingElement\n            (Identifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/jsx.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Identifier)\n    (StatementBlock\n      (Return\n        (JsxElement\n          (JsxOpeningElement\n            (Identifier)\n            (Empty))\n          (JsxText)\n          (JsxElement\n            (JsxOpeningElement\n              (Identifier)\n            { (TypeArguments\n              {-(TypeIdentifier)-})\n            ->(Empty) })\n          { (JsxText)\n          ->(JsxText) }\n            (JsxClosingElement\n              (Identifier)))\n          (JsxText)\n          (JsxClosingElement\n            (Identifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/jsx.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (FunctionDeclaration \n        (StatementBlock \n          (Statement \n            (ReturnStatement \n              (Expression \n                (JsxElement \n                  (JsxClosingElement \n                    (Identifier \"div\")) \n                  (JsxOpeningElement \n                    (Identifier \"div\")) \n                  (JsxText \"\\n    \") \n                  (JsxElement \n                    (JsxClosingElement \n                      (Identifier \"Foo\")) \n                    (JsxOpeningElement \n                      (Identifier \"Foo\")) \n                    (JsxText \"hello\")) \n                  (JsxText \"\\n  \")))))) \n        (Identifier \"Something\") \n        (FormalParameters)))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/jsx.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (FunctionDeclaration \n        (StatementBlock \n          (Statement \n            (ReturnStatement \n              (Expression \n                (JsxElement \n                  (JsxClosingElement \n                    (Identifier \"div\")) \n                  (JsxOpeningElement \n                    (Identifier \"div\")) \n                  (JsxText \"\\n    \") \n                  (JsxElement \n                    (JsxClosingElement \n                      (Identifier \"Foo\")) \n                    (JsxOpeningElement \n                      (Identifier \"Foo\") \n                      (TypeArguments \n                        (TypeIdentifier \"T\"))) \n                    (JsxText \"goodbye\")) \n                  (JsxText \"\\n  \")))))) \n        (Identifier \"Something\") \n        (FormalParameters)))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/math-assignment-operator.A.js",
    "content": "x += 1;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/math-assignment-operator.B.js",
    "content": "x += 2;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/math-assignment-operator.diffA-B.txt",
    "content": "(Statements\n  (AugmentedAssignment\n    (Plus\n      (Identifier)\n    { (Float)\n    ->(Float) })))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/math-assignment-operator.diffB-A.txt",
    "content": "(Statements\n  (AugmentedAssignment\n    (Plus\n      (Identifier)\n    { (Float)\n    ->(Float) })))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/math-assignment-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AugmentedAssignmentExpression \n          (Identifier \"x\") \n          (Expression \n            (Number \"1\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/math-assignment-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AugmentedAssignmentExpression \n          (Identifier \"x\") \n          (Expression \n            (Number \"2\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/math-operator.A.js",
    "content": "i + j * 3 - j % 5;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/math-operator.B.js",
    "content": "i + j * 2 - j % 4;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/math-operator.diffA-B.txt",
    "content": "(Statements\n  (Minus\n    (Plus\n      (Identifier)\n      (Times\n        (Identifier)\n      { (Float)\n      ->(Float) }))\n    (Modulo\n      (Identifier)\n    { (Float)\n    ->(Float) })))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/math-operator.diffB-A.txt",
    "content": "(Statements\n  (Minus\n    (Plus\n      (Identifier)\n      (Times\n        (Identifier)\n      { (Float)\n      ->(Float) }))\n    (Modulo\n      (Identifier)\n    { (Float)\n    ->(Float) })))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/math-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (BinaryExpression \n          (Token) \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"i\")) \n              (Expression \n                (BinaryExpression \n                  (Token) \n                  (Expression \n                    (Identifier \"j\")) \n                  (Expression \n                    (Number \"3\")))))) \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"j\")) \n              (Expression \n                (Number \"5\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/math-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (BinaryExpression \n          (Token) \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"i\")) \n              (Expression \n                (BinaryExpression \n                  (Token) \n                  (Expression \n                    (Identifier \"j\")) \n                  (Expression \n                    (Number \"2\")))))) \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"j\")) \n              (Expression \n                (Number \"4\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/member-access-assignment.A.js",
    "content": "y.x = 0;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/member-access-assignment.B.js",
    "content": "y.x = 1;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/member-access-assignment.diffA-B.txt",
    "content": "(Statements\n  (Assignment\n    (MemberAccess\n      (Identifier)\n      (Identifier))\n  { (Float)\n  ->(Float) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/member-access-assignment.diffB-A.txt",
    "content": "(Statements\n  (Assignment\n    (MemberAccess\n      (Identifier)\n      (Identifier))\n  { (Float)\n  ->(Float) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/member-access-assignment.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AssignmentExpression \n          (MemberExpression \n            (PropertyIdentifier \"x\") \n            (Expression \n              (Identifier \"y\"))) \n          (Expression \n            (Number \"0\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/member-access-assignment.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AssignmentExpression \n          (MemberExpression \n            (PropertyIdentifier \"x\") \n            (Expression \n              (Identifier \"y\"))) \n          (Expression \n            (Number \"1\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/member-access.A.js",
    "content": "x.someProperty;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/member-access.B.js",
    "content": "x.someOtherProperty\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/member-access.diffA-B.txt",
    "content": "(Statements\n  (MemberAccess\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/member-access.diffB-A.txt",
    "content": "(Statements\n  (MemberAccess\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/member-access.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (MemberExpression \n          (PropertyIdentifier \"someProperty\") \n          (Expression \n            (Identifier \"x\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/member-access.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (MemberExpression \n          (PropertyIdentifier \"someOtherProperty\") \n          (Expression \n            (Identifier \"x\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/method-call.A.js",
    "content": "object.someMethod(arg1, \"arg2\");\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/method-call.B.js",
    "content": "object.someMethod(arg1, \"arg3\");\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/method-call.diffA-B.txt",
    "content": "(Statements\n  (Call\n    (MemberAccess\n      (Identifier)\n      (Identifier))\n    (Identifier)\n  { (TextElement)\n  ->(TextElement) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/method-call.diffB-A.txt",
    "content": "(Statements\n  (Call\n    (MemberAccess\n      (Identifier)\n      (Identifier))\n    (Identifier)\n  { (TextElement)\n  ->(TextElement) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/method-call.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (MemberExpression \n              (PropertyIdentifier \"someMethod\") \n              (Expression \n                (Identifier \"object\")))) \n          (Arguments \n            (Expression \n              (Identifier \"arg1\")) \n            (Expression \n              (String))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/method-call.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (MemberExpression \n              (PropertyIdentifier \"someMethod\") \n              (Expression \n                (Identifier \"object\")))) \n          (Arguments \n            (Expression \n              (Identifier \"arg1\")) \n            (Expression \n              (String))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/named-function.A.js",
    "content": "function myFunction(arg1, arg2) { arg2; };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/named-function.B.js",
    "content": "function anotherFunction() { return false; };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/named-function.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n  { (Identifier)\n  ->(Identifier) }\n  {-(RequiredParameter\n    {-(Empty)-}\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(Empty)-})-}\n  {-(RequiredParameter\n    {-(Empty)-}\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(Empty)-})-}\n    (StatementBlock\n    {+(Return\n      {+(Boolean)+})+}\n    {-(Identifier)-}))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/named-function.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n  { (Identifier)\n  ->(Identifier) }\n  {+(RequiredParameter\n    {+(Empty)+}\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(Empty)+})+}\n  {+(RequiredParameter\n    {+(Empty)+}\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(Empty)+})+}\n    (StatementBlock\n    {+(Identifier)+}\n    {-(Return\n      {-(Boolean)-})-}))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/named-function.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (FunctionDeclaration \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"arg2\"))))) \n        (Identifier \"myFunction\") \n        (FormalParameters \n          (RequiredParameter \n            (Identifier \"arg1\")) \n          (RequiredParameter \n            (Identifier \"arg2\")))))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/named-function.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (FunctionDeclaration \n        (StatementBlock \n          (Statement \n            (ReturnStatement \n              (Expression \n                (False \"false\"))))) \n        (Identifier \"anotherFunction\") \n        (FormalParameters)))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/nested-do-while-in-function.A.js",
    "content": "function f(arg1, arg2) { do { something(arg1); } while (arg2); }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/nested-do-while-in-function.B.js",
    "content": "function f(arg1, arg2) { do { something(arg2); } while (arg1); }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/nested-do-while-in-function.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Identifier)\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n      (DoWhile\n      { (Identifier)\n      ->(Identifier) }\n        (Statements\n          (Call\n            (Identifier)\n          { (Identifier)\n          ->(Identifier) }\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/nested-do-while-in-function.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Identifier)\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n      (DoWhile\n      { (Identifier)\n      ->(Identifier) }\n        (Statements\n          (Call\n            (Identifier)\n          { (Identifier)\n          ->(Identifier) }\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/nested-do-while-in-function.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (FunctionDeclaration \n        (StatementBlock \n          (Statement \n            (DoStatement \n              (Statement \n                (StatementBlock \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (Identifier \"something\")) \n                          (Arguments \n                            (Expression \n                              (Identifier \"arg1\"))))))))) \n              (ParenthesizedExpression \n                (Expression \n                  (Identifier \"arg2\")))))) \n        (Identifier \"f\") \n        (FormalParameters \n          (RequiredParameter \n            (Identifier \"arg1\")) \n          (RequiredParameter \n            (Identifier \"arg2\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/nested-do-while-in-function.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (FunctionDeclaration \n        (StatementBlock \n          (Statement \n            (DoStatement \n              (Statement \n                (StatementBlock \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (Identifier \"something\")) \n                          (Arguments \n                            (Expression \n                              (Identifier \"arg2\"))))))))) \n              (ParenthesizedExpression \n                (Expression \n                  (Identifier \"arg1\")))))) \n        (Identifier \"f\") \n        (FormalParameters \n          (RequiredParameter \n            (Identifier \"arg1\")) \n          (RequiredParameter \n            (Identifier \"arg2\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/nested-functions.A.js",
    "content": "function parent (arg1, arg2) { function child (arg3, arg4) { console.log(arg3); console.log(arg4); } }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/nested-functions.B.js",
    "content": "function parent (arg1, arg2) { function child (arg3, arg4) { console.log(arg1); console.log(arg2); } }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/nested-functions.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Identifier)\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n      (Function\n        (Empty)\n        (Empty)\n        (Identifier)\n        (RequiredParameter\n          (Empty)\n          (Empty)\n          (Identifier)\n          (Empty))\n        (RequiredParameter\n          (Empty)\n          (Empty)\n          (Identifier)\n          (Empty))\n        (StatementBlock\n          (Call\n            (MemberAccess\n              (Identifier)\n              (Identifier))\n          { (Identifier)\n          ->(Identifier) }\n            (Empty))\n          (Call\n            (MemberAccess\n              (Identifier)\n              (Identifier))\n          { (Identifier)\n          ->(Identifier) }\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/nested-functions.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Identifier)\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n      (Function\n        (Empty)\n        (Empty)\n        (Identifier)\n        (RequiredParameter\n          (Empty)\n          (Empty)\n          (Identifier)\n          (Empty))\n        (RequiredParameter\n          (Empty)\n          (Empty)\n          (Identifier)\n          (Empty))\n        (StatementBlock\n          (Call\n            (MemberAccess\n              (Identifier)\n              (Identifier))\n          { (Identifier)\n          ->(Identifier) }\n            (Empty))\n          (Call\n            (MemberAccess\n              (Identifier)\n              (Identifier))\n          { (Identifier)\n          ->(Identifier) }\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/nested-functions.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (FunctionDeclaration \n        (StatementBlock \n          (Statement \n            (Declaration \n              (FunctionDeclaration \n                (StatementBlock \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (MemberExpression \n                              (PropertyIdentifier \"log\") \n                              (Expression \n                                (Identifier \"console\")))) \n                          (Arguments \n                            (Expression \n                              (Identifier \"arg3\"))))))) \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (MemberExpression \n                              (PropertyIdentifier \"log\") \n                              (Expression \n                                (Identifier \"console\")))) \n                          (Arguments \n                            (Expression \n                              (Identifier \"arg4\")))))))) \n                (Identifier \"child\") \n                (FormalParameters \n                  (RequiredParameter \n                    (Identifier \"arg3\")) \n                  (RequiredParameter \n                    (Identifier \"arg4\"))))))) \n        (Identifier \"parent\") \n        (FormalParameters \n          (RequiredParameter \n            (Identifier \"arg1\")) \n          (RequiredParameter \n            (Identifier \"arg2\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/nested-functions.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (FunctionDeclaration \n        (StatementBlock \n          (Statement \n            (Declaration \n              (FunctionDeclaration \n                (StatementBlock \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (MemberExpression \n                              (PropertyIdentifier \"log\") \n                              (Expression \n                                (Identifier \"console\")))) \n                          (Arguments \n                            (Expression \n                              (Identifier \"arg1\"))))))) \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (MemberExpression \n                              (PropertyIdentifier \"log\") \n                              (Expression \n                                (Identifier \"console\")))) \n                          (Arguments \n                            (Expression \n                              (Identifier \"arg2\")))))))) \n                (Identifier \"child\") \n                (FormalParameters \n                  (RequiredParameter \n                    (Identifier \"arg3\")) \n                  (RequiredParameter \n                    (Identifier \"arg4\"))))))) \n        (Identifier \"parent\") \n        (FormalParameters \n          (RequiredParameter \n            (Identifier \"arg1\")) \n          (RequiredParameter \n            (Identifier \"arg2\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/null.A.js",
    "content": "null;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/null.B.js",
    "content": "return null;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/null.diffA-B.txt",
    "content": "(Statements\n{+(Return\n  {+(Null)+})+}\n{-(Null)-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/null.diffB-A.txt",
    "content": "(Statements\n{+(Null)+}\n{-(Return\n  {-(Null)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/null.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Null \"null\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/null.parseB.txt",
    "content": "(Program \n  (Statement \n    (ReturnStatement \n      (Expression \n        (Null \"null\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/number.A.js",
    "content": "101\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/number.B.js",
    "content": "102\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/number.diffA-B.txt",
    "content": "(Statements\n{ (Float)\n->(Float) })\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/number.diffB-A.txt",
    "content": "(Statements\n{ (Float)\n->(Float) })\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/number.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Number \"101\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/number.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Number \"102\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/object.A.js",
    "content": "{ \"key1\": \"value1\" };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/object.B.js",
    "content": "{ \"key1\": \"value1\", \"key2\": \"value2\", \"key3\": \"3.0\" };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/object.diffA-B.txt",
    "content": "(Statements\n  (Hash\n    (KeyValue\n      (TextElement)\n      (TextElement))\n  {+(KeyValue\n    {+(TextElement)+}\n    {+(TextElement)+})+}\n  {+(KeyValue\n    {+(TextElement)+}\n    {+(TextElement)+})+}))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/object.diffB-A.txt",
    "content": "(Statements\n  (Hash\n    (KeyValue\n      (TextElement)\n      (TextElement))\n  {-(KeyValue\n    {-(TextElement)-}\n    {-(TextElement)-})-}\n  {-(KeyValue\n    {-(TextElement)-}\n    {-(TextElement)-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/object.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Object \n          (Pair \n            (Expression \n              (String)) \n            (String)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/object.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Object \n          (Pair \n            (Expression \n              (String)) \n            (String)) \n          (Pair \n            (Expression \n              (String)) \n            (String)) \n          (Pair \n            (Expression \n              (String)) \n            (String)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/objects-with-methods.A.js",
    "content": "{ add(a, b) { return a + b; } };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/objects-with-methods.B.js",
    "content": "{ subtract(a, b) { return a - b; } };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/objects-with-methods.diffA-B.txt",
    "content": "(Statements\n  (Hash\n    (Method\n      (Empty)\n      (Empty)\n      (Empty)\n      (Empty)\n    { (Identifier)\n    ->(Identifier) }\n      (RequiredParameter\n        (Empty)\n        (Empty)\n        (Identifier)\n        (Empty))\n      (RequiredParameter\n        (Empty)\n        (Empty)\n        (Identifier)\n        (Empty))\n      (StatementBlock\n        (Return\n        { (Plus\n          {-(Identifier)-}\n          {-(Identifier)-})\n        ->(Minus\n          {+(Identifier)+}\n          {+(Identifier)+}) })))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/objects-with-methods.diffB-A.txt",
    "content": "(Statements\n  (Hash\n    (Method\n      (Empty)\n      (Empty)\n      (Empty)\n      (Empty)\n    { (Identifier)\n    ->(Identifier) }\n      (RequiredParameter\n        (Empty)\n        (Empty)\n        (Identifier)\n        (Empty))\n      (RequiredParameter\n        (Empty)\n        (Empty)\n        (Identifier)\n        (Empty))\n      (StatementBlock\n        (Return\n        { (Minus\n          {-(Identifier)-}\n          {-(Identifier)-})\n        ->(Plus\n          {+(Identifier)+}\n          {+(Identifier)+}) })))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/objects-with-methods.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Object \n          (MethodDefinition \n            (StatementBlock \n              (Statement \n                (ReturnStatement \n                  (Expression \n                    (BinaryExpression \n                      (Token) \n                      (Expression \n                        (Identifier \"a\")) \n                      (Expression \n                        (Identifier \"b\"))))))) \n            (PropertyIdentifier \"add\") \n            (FormalParameters \n              (RequiredParameter \n                (Identifier \"a\")) \n              (RequiredParameter \n                (Identifier \"b\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/objects-with-methods.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Object \n          (MethodDefinition \n            (StatementBlock \n              (Statement \n                (ReturnStatement \n                  (Expression \n                    (BinaryExpression \n                      (Token) \n                      (Expression \n                        (Identifier \"a\")) \n                      (Expression \n                        (Identifier \"b\"))))))) \n            (PropertyIdentifier \"subtract\") \n            (FormalParameters \n              (RequiredParameter \n                (Identifier \"a\")) \n              (RequiredParameter \n                (Identifier \"b\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/regex.A.js",
    "content": "/one/g;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/regex.B.js",
    "content": "/on[^/]afe/gim;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/regex.diffA-B.txt",
    "content": "(Statements\n{ (Regex)\n->(Regex) })\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/regex.diffB-A.txt",
    "content": "(Statements\n{ (Regex)\n->(Regex) })\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/regex.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Regex \n          (RegexFlags \"g\") \n          (RegexPattern \"one\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/regex.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Regex \n          (RegexFlags \"gim\") \n          (RegexPattern \"on[^/]afe\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/relational-operator.A.js",
    "content": "x < y;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/relational-operator.B.js",
    "content": "x <= y;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/relational-operator.diffA-B.txt",
    "content": "(Statements\n{+(LessThanEqual\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(LessThan\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/relational-operator.diffB-A.txt",
    "content": "(Statements\n{+(LessThan\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(LessThanEqual\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/relational-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (BinaryExpression \n          (Token) \n          (Expression \n            (Identifier \"x\")) \n          (Expression \n            (Identifier \"y\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/relational-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (BinaryExpression \n          (Token) \n          (Expression \n            (Identifier \"x\")) \n          (Expression \n            (Identifier \"y\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/return-statement.A.js",
    "content": "return 5;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/return-statement.B.js",
    "content": "return;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/return-statement.diffA-B.txt",
    "content": "(Statements\n  (Return\n  { (Float)\n  ->(Empty) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/return-statement.diffB-A.txt",
    "content": "(Statements\n  (Return\n  { (Empty)\n  ->(Float) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/return-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (ReturnStatement \n      (Expression \n        (Number \"5\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/return-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (ReturnStatement)))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/string.A.js",
    "content": "'A string with \"double\" quotes';\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/string.B.js",
    "content": "'A different string with \"double\" quotes';\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/string.diffA-B.txt",
    "content": "(Statements\n{ (TextElement)\n->(TextElement) })\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/string.diffB-A.txt",
    "content": "(Statements\n{ (TextElement)\n->(TextElement) })\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/string.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (String)))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/string.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (String)))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/subscript-access-assignment.A.js",
    "content": "y[\"x\"] = 0;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/subscript-access-assignment.B.js",
    "content": "y[\"x\"] = 1;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/subscript-access-assignment.diffA-B.txt",
    "content": "(Statements\n  (Assignment\n    (Subscript\n      (Identifier)\n      (TextElement))\n  { (Float)\n  ->(Float) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/subscript-access-assignment.diffB-A.txt",
    "content": "(Statements\n  (Assignment\n    (Subscript\n      (Identifier)\n      (TextElement))\n  { (Float)\n  ->(Float) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/subscript-access-assignment.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AssignmentExpression \n          (SubscriptExpression \n            (Expression \n              (Identifier \"y\")) \n            (Expression \n              (String))) \n          (Expression \n            (Number \"0\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/subscript-access-assignment.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AssignmentExpression \n          (SubscriptExpression \n            (Expression \n              (Identifier \"y\")) \n            (Expression \n              (String))) \n          (Expression \n            (Number \"1\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/subscript-access-string.A.js",
    "content": "x[\"some-string\"];\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/subscript-access-string.B.js",
    "content": "x[\"some-other-string\"];\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/subscript-access-string.diffA-B.txt",
    "content": "(Statements\n  (Subscript\n    (Identifier)\n  { (TextElement)\n  ->(TextElement) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/subscript-access-string.diffB-A.txt",
    "content": "(Statements\n  (Subscript\n    (Identifier)\n  { (TextElement)\n  ->(TextElement) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/subscript-access-string.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (SubscriptExpression \n          (Expression \n            (Identifier \"x\")) \n          (Expression \n            (String)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/subscript-access-string.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (SubscriptExpression \n          (Expression \n            (Identifier \"x\")) \n          (Expression \n            (String)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/subscript-access-variable.A.js",
    "content": "x[someVariable];\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/subscript-access-variable.B.js",
    "content": "x[someOtherVariable];\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/subscript-access-variable.diffA-B.txt",
    "content": "(Statements\n  (Subscript\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/subscript-access-variable.diffB-A.txt",
    "content": "(Statements\n  (Subscript\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/subscript-access-variable.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (SubscriptExpression \n          (Expression \n            (Identifier \"x\")) \n          (Expression \n            (Identifier \"someVariable\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/subscript-access-variable.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (SubscriptExpression \n          (Expression \n            (Identifier \"x\")) \n          (Expression \n            (Identifier \"someOtherVariable\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/switch-statement.A.js",
    "content": "switch (1) { case 1: 1; case 2: 1; case 3: 3; };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/switch-statement.B.js",
    "content": "switch (2) { case 1: 1; case 2: 2; case 3: 3; };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/switch-statement.diffA-B.txt",
    "content": "(Statements\n  (Match\n  { (Float)\n  ->(Float) }\n    (Statements\n      (Pattern\n        (Float)\n        (Statements\n          (Float)))\n      (Pattern\n        (Float)\n        (Statements\n        { (Float)\n        ->(Float) }))\n      (Pattern\n        (Float)\n        (Statements\n          (Float)))))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/switch-statement.diffB-A.txt",
    "content": "(Statements\n  (Match\n  { (Float)\n  ->(Float) }\n    (Statements\n      (Pattern\n        (Float)\n        (Statements\n          (Float)))\n      (Pattern\n        (Float)\n        (Statements\n        { (Float)\n        ->(Float) }))\n      (Pattern\n        (Float)\n        (Statements\n          (Float)))))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/switch-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (SwitchStatement \n      (SwitchBody \n        (SwitchCase \n          (Expression \n            (Number \"1\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Number \"1\"))))) \n        (SwitchCase \n          (Expression \n            (Number \"2\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Number \"1\"))))) \n        (SwitchCase \n          (Expression \n            (Number \"3\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Number \"3\")))))) \n      (ParenthesizedExpression \n        (Expression \n          (Number \"1\"))))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/switch-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (SwitchStatement \n      (SwitchBody \n        (SwitchCase \n          (Expression \n            (Number \"1\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Number \"1\"))))) \n        (SwitchCase \n          (Expression \n            (Number \"2\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Number \"2\"))))) \n        (SwitchCase \n          (Expression \n            (Number \"3\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Number \"3\")))))) \n      (ParenthesizedExpression \n        (Expression \n          (Number \"2\"))))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/template-string.A.js",
    "content": "`one line`\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/template-string.B.js",
    "content": "`multi line`\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/template-string.diffA-B.txt",
    "content": "(Statements\n  (String))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/template-string.diffB-A.txt",
    "content": "(Statements\n  (String))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/template-string.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (TemplateString)))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/template-string.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (TemplateString)))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/ternary.A.js",
    "content": "condition ? case1 : case2;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/ternary.B.js",
    "content": "x.y = some.condition ? some.case : some.other.case;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/ternary.diffA-B.txt",
    "content": "(Statements\n{+(Assignment\n  {+(MemberAccess\n    {+(Identifier)+}\n    {+(Identifier)+})+}\n  {+(If\n    {+(MemberAccess\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(MemberAccess\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(MemberAccess\n      {+(MemberAccess\n        {+(Identifier)+}\n        {+(Identifier)+})+}\n      {+(Identifier)+})+})+})+}\n{-(If\n  {-(Identifier)-}\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/ternary.diffB-A.txt",
    "content": "(Statements\n{+(If\n  {+(Identifier)+}\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(Assignment\n  {-(MemberAccess\n    {-(Identifier)-}\n    {-(Identifier)-})-}\n  {-(If\n    {-(MemberAccess\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(MemberAccess\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(MemberAccess\n      {-(MemberAccess\n        {-(Identifier)-}\n        {-(Identifier)-})-}\n      {-(Identifier)-})-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/ternary.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (TernaryExpression \n          (Expression \n            (Identifier \"case2\")) \n          (Expression \n            (Identifier \"case1\")) \n          (Expression \n            (Identifier \"condition\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/ternary.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AssignmentExpression \n          (MemberExpression \n            (PropertyIdentifier \"y\") \n            (Expression \n              (Identifier \"x\"))) \n          (Expression \n            (TernaryExpression \n              (Expression \n                (MemberExpression \n                  (PropertyIdentifier \"case\") \n                  (Expression \n                    (MemberExpression \n                      (PropertyIdentifier \"other\") \n                      (Expression \n                        (Identifier \"some\")))))) \n              (Expression \n                (MemberExpression \n                  (PropertyIdentifier \"case\") \n                  (Expression \n                    (Identifier \"some\")))) \n              (Expression \n                (MemberExpression \n                  (PropertyIdentifier \"condition\") \n                  (Expression \n                    (Identifier \"some\")))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/this-expression.A.js",
    "content": "this;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/this-expression.B.js",
    "content": "return this;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/this-expression.diffA-B.txt",
    "content": "(Statements\n{+(Return\n  {+(This)+})+}\n{-(This)-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/this-expression.diffB-A.txt",
    "content": "(Statements\n{+(This)+}\n{-(Return\n  {-(This)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/this-expression.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (This \"this\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/this-expression.parseB.txt",
    "content": "(Program \n  (Statement \n    (ReturnStatement \n      (Expression \n        (This \"this\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/throw-statement.A.js",
    "content": "throw new Error(\"uh oh\");\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/throw-statement.B.js",
    "content": "throw new Error(\"oooooops\");\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/throw-statement.diffA-B.txt",
    "content": "(Statements\n  (Throw\n    (New\n      (Identifier)\n      (Empty)\n    { (TextElement)\n    ->(TextElement) })))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/throw-statement.diffB-A.txt",
    "content": "(Statements\n  (Throw\n    (New\n      (Identifier)\n      (Empty)\n    { (TextElement)\n    ->(TextElement) })))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/throw-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (ThrowStatement \n      (Expression \n        (NewExpression \n          (Arguments \n            (Expression \n              (String))) \n          (Identifier \"Error\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/throw-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (ThrowStatement \n      (Expression \n        (NewExpression \n          (Arguments \n            (Expression \n              (String))) \n          (Identifier \"Error\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/true.A.js",
    "content": "true;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/true.B.js",
    "content": "return true;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/true.diffA-B.txt",
    "content": "(Statements\n{+(Return\n  {+(Boolean)+})+}\n{-(Boolean)-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/true.diffB-A.txt",
    "content": "(Statements\n{+(Boolean)+}\n{-(Return\n  {-(Boolean)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/true.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (True \"true\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/true.parseB.txt",
    "content": "(Program \n  (Statement \n    (ReturnStatement \n      (Expression \n        (True \"true\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/try-statement.A.js",
    "content": "try { f; } catch { g; } finally { h; };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/try-statement.B.js",
    "content": "try { f; } catch { h; } finally { g; };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/try-statement.diffA-B.txt",
    "content": "(Statements\n  (Try\n    (Statements\n      (Identifier))\n    (Catch\n      (Empty)\n      (Statements\n      { (Identifier)\n      ->(Identifier) }))\n    (Finally\n      (Statements\n      { (Identifier)\n      ->(Identifier) })))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/try-statement.diffB-A.txt",
    "content": "(Statements\n  (Try\n    (Statements\n      (Identifier))\n    (Catch\n      (Empty)\n      (Statements\n      { (Identifier)\n      ->(Identifier) }))\n    (Finally\n      (Statements\n      { (Identifier)\n      ->(Identifier) })))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/try-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (TryStatement \n      (StatementBlock \n        (Statement \n          (ExpressionStatement \n            (Expression \n              (Identifier \"f\"))))) \n      (CatchClause \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"g\")))))) \n      (FinallyClause \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"h\")))))))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/try-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (TryStatement \n      (StatementBlock \n        (Statement \n          (ExpressionStatement \n            (Expression \n              (Identifier \"f\"))))) \n      (CatchClause \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"h\")))))) \n      (FinallyClause \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"g\")))))))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/type-operator.A.js",
    "content": "typeof x;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/type-operator.B.js",
    "content": "x instanceof String;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/type-operator.diffA-B.txt",
    "content": "(Statements\n{+(InstanceOf\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(Typeof\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/type-operator.diffB-A.txt",
    "content": "(Statements\n{+(Typeof\n  {+(Identifier)+})+}\n{-(InstanceOf\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/type-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (UnaryExpression \n          (Token) \n          (Expression \n            (Identifier \"x\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/type-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (BinaryExpression \n          (Token) \n          (Expression \n            (Identifier \"x\")) \n          (Expression \n            (Identifier \"String\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/undefined.A.js",
    "content": "undefined;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/undefined.B.js",
    "content": "return undefined;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/undefined.diffA-B.txt",
    "content": "(Statements\n{+(Return\n  {+(Undefined)+})+}\n{-(Undefined)-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/undefined.diffB-A.txt",
    "content": "(Statements\n{+(Undefined)+}\n{-(Return\n  {-(Undefined)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/undefined.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Undefined \"undefined\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/undefined.parseB.txt",
    "content": "(Program \n  (Statement \n    (ReturnStatement \n      (Expression \n        (Undefined \"undefined\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/var-declaration.A.js",
    "content": "var x = 1;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/var-declaration.B.js",
    "content": "var x, y = {}, z;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/var-declaration.diffA-B.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Empty)\n      (Identifier)\n    { (Float)\n    ->(Empty) })\n  {+(Assignment\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(Hash)+})+}\n  {+(Assignment\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(Empty)+})+}))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/var-declaration.diffB-A.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Empty)\n      (Identifier)\n    { (Empty)\n    ->(Float) })\n  {-(Assignment\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(Hash)-})-}\n  {-(Assignment\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(Empty)-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/var-declaration.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (VariableDeclaration \n        (VariableDeclarator \n          (Expression \n            (Number \"1\")) \n          (Identifier \"x\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/var-declaration.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (VariableDeclaration \n        (VariableDeclarator \n          (Identifier \"x\")) \n        (VariableDeclarator \n          (Expression \n            (Object)) \n          (Identifier \"y\")) \n        (VariableDeclarator \n          (Identifier \"z\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/variable.A.js",
    "content": "theVar;\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/variable.B.js",
    "content": "theVar2\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/variable.diffA-B.txt",
    "content": "(Statements\n{ (Identifier)\n->(Identifier) })\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/variable.diffB-A.txt",
    "content": "(Statements\n{ (Identifier)\n->(Identifier) })\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/variable.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Identifier \"theVar\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/variable.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Identifier \"theVar2\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/variadic-function-declarations.parseA.txt",
    "content": ""
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/void-operator.A.js",
    "content": "void b()\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/void-operator.B.js",
    "content": "void c()\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/void-operator.diffA-B.txt",
    "content": "(Statements\n  (Void\n    (Call\n    { (Identifier)\n    ->(Identifier) }\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/void-operator.diffB-A.txt",
    "content": "(Statements\n  (Void\n    (Call\n    { (Identifier)\n    ->(Identifier) }\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/void-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (UnaryExpression \n          (Token) \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"b\")) \n              (Arguments))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/void-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (UnaryExpression \n          (Token) \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"c\")) \n              (Arguments))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/while-statement.A.js",
    "content": "while (a) { b(); };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/while-statement.B.js",
    "content": "while (b) { a(); };\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/while-statement.diffA-B.txt",
    "content": "(Statements\n  (While\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Call\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/while-statement.diffB-A.txt",
    "content": "(Statements\n  (While\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Call\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/while-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (WhileStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"b\")) \n                  (Arguments))))))) \n      (ParenthesizedExpression \n        (Expression \n          (Identifier \"a\"))))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/while-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (WhileStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"a\")) \n                  (Arguments))))))) \n      (ParenthesizedExpression \n        (Expression \n          (Identifier \"b\"))))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/yield.A.js",
    "content": "function* foo(){ var index = 0; yield i; }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/yield.B.js",
    "content": "function* foo(){ var index = 0; yield i++; }\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/yield.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Identifier)\n    (StatementBlock\n      (VariableDeclaration\n        (Assignment\n          (Empty)\n          (Identifier)\n          (Float)))\n      (Yield\n      { (Identifier)\n      ->(Update\n        {+(Identifier)+}) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/yield.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Identifier)\n    (StatementBlock\n      (VariableDeclaration\n        (Assignment\n          (Empty)\n          (Identifier)\n          (Float)))\n      (Yield\n      { (Update\n        {-(Identifier)-})\n      ->(Identifier) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/yield.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (GeneratorFunctionDeclaration \n        (StatementBlock \n          (Statement \n            (Declaration \n              (VariableDeclaration \n                (VariableDeclarator \n                  (Expression \n                    (Number \"0\")) \n                  (Identifier \"index\"))))) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (YieldExpression \n                  (Expression \n                    (Identifier \"i\"))))))) \n        (Identifier \"foo\") \n        (FormalParameters)))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/corpus/yield.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (GeneratorFunctionDeclaration \n        (StatementBlock \n          (Statement \n            (Declaration \n              (VariableDeclaration \n                (VariableDeclarator \n                  (Expression \n                    (Number \"0\")) \n                  (Identifier \"index\"))))) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (YieldExpression \n                  (Expression \n                    (UpdateExpression \n                      (Token) \n                      (Expression \n                        (Identifier \"i\"))))))))) \n        (Identifier \"foo\") \n        (FormalParameters)))))\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/reprinting/map.json",
    "content": "{\n  \"foo\": 100,\n  \"bar\": [1, 2, 3],\n  \"baz\": true\n}\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/tags/simple_function_with_docs.js",
    "content": "// This is myFunction\nfunction myFunction() {\n  return 0;\n}\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/toc/duplicate-parent.A.js",
    "content": "function myFunction() {\n  return 0;\n}\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/toc/duplicate-parent.B.js",
    "content": "function myFunction() {\n  if (true) {\n    console.log();\n  }\n  return 1;\n}\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/toc/erroneous-duplicate-method.A.js",
    "content": "/* @flow */\n\nimport $ from '../jquery'\nimport cast from '../typecast'\nimport {on} from 'delegated-events'\nimport {submit} from '../form'\n\nlet allowSubmit = false\n\nfunction performHealthcheck() {\n  const repoName = cast(document.getElementById('showcase_item_name_with_owner'), HTMLInputElement).value\n  const submitButton = cast(document.getElementById('submit'), HTMLButtonElement)\n  const hiddenForm = cast(document.getElementsByClassName('js-submit-health-check')[0], HTMLFormElement)\n  const targetRepoName = cast(document.getElementById('repo_name'), HTMLInputElement)\n  document.getElementById(\"js-health\").innerHTML = \"Performing health check...\"\n  targetRepoName.value = repoName\n  submitButton.disabled = false\n  allowSubmit = true\n  submit(hiddenForm)\n}\n\non('submit', '#new_showcase_item', function(e) {\n  if (!allowSubmit) { e.preventDefault() }\n})\n\n$(document).on('ajaxSuccess', '.js-health', function(event, xhr, settings, data) {\n  this.innerHTML = data\n})\n\non('focusout', '#showcase_item_name_with_owner', function() {\n  performHealthcheck()\n})\n\non('focusin', '#showcase_item_body', function() {\n  if (cast(document.getElementById('showcase_item_name_with_owner'), HTMLInputElement).type === 'hidden') {\n    performHealthcheck()\n  }\n})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/toc/erroneous-duplicate-method.B.js",
    "content": "/* @flow */\n\nimport cast from '../typecast'\nimport {changeValue} from '../form'\nimport {fetchSafeDocumentFragment} from '../fetch'\nimport {observe} from '../observe'\n\nfunction performHealthCheck(container, repoName) {\n  const formCheck = cast(document.querySelector('.js-repo-health-check'), HTMLFormElement)\n  const nameToCheck = cast(formCheck.querySelector('.js-repo-health-name'), HTMLInputElement)\n  nameToCheck.value = repoName\n\n  const completedIndicator = cast(container.querySelector('.js-repo-health-check-completed'), HTMLInputElement)\n  changeValue(completedIndicator, '')\n  container.classList.remove('d-none')\n  container.classList.add('is-loading')\n\n  return fetchSafeDocumentFragment(document, formCheck.action, {\n    method: 'POST',\n    body: new FormData(formCheck),\n  }).then(html => {\n    const results = cast(container.querySelector('.js-repo-health-results'), HTMLElement)\n    results.innerHTML = ''\n    results.appendChild(html)\n\n    container.classList.remove('is-loading')\n    changeValue(completedIndicator, '1')\n  })\n}\n\nobserve('.js-repo-health', function(container: HTMLElement) {\n  const form = cast(container.closest('form'), HTMLFormElement)\n  const repoInput = cast(form.querySelector('.js-repo-name'), HTMLInputElement)\n\n  if (repoInput.type === 'hidden') {\n    const description = cast(form.querySelector('.js-comment-field'), HTMLTextAreaElement)\n    description.addEventListener('focus', () => {\n      performHealthCheck(container, repoInput.value)\n    })\n  } else {\n    repoInput.addEventListener('change', () => {\n      performHealthCheck(container, repoInput.value)\n    })\n  }\n})\n"
  },
  {
    "path": "semantic/test/fixtures/javascript/toc/starts-with-newline.js",
    "content": "\n//Выберем файлы по нужному пути\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/array.A.json",
    "content": "[1, 3, 3, 5, 7]\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/array.B.json",
    "content": "[2, 3, 4, 5, 6]\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/array.parseA.txt",
    "content": "(Document \n  (Value \n    (Array \n      (Value \n        (Number \"1\")) \n      (Value \n        (Number \"3\")) \n      (Value \n        (Number \"3\")) \n      (Value \n        (Number \"5\")) \n      (Value \n        (Number \"7\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/array.parseB.txt",
    "content": "(Document \n  (Value \n    (Array \n      (Value \n        (Number \"2\")) \n      (Value \n        (Number \"3\")) \n      (Value \n        (Number \"4\")) \n      (Value \n        (Number \"5\")) \n      (Value \n        (Number \"6\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/boolean.A.json",
    "content": "[true]\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/boolean.B.json",
    "content": "[false]\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/boolean.parseA.txt",
    "content": "(Document \n  (Value \n    (Array \n      (Value \n        (True \"true\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/boolean.parseB.txt",
    "content": "(Document \n  (Value \n    (Array \n      (Value \n        (False \"false\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/hash.A.json",
    "content": "{\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4}\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/hash.B.json",
    "content": "{\"b\": 2, \"c'\": 3, \"d\": 5, \"e\": 5}\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/hash.parseA.txt",
    "content": "(Document \n  (Value \n    (Object \n      (Pair \n        (Value \n          (Number \"1\")) \n        (String \n          (StringContent))) \n      (Pair \n        (Value \n          (Number \"2\")) \n        (String \n          (StringContent))) \n      (Pair \n        (Value \n          (Number \"3\")) \n        (String \n          (StringContent))) \n      (Pair \n        (Value \n          (Number \"4\")) \n        (String \n          (StringContent))))))\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/hash.parseB.txt",
    "content": "(Document \n  (Value \n    (Object \n      (Pair \n        (Value \n          (Number \"2\")) \n        (String \n          (StringContent))) \n      (Pair \n        (Value \n          (Number \"3\")) \n        (String \n          (StringContent))) \n      (Pair \n        (Value \n          (Number \"5\")) \n        (String \n          (StringContent))) \n      (Pair \n        (Value \n          (Number \"5\")) \n        (String \n          (StringContent))))))\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/null.A.json",
    "content": "[null]\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/null.B.json",
    "content": "[null]\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/null.parseA.txt",
    "content": "(Document \n  (Value \n    (Array \n      (Value \n        (Null \"null\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/null.parseB.txt",
    "content": "(Document \n  (Value \n    (Array \n      (Value \n        (Null \"null\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/number.A.json",
    "content": "[1]\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/number.B.json",
    "content": "[-1]\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/number.parseA.txt",
    "content": "(Document \n  (Value \n    (Array \n      (Value \n        (Number \"1\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/number.parseB.txt",
    "content": "(Document \n  (Value \n    (Array \n      (Value \n        (Number \"-1\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/string.A.json",
    "content": "[\"hello\"]\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/string.B.json",
    "content": "[\"world\"]\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/string.parseA.txt",
    "content": "(Document \n  (Value \n    (Array \n      (Value \n        (String \n          (StringContent))))))\n"
  },
  {
    "path": "semantic/test/fixtures/json/corpus/string.parseB.txt",
    "content": "(Document \n  (Value \n    (Array \n      (Value \n        (String \n          (StringContent))))))\n"
  },
  {
    "path": "semantic/test/fixtures/json/rewriting/add_keys.json",
    "content": "{\n  \"fore\": \"aft\",\n  \"dang\": {\"dude\": \"yeah\"},\n  \"100\": \"one hundred\",\n  \"test\": {}\n}\n"
  },
  {
    "path": "semantic/test/fixtures/json/rewriting/add_keys_expected.json",
    "content": "{\n  \"fore\": \"aft\",\n  \"dang\": {\"dude\": \"yeah\"},\n  \"100\": \"one hundred\",\n  \"test\": {\n    \"hi\": \"bye\"\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/markdown/corpus/example.A.md",
    "content": "a <!-- xyz --> b\n"
  },
  {
    "path": "semantic/test/fixtures/markdown/toc/headings.A.md",
    "content": "# Introduction\n\none, two, three\n\n# One\n\nJust some text\n\n## Two\n\nabc\n"
  },
  {
    "path": "semantic/test/fixtures/markdown/toc/headings.B.md",
    "content": "# One\n\nJust some text\n\n## Two\n\nxyz\n\n### This heading is new\n\nmore text\n\nFinal\n===\n"
  },
  {
    "path": "semantic/test/fixtures/php/analysis/bar.php",
    "content": "<?php\nfunction bar() {\n  return 1;\n}\n"
  },
  {
    "path": "semantic/test/fixtures/php/analysis/foo.php",
    "content": "<?php\nfunction foo() {\n  return 1;\n}\n"
  },
  {
    "path": "semantic/test/fixtures/php/analysis/main.php",
    "content": "<?php\ninclude 'foo.php';\nrequire 'bar.php';\n\nfoo();\nbar();\n"
  },
  {
    "path": "semantic/test/fixtures/php/analysis/main_once.php",
    "content": "<?php\ninclude_once 'foo.php';\nrequire_once 'bar.php';\n\nfoo();\nbar();\n"
  },
  {
    "path": "semantic/test/fixtures/php/analysis/namespaces.php",
    "content": "<?php\n\nnamespace NS1\\Sub1\\Sub2\n{\n  function f() {\n    return 1;\n  }\n}\n\nnamespace NS1\n{\n  function b() {\n    return \"hi\";\n  }\n}\nnamespace NS1\n{\n  function c() {\n    return \"x\";\n  }\n}\n\nnamespace Foo\n{\n  \\NS1\\Sub1\\Sub2\\f();\n  \\NS1\\b();\n  \\NS1\\c();\n}\n"
  },
  {
    "path": "semantic/test/fixtures/python/analysis/a.py",
    "content": "def foo(x):\n    return x\n\n"
  },
  {
    "path": "semantic/test/fixtures/python/analysis/b/__init__.py",
    "content": ""
  },
  {
    "path": "semantic/test/fixtures/python/analysis/b/c.py",
    "content": "def baz(x):\n    return False\n"
  },
  {
    "path": "semantic/test/fixtures/python/analysis/c/__init__.py",
    "content": "from . import utils\n\nprint(utils.to_s())\n"
  },
  {
    "path": "semantic/test/fixtures/python/analysis/c/utils.py",
    "content": "def to_s():\n    return \"hi\";\n"
  },
  {
    "path": "semantic/test/fixtures/python/analysis/main.py",
    "content": "import a\nimport b.c\n\na.foo(1)\nb.c.baz(1)\n"
  },
  {
    "path": "semantic/test/fixtures/python/analysis/main1.py",
    "content": "import a as b\nimport b.c as e\n\nb.foo(1)\ne.baz(1)\n"
  },
  {
    "path": "semantic/test/fixtures/python/analysis/main2.py",
    "content": "from a import *\nfrom b.c import baz as bar\n\nfoo(1)\nbar(1)\n"
  },
  {
    "path": "semantic/test/fixtures/python/analysis/main3.py",
    "content": "from c import *\n"
  },
  {
    "path": "semantic/test/fixtures/python/analysis/multiple_inheritance.py",
    "content": "class Foo:\n    def dang(self):\n        return \"foo!\"\n\nclass Bar:\n    def dang(self):\n        return \"bar!\"\n\n\nclass Baz(Foo, Bar): pass\n\nBaz.dang()\n"
  },
  {
    "path": "semantic/test/fixtures/python/analysis/subclass.py",
    "content": "class Foo():\n    def dang():\n        return \"foo\"\n\nclass Bar():\n    def dang():\n        return \"bar\"\n\nBar.dang()\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/assert-statement.A.py",
    "content": "assert a # comment\nassert b, c\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/assert-statement.B.py",
    "content": "assert c, a\nassert b # comment\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/assert-statement.diffA-B.txt",
    "content": "(Statements\n{+(Call\n  {+(Identifier)+}\n  {+(Identifier)+}\n  {+(Identifier)+}\n  {+(Empty)+})+}\n  (Call\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }\n    (Empty))\n  (Context\n    (Comment)\n  { (Call\n    {-(Identifier)-}\n    {-(Identifier)-}\n    {-(Identifier)-}\n    {-(Empty)-})\n  ->(Empty) }))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/assert-statement.diffB-A.txt",
    "content": "(Statements\n{+(Call\n  {+(Identifier)+}\n  {+(Identifier)+}\n  {+(Empty)+})+}\n{+(Context\n  {+(Comment)+}\n    (Call\n      (Identifier)\n    {+(Identifier)+}\n      (Identifier)\n    {-(Identifier)-}\n      (Empty)))+}\n{-(Call\n  {-(Identifier)-}\n  {-(Identifier)-}\n  {-(Empty)-})-}\n{-(Context\n  {-(Comment)-}\n  {-(Empty)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/assert-statement.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (AssertStatement \n      (Expression \n        (PrimaryExpression \n          (Identifier \"a\"))))) \n  (SimpleStatement \n    (AssertStatement \n      (Expression \n        (PrimaryExpression \n          (Identifier \"b\"))) \n      (Expression \n        (PrimaryExpression \n          (Identifier \"c\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/assert-statement.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (AssertStatement \n      (Expression \n        (PrimaryExpression \n          (Identifier \"c\"))) \n      (Expression \n        (PrimaryExpression \n          (Identifier \"a\"))))) \n  (SimpleStatement \n    (AssertStatement \n      (Expression \n        (PrimaryExpression \n          (Identifier \"b\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/assignment.A.py",
    "content": "a = 1\na, b = 1, 2\na, = 1, 2\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/assignment.B.py",
    "content": "a, b = 2, 1\nc = 1\nb, = 1, 2\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/assignment.diffA-B.txt",
    "content": "(Statements\n{+(Assignment\n  {+(Statements\n    {+(Identifier)+}\n    {+(Identifier)+})+}\n  {+(Statements\n    {+(Integer)+}\n    {+(Integer)+})+})+}\n  (Assignment\n  { (Identifier)\n  ->(Identifier) }\n    (Integer))\n  (Assignment\n  { (Statements\n    {-(Identifier)-}\n    {-(Identifier)-})\n  ->(Identifier) }\n    (Statements\n      (Integer)\n      (Integer)))\n{-(Assignment\n  {-(Identifier)-}\n  {-(Statements\n    {-(Integer)-}\n    {-(Integer)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/assignment.diffB-A.txt",
    "content": "(Statements\n{+(Assignment\n  {+(Identifier)+}\n  {+(Integer)+})+}\n  (Assignment\n    (Statements\n      (Identifier)\n      (Identifier))\n    (Statements\n    {-(Integer)-}\n      (Integer)\n    {+(Integer)+}))\n  (Assignment\n  { (Identifier)\n  ->(Identifier) }\n  { (Integer)\n  ->(Statements\n    {+(Integer)+}\n    {+(Integer)+}) })\n{-(Assignment\n  {-(Identifier)-}\n  {-(Statements\n    {-(Integer)-}\n    {-(Integer)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/assignment.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Assignment \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Identifier \"a\")))) \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Integer \"1\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Assignment \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Identifier \"a\"))) \n          (Expression \n            (PrimaryExpression \n              (Identifier \"b\")))) \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Integer \"1\"))) \n          (Expression \n            (PrimaryExpression \n              (Integer \"2\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Assignment \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Identifier \"a\")))) \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Integer \"1\"))) \n          (Expression \n            (PrimaryExpression \n              (Integer \"2\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/assignment.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Assignment \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Identifier \"a\"))) \n          (Expression \n            (PrimaryExpression \n              (Identifier \"b\")))) \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Integer \"2\"))) \n          (Expression \n            (PrimaryExpression \n              (Integer \"1\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Assignment \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Identifier \"c\")))) \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Integer \"1\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Assignment \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Identifier \"b\")))) \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Integer \"1\"))) \n          (Expression \n            (PrimaryExpression \n              (Integer \"2\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/async-function-definition.A.py",
    "content": "async def a():\n  b\n\nasync def b(h, i,):\n  i\n\nasync def c(d):\n  d\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/async-function-definition.B.py",
    "content": "async def g(i, j,):\n  j\n\nasync def a():\n  c\n\nasync def d(c):\n  e\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/async-function-definition.diffA-B.txt",
    "content": "(Statements\n{+(Function\n  {+(Identifier)+}\n  {+(RequiredParameter\n    {+(Identifier)+})+}\n  {+(RequiredParameter\n    {+(Identifier)+})+}\n  {+(Statements\n    {+(Identifier)+})+})+}\n  (Function\n    (Identifier)\n    (Statements\n    { (Identifier)\n    ->(Identifier) }))\n  (Function\n  { (Identifier)\n  ->(Identifier) }\n    (RequiredParameter\n    { (Identifier)\n    ->(Identifier) })\n  {-(RequiredParameter\n    {-(Identifier)-})-}\n    (Statements\n    { (Identifier)\n    ->(Identifier) }))\n{-(Function\n  {-(Identifier)-}\n  {-(RequiredParameter\n    {-(Identifier)-})-}\n  {-(Statements\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/async-function-definition.diffB-A.txt",
    "content": "(Statements\n{-(Function\n  {-(Identifier)-}\n  {-(RequiredParameter\n    {-(Identifier)-})-}\n  {-(RequiredParameter\n    {-(Identifier)-})-}\n  {-(Statements\n    {-(Identifier)-})-})-}\n  (Function\n    (Identifier)\n    (Statements\n    { (Identifier)\n    ->(Identifier) }))\n  (Function\n  { (Identifier)\n  ->(Identifier) }\n    (RequiredParameter\n    { (Identifier)\n    ->(Identifier) })\n  {+(RequiredParameter\n    {+(Identifier)+})+}\n    (Statements\n    { (Identifier)\n    ->(Identifier) }))\n{+(Function\n  {+(Identifier)+}\n  {+(RequiredParameter\n    {+(Identifier)+})+}\n  {+(Statements\n    {+(Identifier)+})+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/async-function-definition.parseA.txt",
    "content": "(Module \n  (CompoundStatement \n    (FunctionDefinition \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"b\")))))) \n      (Identifier \"a\") \n      (Parameters))) \n  (CompoundStatement \n    (FunctionDefinition \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"i\")))))) \n      (Identifier \"b\") \n      (Parameters \n        (Parameter \n          (Identifier \"h\")) \n        (Parameter \n          (Identifier \"i\"))))) \n  (CompoundStatement \n    (FunctionDefinition \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"d\")))))) \n      (Identifier \"c\") \n      (Parameters \n        (Parameter \n          (Identifier \"d\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/async-function-definition.parseB.txt",
    "content": "(Module \n  (CompoundStatement \n    (FunctionDefinition \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"j\")))))) \n      (Identifier \"g\") \n      (Parameters \n        (Parameter \n          (Identifier \"i\")) \n        (Parameter \n          (Identifier \"j\"))))) \n  (CompoundStatement \n    (FunctionDefinition \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"c\")))))) \n      (Identifier \"a\") \n      (Parameters))) \n  (CompoundStatement \n    (FunctionDefinition \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"e\")))))) \n      (Identifier \"d\") \n      (Parameters \n        (Parameter \n          (Identifier \"c\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/attribute.A.py",
    "content": "a.b\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/attribute.B.py",
    "content": "a.b.c\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/attribute.diffA-B.txt",
    "content": "(Statements\n  (MemberAccess\n  { (Identifier)\n  ->(MemberAccess\n    {+(Identifier)+}\n    {+(Identifier)+}) }\n  { (Identifier)\n  ->(Identifier) }))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/attribute.diffB-A.txt",
    "content": "(Statements\n  (MemberAccess\n  { (MemberAccess\n    {-(Identifier)-}\n    {-(Identifier)-})\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) }))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/attribute.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Attribute \n            (Identifier \"b\") \n            (PrimaryExpression \n              (Identifier \"a\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/attribute.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Attribute \n            (Identifier \"c\") \n            (PrimaryExpression \n              (Attribute \n                (Identifier \"b\") \n                (PrimaryExpression \n                  (Identifier \"a\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/augmented-assignment.A.py",
    "content": "a += 1\nb >>= 2\nc //= 1\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/augmented-assignment.B.py",
    "content": "a >>= 2\nd //= 1\nb += 1\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/augmented-assignment.diffA-B.txt",
    "content": "(Statements\n  (AugmentedAssignment\n  { (Plus\n    {-(Identifier)-}\n    {-(Integer)-})\n  ->(RShift\n    {+(Identifier)+}\n    {+(Integer)+}) })\n{+(AugmentedAssignment\n  {+(DividedBy\n    {+(Identifier)+}\n    {+(Integer)+})+})+}\n  (AugmentedAssignment\n  { (RShift\n    {-(Identifier)-}\n    {-(Integer)-})\n  ->(Plus\n    {+(Identifier)+}\n    {+(Integer)+}) })\n{-(AugmentedAssignment\n  {-(DividedBy\n    {-(Identifier)-}\n    {-(Integer)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/augmented-assignment.diffB-A.txt",
    "content": "(Statements\n  (AugmentedAssignment\n  { (RShift\n    {-(Identifier)-}\n    {-(Integer)-})\n  ->(Plus\n    {+(Identifier)+}\n    {+(Integer)+}) })\n{+(AugmentedAssignment\n  {+(RShift\n    {+(Identifier)+}\n    {+(Integer)+})+})+}\n{+(AugmentedAssignment\n  {+(DividedBy\n    {+(Identifier)+}\n    {+(Integer)+})+})+}\n{-(AugmentedAssignment\n  {-(DividedBy\n    {-(Identifier)-}\n    {-(Integer)-})-})-}\n{-(AugmentedAssignment\n  {-(Plus\n    {-(Identifier)-}\n    {-(Integer)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/augmented-assignment.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (AugmentedAssignment \n        (Token) \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Identifier \"a\")))) \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Integer \"1\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (AugmentedAssignment \n        (Token) \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Identifier \"b\")))) \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Integer \"2\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (AugmentedAssignment \n        (Token) \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Identifier \"c\")))) \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Integer \"1\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/augmented-assignment.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (AugmentedAssignment \n        (Token) \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Identifier \"a\")))) \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Integer \"2\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (AugmentedAssignment \n        (Token) \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Identifier \"d\")))) \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Integer \"1\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (AugmentedAssignment \n        (Token) \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Identifier \"b\")))) \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Integer \"1\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/await.A.py",
    "content": "await 1 + 1\nawait b\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/await.B.py",
    "content": "await 2 + 1\nawait c\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/await.diffA-B.txt",
    "content": "(Statements\n  (Call\n    (Identifier)\n    (Plus\n    { (Integer)\n    ->(Integer) }\n      (Integer))\n    (Empty))\n  (Call\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/await.diffB-A.txt",
    "content": "(Statements\n  (Call\n    (Identifier)\n    (Plus\n    { (Integer)\n    ->(Integer) }\n      (Integer))\n    (Empty))\n  (Call\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/await.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (Await \n          (Expression \n            (PrimaryExpression \n              (BinaryOperator \n                (Token) \n                (PrimaryExpression \n                  (Integer \"1\")) \n                (PrimaryExpression \n                  (Integer \"1\"))))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (Await \n          (Expression \n            (PrimaryExpression \n              (Identifier \"b\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/await.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (Await \n          (Expression \n            (PrimaryExpression \n              (BinaryOperator \n                (Token) \n                (PrimaryExpression \n                  (Integer \"2\")) \n                (PrimaryExpression \n                  (Integer \"1\"))))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (Await \n          (Expression \n            (PrimaryExpression \n              (Identifier \"c\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/binary-operator.A.py",
    "content": "a + b\nc - d\ne * f\ng / h\ni % j\nk // l\nm ** n\no | p\nq & r\ns ^ t\nu << v\nw >> x\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/binary-operator.B.py",
    "content": "a >> b\nc << d\ne ^ f\ng & h\ni % j\nk ** l\nm // n\no % p\nq / r\ns * t\nu - v\nw + x\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/binary-operator.diffA-B.txt",
    "content": "(Statements\n{+(RShift\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(LShift\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(BXOr\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(BAnd\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(Plus\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(Minus\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(Times\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(DividedBy\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n  (Modulo\n    (Identifier)\n    (Identifier))\n{+(Power\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(FloorDivision\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(Modulo\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(DividedBy\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(Times\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(Minus\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(Plus\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(FloorDivision\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(Power\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(BOr\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(BAnd\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(BXOr\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(LShift\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(RShift\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/binary-operator.diffB-A.txt",
    "content": "(Statements\n{+(Plus\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(Minus\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(Times\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(DividedBy\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(RShift\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(LShift\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(BXOr\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(BAnd\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n  (Modulo\n    (Identifier)\n    (Identifier))\n{+(FloorDivision\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(Power\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(BOr\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(BAnd\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(BXOr\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(LShift\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(RShift\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(Power\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(FloorDivision\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(Modulo\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(DividedBy\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(Times\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(Minus\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(Plus\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/binary-operator.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"a\")) \n            (PrimaryExpression \n              (Identifier \"b\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"c\")) \n            (PrimaryExpression \n              (Identifier \"d\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"e\")) \n            (PrimaryExpression \n              (Identifier \"f\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"g\")) \n            (PrimaryExpression \n              (Identifier \"h\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"i\")) \n            (PrimaryExpression \n              (Identifier \"j\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"k\")) \n            (PrimaryExpression \n              (Identifier \"l\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"m\")) \n            (PrimaryExpression \n              (Identifier \"n\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"o\")) \n            (PrimaryExpression \n              (Identifier \"p\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"q\")) \n            (PrimaryExpression \n              (Identifier \"r\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"s\")) \n            (PrimaryExpression \n              (Identifier \"t\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"u\")) \n            (PrimaryExpression \n              (Identifier \"v\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"w\")) \n            (PrimaryExpression \n              (Identifier \"x\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/binary-operator.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"a\")) \n            (PrimaryExpression \n              (Identifier \"b\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"c\")) \n            (PrimaryExpression \n              (Identifier \"d\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"e\")) \n            (PrimaryExpression \n              (Identifier \"f\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"g\")) \n            (PrimaryExpression \n              (Identifier \"h\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"i\")) \n            (PrimaryExpression \n              (Identifier \"j\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"k\")) \n            (PrimaryExpression \n              (Identifier \"l\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"m\")) \n            (PrimaryExpression \n              (Identifier \"n\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"o\")) \n            (PrimaryExpression \n              (Identifier \"p\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"q\")) \n            (PrimaryExpression \n              (Identifier \"r\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"s\")) \n            (PrimaryExpression \n              (Identifier \"t\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"u\")) \n            (PrimaryExpression \n              (Identifier \"v\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"w\")) \n            (PrimaryExpression \n              (Identifier \"x\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/boolean-operator.A.py",
    "content": "foo and bar\nbaz or buzz\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/boolean-operator.B.py",
    "content": "foo or bar\nbaz and buzz\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/boolean-operator.diffA-B.txt",
    "content": "(Statements\n{+(Or\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n  (And\n  { (Identifier)\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) })\n{-(Or\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/boolean-operator.diffB-A.txt",
    "content": "(Statements\n{+(And\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n  (Or\n  { (Identifier)\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) })\n{-(And\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/boolean-operator.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (BooleanOperator \n          (Token) \n          (Expression \n            (PrimaryExpression \n              (Identifier \"foo\"))) \n          (Expression \n            (PrimaryExpression \n              (Identifier \"bar\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (BooleanOperator \n          (Token) \n          (Expression \n            (PrimaryExpression \n              (Identifier \"baz\"))) \n          (Expression \n            (PrimaryExpression \n              (Identifier \"buzz\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/boolean-operator.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (BooleanOperator \n          (Token) \n          (Expression \n            (PrimaryExpression \n              (Identifier \"foo\"))) \n          (Expression \n            (PrimaryExpression \n              (Identifier \"bar\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (BooleanOperator \n          (Token) \n          (Expression \n            (PrimaryExpression \n              (Identifier \"baz\"))) \n          (Expression \n            (PrimaryExpression \n              (Identifier \"buzz\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/boolean.A.py",
    "content": "False\nTrue\nTrue\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/boolean.B.py",
    "content": "True\nFalse\nFalse\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/boolean.diffA-B.txt",
    "content": "(Statements\n{-(Boolean)-}\n  (Boolean)\n{ (Boolean)\n->(Boolean) }\n{+(Boolean)+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/boolean.diffB-A.txt",
    "content": "(Statements\n{-(Boolean)-}\n  (Boolean)\n{ (Boolean)\n->(Boolean) }\n{+(Boolean)+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/boolean.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (False \"False\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (True \"True\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (True \"True\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/boolean.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (True \"True\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (False \"False\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (False \"False\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/break-statement.A.py",
    "content": "break\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/break-statement.B.py",
    "content": "break\nbreak\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/break-statement.diffA-B.txt",
    "content": "(Statements\n  (Break\n    (Empty))\n{+(Break\n  {+(Empty)+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/break-statement.diffB-A.txt",
    "content": "(Statements\n  (Break\n    (Empty))\n{-(Break\n  {-(Empty)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/break-statement.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (BreakStatement \"break\")))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/break-statement.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (BreakStatement \"break\")) \n  (SimpleStatement \n    (BreakStatement \"break\")))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/call.A.py",
    "content": "foo(a)\nbar()\nbazz(c,d)\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/call.B.py",
    "content": "foo()\nbar(a)\nbazz(d,c)\nsys.exit(1)\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/call.diffA-B.txt",
    "content": "(Statements\n  (Call\n    (Identifier)\n  {-(Identifier)-}\n    (Empty))\n  (Call\n    (Identifier)\n  {+(Identifier)+}\n    (Empty))\n  (Call\n    (Identifier)\n  {-(Identifier)-}\n    (Identifier)\n  {+(Identifier)+}\n    (Empty))\n{+(Call\n  {+(MemberAccess\n    {+(Identifier)+}\n    {+(Identifier)+})+}\n  {+(Integer)+}\n  {+(Empty)+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/call.diffB-A.txt",
    "content": "(Statements\n  (Call\n    (Identifier)\n  {+(Identifier)+}\n    (Empty))\n  (Call\n    (Identifier)\n  {-(Identifier)-}\n    (Empty))\n  (Call\n    (Identifier)\n  {-(Identifier)-}\n    (Identifier)\n  {+(Identifier)+}\n    (Empty))\n{-(Call\n  {-(MemberAccess\n    {-(Identifier)-}\n    {-(Identifier)-})-}\n  {-(Integer)-}\n  {-(Empty)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/call.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Call \n            (PrimaryExpression \n              (Identifier \"foo\")) \n            (ArgumentList \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"a\"))))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Call \n            (PrimaryExpression \n              (Identifier \"bar\")) \n            (ArgumentList)))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Call \n            (PrimaryExpression \n              (Identifier \"bazz\")) \n            (ArgumentList \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"c\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"d\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/call.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Call \n            (PrimaryExpression \n              (Identifier \"foo\")) \n            (ArgumentList)))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Call \n            (PrimaryExpression \n              (Identifier \"bar\")) \n            (ArgumentList \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"a\"))))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Call \n            (PrimaryExpression \n              (Identifier \"bazz\")) \n            (ArgumentList \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"d\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"c\"))))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Call \n            (PrimaryExpression \n              (Attribute \n                (Identifier \"exit\") \n                (PrimaryExpression \n                  (Identifier \"sys\")))) \n            (ArgumentList \n              (Expression \n                (PrimaryExpression \n                  (Integer \"1\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/class-definition.A.py",
    "content": "class A:\n  def b(self):\n    return c\n\nclass C():\n  pass\n\nclass B(method1):\n  def method1(self):\n    return\n\nclass D(e):\n    f: str\n    g: Optional[int]\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/class-definition.B.py",
    "content": "class D(method1):\n  def method1(self):\n    return\n\nclass B:\n  def b(self):\n    return c\n\nclass E(e):\n    g: str\n    h: Optional[int]\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/class-definition.diffA-B.txt",
    "content": "(Statements\n{-(Class\n  {-(Identifier)-}\n  {-(Statements\n    {-(Function\n      {-(Identifier)-}\n      {-(RequiredParameter\n        {-(Identifier)-})-}\n      {-(Statements\n        {-(Return\n          {-(Identifier)-})-})-})-})-})-}\n{-(Class\n  {-(Identifier)-}\n  {-(Statements\n    {-(NoOp\n      {-(Empty)-})-})-})-}\n{-(Class\n  {-(Identifier)-}\n  {-(Identifier)-}\n  {-(Statements\n    {-(Function\n      {-(Identifier)-}\n      {-(RequiredParameter\n        {-(Identifier)-})-}\n      {-(Statements\n        {-(Return\n          {-(Empty)-})-})-})-})-})-}\n  (Class\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n    {+(Function\n      {+(Identifier)+}\n      {+(RequiredParameter\n        {+(Identifier)+})+}\n      {+(Statements\n        {+(Return\n          {+(Empty)+})+})+})+}\n    {-(Assignment\n      {-(Identifier)-}\n      {-(Identifier)-}\n      {-(Empty)-})-}\n    {-(Assignment\n      {-(Subscript\n        {-(Identifier)-}\n        {-(Identifier)-})-}\n      {-(Identifier)-}\n      {-(Empty)-})-}))\n{+(Class\n  {+(Identifier)+}\n  {+(Statements\n    {+(Function\n      {+(Identifier)+}\n      {+(RequiredParameter\n        {+(Identifier)+})+}\n      {+(Statements\n        {+(Return\n          {+(Identifier)+})+})+})+})+})+}\n{+(Class\n  {+(Identifier)+}\n  {+(Identifier)+}\n  {+(Statements\n    {+(Assignment\n      {+(Identifier)+}\n      {+(Identifier)+}\n      {+(Empty)+})+}\n    {+(Assignment\n      {+(Subscript\n        {+(Identifier)+}\n        {+(Identifier)+})+}\n      {+(Identifier)+}\n      {+(Empty)+})+})+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/class-definition.diffB-A.txt",
    "content": "(Statements\n  (Class\n  { (Identifier)\n  ->(Identifier) }\n  {-(Identifier)-}\n    (Statements\n      (Function\n      { (Identifier)\n      ->(Identifier) }\n        (RequiredParameter\n          (Identifier))\n        (Statements\n          (Return\n          { (Empty)\n          ->(Identifier) })))))\n{+(Class\n  {+(Identifier)+}\n  {+(Statements\n    {+(NoOp\n      {+(Empty)+})+})+})+}\n  (Class\n    (Identifier)\n  {+(Identifier)+}\n    (Statements\n      (Function\n      { (Identifier)\n      ->(Identifier) }\n        (RequiredParameter\n          (Identifier))\n        (Statements\n          (Return\n          { (Identifier)\n          ->(Empty) })))))\n  (Class\n  { (Identifier)\n  ->(Identifier) }\n    (Identifier)\n    (Statements\n      (Assignment\n        (Identifier)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n      (Assignment\n        (Subscript\n          (Identifier)\n          (Identifier))\n      { (Identifier)\n      ->(Identifier) }\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/class-definition.parseA.txt",
    "content": "(Module \n  (CompoundStatement \n    (ClassDefinition \n      (Block \n        (CompoundStatement \n          (FunctionDefinition \n            (Block \n              (SimpleStatement \n                (ReturnStatement \n                  (ExpressionList \n                    (Expression \n                      (PrimaryExpression \n                        (Identifier \"c\"))))))) \n            (Identifier \"b\") \n            (Parameters \n              (Parameter \n                (Identifier \"self\")))))) \n      (Identifier \"A\"))) \n  (CompoundStatement \n    (ClassDefinition \n      (Block \n        (SimpleStatement \n          (PassStatement \"pass\"))) \n      (ArgumentList) \n      (Identifier \"C\"))) \n  (CompoundStatement \n    (ClassDefinition \n      (Block \n        (CompoundStatement \n          (FunctionDefinition \n            (Block \n              (SimpleStatement \n                (ReturnStatement))) \n            (Identifier \"method1\") \n            (Parameters \n              (Parameter \n                (Identifier \"self\")))))) \n      (ArgumentList \n        (Expression \n          (PrimaryExpression \n            (Identifier \"method1\")))) \n      (Identifier \"B\"))) \n  (CompoundStatement \n    (ClassDefinition \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Assignment \n              (ExpressionList \n                (Expression \n                  (PrimaryExpression \n                    (Identifier \"f\")))) \n              (Type \n                (Expression \n                  (PrimaryExpression \n                    (Identifier \"str\"))))))) \n        (SimpleStatement \n          (ExpressionStatement \n            (Assignment \n              (ExpressionList \n                (Expression \n                  (PrimaryExpression \n                    (Identifier \"g\")))) \n              (Type \n                (Expression \n                  (PrimaryExpression \n                    (Subscript \n                      (Expression \n                        (PrimaryExpression \n                          (Identifier \"int\"))) \n                      (PrimaryExpression \n                        (Identifier \"Optional\")))))))))) \n      (ArgumentList \n        (Expression \n          (PrimaryExpression \n            (Identifier \"e\")))) \n      (Identifier \"D\"))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/class-definition.parseB.txt",
    "content": "(Module \n  (CompoundStatement \n    (ClassDefinition \n      (Block \n        (CompoundStatement \n          (FunctionDefinition \n            (Block \n              (SimpleStatement \n                (ReturnStatement))) \n            (Identifier \"method1\") \n            (Parameters \n              (Parameter \n                (Identifier \"self\")))))) \n      (ArgumentList \n        (Expression \n          (PrimaryExpression \n            (Identifier \"method1\")))) \n      (Identifier \"D\"))) \n  (CompoundStatement \n    (ClassDefinition \n      (Block \n        (CompoundStatement \n          (FunctionDefinition \n            (Block \n              (SimpleStatement \n                (ReturnStatement \n                  (ExpressionList \n                    (Expression \n                      (PrimaryExpression \n                        (Identifier \"c\"))))))) \n            (Identifier \"b\") \n            (Parameters \n              (Parameter \n                (Identifier \"self\")))))) \n      (Identifier \"B\"))) \n  (CompoundStatement \n    (ClassDefinition \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Assignment \n              (ExpressionList \n                (Expression \n                  (PrimaryExpression \n                    (Identifier \"g\")))) \n              (Type \n                (Expression \n                  (PrimaryExpression \n                    (Identifier \"str\"))))))) \n        (SimpleStatement \n          (ExpressionStatement \n            (Assignment \n              (ExpressionList \n                (Expression \n                  (PrimaryExpression \n                    (Identifier \"h\")))) \n              (Type \n                (Expression \n                  (PrimaryExpression \n                    (Subscript \n                      (Expression \n                        (PrimaryExpression \n                          (Identifier \"int\"))) \n                      (PrimaryExpression \n                        (Identifier \"Optional\")))))))))) \n      (ArgumentList \n        (Expression \n          (PrimaryExpression \n            (Identifier \"e\")))) \n      (Identifier \"E\"))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/comment.A.py",
    "content": "# first comment\n# second comment\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/comment.B.py",
    "content": "# second comment\n# first comment\n# hi\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/comment.diffA-B.txt",
    "content": "(Statements\n  (Context\n  {-(Comment)-}\n    (Comment)\n  {+(Comment)+}\n  {+(Comment)+}\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/comment.diffB-A.txt",
    "content": "(Statements\n  (Context\n  {-(Comment)-}\n    (Comment)\n  { (Comment)\n  ->(Comment) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/comment.parseA.txt",
    "content": "(Module)\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/comment.parseB.txt",
    "content": "(Module)\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/comparison-operator.A.py",
    "content": "a < b\nc <= d\ne != f\ng >= h\ni > j\nk <> l\nm in n\no is p\nq not in r\ns is not t\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/comparison-operator.B.py",
    "content": "a is not b\nc not in d\ne is f\ng in h\ni <> j\nk > l\nm >= n\no != p\nq <= r\ns < t\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/comparison-operator.diffA-B.txt",
    "content": "(Statements\n{+(Not\n  {+(Equal\n    {+(Identifier)+}\n    {+(Identifier)+})+})+}\n{+(Not\n  {+(Member\n    {+(Identifier)+}\n    {+(Identifier)+})+})+}\n{+(Equal\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(Member\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(Not\n  {+(Equal\n    {+(Identifier)+}\n    {+(Identifier)+})+})+}\n{+(GreaterThan\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(GreaterThanEqual\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(Not\n  {+(Equal\n    {+(Identifier)+}\n    {+(Identifier)+})+})+}\n{+(LessThanEqual\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(LessThan\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(LessThan\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(LessThanEqual\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(Not\n  {-(Equal\n    {-(Identifier)-}\n    {-(Identifier)-})-})-}\n{-(GreaterThanEqual\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(GreaterThan\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(Not\n  {-(Equal\n    {-(Identifier)-}\n    {-(Identifier)-})-})-}\n{-(Member\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(Equal\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(Not\n  {-(Member\n    {-(Identifier)-}\n    {-(Identifier)-})-})-}\n{-(Not\n  {-(Equal\n    {-(Identifier)-}\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/comparison-operator.diffB-A.txt",
    "content": "(Statements\n{+(LessThan\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(LessThanEqual\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(Not\n  {+(Equal\n    {+(Identifier)+}\n    {+(Identifier)+})+})+}\n{+(GreaterThanEqual\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(GreaterThan\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(Not\n  {+(Equal\n    {+(Identifier)+}\n    {+(Identifier)+})+})+}\n{+(Member\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(Equal\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{+(Not\n  {+(Member\n    {+(Identifier)+}\n    {+(Identifier)+})+})+}\n  (Not\n    (Equal\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) }))\n{-(Not\n  {-(Member\n    {-(Identifier)-}\n    {-(Identifier)-})-})-}\n{-(Equal\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(Member\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(Not\n  {-(Equal\n    {-(Identifier)-}\n    {-(Identifier)-})-})-}\n{-(GreaterThan\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(GreaterThanEqual\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(Not\n  {-(Equal\n    {-(Identifier)-}\n    {-(Identifier)-})-})-}\n{-(LessThanEqual\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n{-(LessThan\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/comparison-operator.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"a\")) \n          (PrimaryExpression \n            (Identifier \"b\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"c\")) \n          (PrimaryExpression \n            (Identifier \"d\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"e\")) \n          (PrimaryExpression \n            (Identifier \"f\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"g\")) \n          (PrimaryExpression \n            (Identifier \"h\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"i\")) \n          (PrimaryExpression \n            (Identifier \"j\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"k\")) \n          (PrimaryExpression \n            (Identifier \"l\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"m\")) \n          (PrimaryExpression \n            (Identifier \"n\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"o\")) \n          (PrimaryExpression \n            (Identifier \"p\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"q\")) \n          (PrimaryExpression \n            (Identifier \"r\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"s\")) \n          (PrimaryExpression \n            (Identifier \"t\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/comparison-operator.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"a\")) \n          (PrimaryExpression \n            (Identifier \"b\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"c\")) \n          (PrimaryExpression \n            (Identifier \"d\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"e\")) \n          (PrimaryExpression \n            (Identifier \"f\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"g\")) \n          (PrimaryExpression \n            (Identifier \"h\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"i\")) \n          (PrimaryExpression \n            (Identifier \"j\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"k\")) \n          (PrimaryExpression \n            (Identifier \"l\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"m\")) \n          (PrimaryExpression \n            (Identifier \"n\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"o\")) \n          (PrimaryExpression \n            (Identifier \"p\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"q\")) \n          (PrimaryExpression \n            (Identifier \"r\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ComparisonOperator \n          (PrimaryExpression \n            (Identifier \"s\")) \n          (PrimaryExpression \n            (Identifier \"t\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/concatenated-string.A.py",
    "content": "\"one\" \"two\" \"three\"\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/concatenated-string.B.py",
    "content": "\"two\" \"one\" \"four\" \"three\"\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/concatenated-string.diffA-B.txt",
    "content": "(Statements\n  (Statements\n  {-(TextElement)-}\n    (TextElement)\n  {+(TextElement)+}\n  {+(TextElement)+}\n    (TextElement)))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/concatenated-string.diffB-A.txt",
    "content": "(Statements\n  (Statements\n  {-(TextElement)-}\n    (TextElement)\n  { (TextElement)\n  ->(TextElement) }\n    (TextElement)))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/concatenated-string.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (ConcatenatedString \n            (String) \n            (String) \n            (String)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/concatenated-string.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (ConcatenatedString \n            (String) \n            (String) \n            (String) \n            (String)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/conditional-expression.A.py",
    "content": "foo() if a else g\nb = c if d else e\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/conditional-expression.B.py",
    "content": "e = d if f else g\nfoo() if b else c()\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/conditional-expression.diffA-B.txt",
    "content": "(Statements\n{+(Assignment\n  {+(Identifier)+}\n  {+(If\n    {+(Identifier)+}\n    {+(Identifier)+}\n    {+(Identifier)+})+})+}\n  (If\n  { (Identifier)\n  ->(Identifier) }\n    (Call\n      (Identifier)\n      (Empty))\n  { (Identifier)\n  ->(Call\n    {+(Identifier)+}\n    {+(Empty)+}) })\n{-(Assignment\n  {-(Identifier)-}\n  {-(If\n    {-(Identifier)-}\n    {-(Identifier)-}\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/conditional-expression.diffB-A.txt",
    "content": "(Statements\n{+(If\n  {+(Identifier)+}\n  {+(Call\n    {+(Identifier)+}\n    {+(Empty)+})+}\n  {+(Identifier)+})+}\n  (Assignment\n  { (Identifier)\n  ->(Identifier) }\n    (If\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) }))\n{-(If\n  {-(Identifier)-}\n  {-(Call\n    {-(Identifier)-}\n    {-(Empty)-})-}\n  {-(Call\n    {-(Identifier)-}\n    {-(Empty)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/conditional-expression.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ConditionalExpression \n          (Expression \n            (PrimaryExpression \n              (Call \n                (PrimaryExpression \n                  (Identifier \"foo\")) \n                (ArgumentList)))) \n          (Expression \n            (PrimaryExpression \n              (Identifier \"a\"))) \n          (Expression \n            (PrimaryExpression \n              (Identifier \"g\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Assignment \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Identifier \"b\")))) \n        (ExpressionList \n          (Expression \n            (ConditionalExpression \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"c\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"d\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"e\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/conditional-expression.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Assignment \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Identifier \"e\")))) \n        (ExpressionList \n          (Expression \n            (ConditionalExpression \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"d\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"f\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"g\"))))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (ConditionalExpression \n          (Expression \n            (PrimaryExpression \n              (Call \n                (PrimaryExpression \n                  (Identifier \"foo\")) \n                (ArgumentList)))) \n          (Expression \n            (PrimaryExpression \n              (Identifier \"b\"))) \n          (Expression \n            (PrimaryExpression \n              (Call \n                (PrimaryExpression \n                  (Identifier \"c\")) \n                (ArgumentList)))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/continue-statement.A.py",
    "content": "continue\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/continue-statement.B.py",
    "content": "continue\ncontinue\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/continue-statement.diffA-B.txt",
    "content": "(Statements\n  (Continue\n    (Empty))\n{+(Continue\n  {+(Empty)+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/continue-statement.diffB-A.txt",
    "content": "(Statements\n  (Continue\n    (Empty))\n{-(Continue\n  {-(Empty)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/continue-statement.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ContinueStatement \"continue\")))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/continue-statement.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ContinueStatement \"continue\")) \n  (SimpleStatement \n    (ContinueStatement \"continue\")))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/decorated-definition.A.py",
    "content": "@a.b\nclass C:\n  @f()\n  @d(1)\n  @e(2, 3)\n  @a(b=True)\n  @a(*b)\n  @a(**c)\n  @a(1, b=True, *b, **c)\n  def f():\n    g\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/decorated-definition.B.py",
    "content": "@a.b\nclass D:\n  @f()\n  @b(*b)\n  @c(**c)\n  @a(2, c=True, *a, **d)\n  def f():\n    g\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/decorated-definition.diffA-B.txt",
    "content": "(Statements\n  (Decorator\n    (Identifier)\n    (Class\n    { (Identifier)\n    ->(Identifier) }\n      (Statements\n        (Decorator\n          (Identifier)\n          (Statements)\n          (Decorator\n          { (Identifier)\n          ->(Identifier) }\n          {+(Statements\n            {+(Identifier)+})+}\n          {-(Integer)-}\n            (Decorator\n            { (Identifier)\n            ->(Identifier) }\n              (Statements\n              {+(Identifier)+}\n              {-(Integer)-}\n              {-(Integer)-})\n              (Decorator\n                (Identifier)\n              {+(Statements\n                {+(Integer)+}\n                {+(Assignment\n                  {+(Identifier)+}\n                  {+(Boolean)+})+}\n                {+(Statements\n                  {+(Identifier)+})+}\n                {+(Statements\n                  {+(Identifier)+})+})+}\n              {-(Assignment\n                {-(Identifier)-}\n                {-(Boolean)-})-}\n              { (Decorator\n                {-(Identifier)-}\n                {-(Statements\n                  {-(Identifier)-})-}\n                {-(Decorator\n                  {-(Identifier)-}\n                  {-(Statements\n                    {-(Identifier)-})-}\n                  {-(Decorator\n                    {-(Identifier)-}\n                    {-(Statements\n                      {-(Integer)-}\n                      {-(Assignment\n                        {-(Identifier)-}\n                        {-(Boolean)-})-}\n                      {-(Statements\n                        {-(Identifier)-})-}\n                      {-(Statements\n                        {-(Identifier)-})-})-}\n                    {-(Function\n                      {-(Identifier)-}\n                      {-(Statements\n                        {-(Identifier)-})-})-})-})-})\n              ->(Function\n                {+(Identifier)+}\n                {+(Statements\n                  {+(Identifier)+})+}) }))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/decorated-definition.diffB-A.txt",
    "content": "(Statements\n  (Decorator\n    (Identifier)\n    (Class\n    { (Identifier)\n    ->(Identifier) }\n      (Statements\n        (Decorator\n          (Identifier)\n          (Statements)\n          (Decorator\n          { (Identifier)\n          ->(Identifier) }\n          {+(Integer)+}\n          {-(Statements\n            {-(Identifier)-})-}\n            (Decorator\n            { (Identifier)\n            ->(Identifier) }\n              (Statements\n              {+(Integer)+}\n              {+(Integer)+}\n              {-(Identifier)-})\n              (Decorator\n                (Identifier)\n              {+(Assignment\n                {+(Identifier)+}\n                {+(Boolean)+})+}\n              {-(Statements\n                {-(Integer)-}\n                {-(Assignment\n                  {-(Identifier)-}\n                  {-(Boolean)-})-}\n                {-(Statements\n                  {-(Identifier)-})-}\n                {-(Statements\n                  {-(Identifier)-})-})-}\n              { (Function\n                {-(Identifier)-}\n                {-(Statements\n                  {-(Identifier)-})-})\n              ->(Decorator\n                {+(Identifier)+}\n                {+(Statements\n                  {+(Identifier)+})+}\n                {+(Decorator\n                  {+(Identifier)+}\n                  {+(Statements\n                    {+(Identifier)+})+}\n                  {+(Decorator\n                    {+(Identifier)+}\n                    {+(Statements\n                      {+(Integer)+}\n                      {+(Assignment\n                        {+(Identifier)+}\n                        {+(Boolean)+})+}\n                      {+(Statements\n                        {+(Identifier)+})+}\n                      {+(Statements\n                        {+(Identifier)+})+})+}\n                    {+(Function\n                      {+(Identifier)+}\n                      {+(Statements\n                        {+(Identifier)+})+})+})+})+}) }))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/decorated-definition.parseA.txt",
    "content": "(Module \n  (CompoundStatement \n    (DecoratedDefinition \n      (ClassDefinition \n        (Block \n          (CompoundStatement \n            (DecoratedDefinition \n              (FunctionDefinition \n                (Block \n                  (SimpleStatement \n                    (ExpressionStatement \n                      (Expression \n                        (PrimaryExpression \n                          (Identifier \"g\")))))) \n                (Identifier \"f\") \n                (Parameters)) \n              (Decorator \n                (ArgumentList) \n                (DottedName \n                  (Identifier \"f\"))) \n              (Decorator \n                (ArgumentList \n                  (Expression \n                    (PrimaryExpression \n                      (Integer \"1\")))) \n                (DottedName \n                  (Identifier \"d\"))) \n              (Decorator \n                (ArgumentList \n                  (Expression \n                    (PrimaryExpression \n                      (Integer \"2\"))) \n                  (Expression \n                    (PrimaryExpression \n                      (Integer \"3\")))) \n                (DottedName \n                  (Identifier \"e\"))) \n              (Decorator \n                (ArgumentList \n                  (KeywordArgument \n                    (Expression \n                      (PrimaryExpression \n                        (True \"True\"))) \n                    (Identifier \"b\"))) \n                (DottedName \n                  (Identifier \"a\"))) \n              (Decorator \n                (ArgumentList \n                  (ListSplat \n                    (Expression \n                      (PrimaryExpression \n                        (Identifier \"b\"))))) \n                (DottedName \n                  (Identifier \"a\"))) \n              (Decorator \n                (ArgumentList \n                  (DictionarySplat \n                    (Expression \n                      (PrimaryExpression \n                        (Identifier \"c\"))))) \n                (DottedName \n                  (Identifier \"a\"))) \n              (Decorator \n                (ArgumentList \n                  (Expression \n                    (PrimaryExpression \n                      (Integer \"1\"))) \n                  (KeywordArgument \n                    (Expression \n                      (PrimaryExpression \n                        (True \"True\"))) \n                    (Identifier \"b\")) \n                  (ListSplat \n                    (Expression \n                      (PrimaryExpression \n                        (Identifier \"b\")))) \n                  (DictionarySplat \n                    (Expression \n                      (PrimaryExpression \n                        (Identifier \"c\"))))) \n                (DottedName \n                  (Identifier \"a\")))))) \n        (Identifier \"C\")) \n      (Decorator \n        (DottedName \n          (Identifier \"a\") \n          (Identifier \"b\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/decorated-definition.parseB.txt",
    "content": "(Module \n  (CompoundStatement \n    (DecoratedDefinition \n      (ClassDefinition \n        (Block \n          (CompoundStatement \n            (DecoratedDefinition \n              (FunctionDefinition \n                (Block \n                  (SimpleStatement \n                    (ExpressionStatement \n                      (Expression \n                        (PrimaryExpression \n                          (Identifier \"g\")))))) \n                (Identifier \"f\") \n                (Parameters)) \n              (Decorator \n                (ArgumentList) \n                (DottedName \n                  (Identifier \"f\"))) \n              (Decorator \n                (ArgumentList \n                  (ListSplat \n                    (Expression \n                      (PrimaryExpression \n                        (Identifier \"b\"))))) \n                (DottedName \n                  (Identifier \"b\"))) \n              (Decorator \n                (ArgumentList \n                  (DictionarySplat \n                    (Expression \n                      (PrimaryExpression \n                        (Identifier \"c\"))))) \n                (DottedName \n                  (Identifier \"c\"))) \n              (Decorator \n                (ArgumentList \n                  (Expression \n                    (PrimaryExpression \n                      (Integer \"2\"))) \n                  (KeywordArgument \n                    (Expression \n                      (PrimaryExpression \n                        (True \"True\"))) \n                    (Identifier \"c\")) \n                  (ListSplat \n                    (Expression \n                      (PrimaryExpression \n                        (Identifier \"a\")))) \n                  (DictionarySplat \n                    (Expression \n                      (PrimaryExpression \n                        (Identifier \"d\"))))) \n                (DottedName \n                  (Identifier \"a\")))))) \n        (Identifier \"D\")) \n      (Decorator \n        (DottedName \n          (Identifier \"a\") \n          (Identifier \"b\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/delete-statement.A.py",
    "content": "del a[1], b[2]\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/delete-statement.B.py",
    "content": "del b[1], a[2]\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/delete-statement.diffA-B.txt",
    "content": "(Statements\n  (Call\n    (Identifier)\n    (Subscript\n    { (Identifier)\n    ->(Identifier) }\n      (Integer))\n    (Subscript\n    { (Identifier)\n    ->(Identifier) }\n      (Integer))\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/delete-statement.diffB-A.txt",
    "content": "(Statements\n  (Call\n    (Identifier)\n    (Subscript\n    { (Identifier)\n    ->(Identifier) }\n      (Integer))\n    (Subscript\n    { (Identifier)\n    ->(Identifier) }\n      (Integer))\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/delete-statement.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (DeleteStatement \n      (ExpressionList \n        (Expression \n          (PrimaryExpression \n            (Subscript \n              (Expression \n                (PrimaryExpression \n                  (Integer \"1\"))) \n              (PrimaryExpression \n                (Identifier \"a\"))))) \n        (Expression \n          (PrimaryExpression \n            (Subscript \n              (Expression \n                (PrimaryExpression \n                  (Integer \"2\"))) \n              (PrimaryExpression \n                (Identifier \"b\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/delete-statement.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (DeleteStatement \n      (ExpressionList \n        (Expression \n          (PrimaryExpression \n            (Subscript \n              (Expression \n                (PrimaryExpression \n                  (Integer \"1\"))) \n              (PrimaryExpression \n                (Identifier \"b\"))))) \n        (Expression \n          (PrimaryExpression \n            (Subscript \n              (Expression \n                (PrimaryExpression \n                  (Integer \"2\"))) \n              (PrimaryExpression \n                (Identifier \"a\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/dictionary-comprehension.A.py",
    "content": "{ c : d for b in a }\n{ d : g for e in f if d }\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/dictionary-comprehension.B.py",
    "content": "{ f : g for e in d if g }\n{ c : 1 for b in a }\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/dictionary-comprehension.diffA-B.txt",
    "content": "(Statements\n  (Comprehension\n    (KeyValue\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) })\n    (Statements\n    {+(Statements\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    { (Identifier)\n    ->(Identifier) }\n    {-(Identifier)-}))\n  (Comprehension\n    (KeyValue\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Integer) })\n    (Statements\n    {+(Identifier)+}\n    {+(Identifier)+}\n    {-(Statements\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Identifier)-})))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/dictionary-comprehension.diffB-A.txt",
    "content": "(Statements\n  (Comprehension\n    (KeyValue\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) })\n    (Statements\n    {+(Identifier)+}\n    {+(Identifier)+}\n    {-(Statements\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Identifier)-}))\n  (Comprehension\n    (KeyValue\n    { (Identifier)\n    ->(Identifier) }\n    { (Integer)\n    ->(Identifier) })\n    (Statements\n    {+(Statements\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    { (Identifier)\n    ->(Identifier) }\n    {-(Identifier)-})))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/dictionary-comprehension.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (DictionaryComprehension \n            (Pair \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"d\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"c\")))) \n            (ForInClause \n              (Variables \n                (PrimaryExpression \n                  (Identifier \"b\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"a\"))))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (DictionaryComprehension \n            (Pair \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"g\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"d\")))) \n            (ForInClause \n              (Variables \n                (PrimaryExpression \n                  (Identifier \"e\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"f\")))) \n            (IfClause \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"d\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/dictionary-comprehension.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (DictionaryComprehension \n            (Pair \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"g\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"f\")))) \n            (ForInClause \n              (Variables \n                (PrimaryExpression \n                  (Identifier \"e\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"d\")))) \n            (IfClause \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"g\"))))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (DictionaryComprehension \n            (Pair \n              (Expression \n                (PrimaryExpression \n                  (Integer \"1\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"c\")))) \n            (ForInClause \n              (Variables \n                (PrimaryExpression \n                  (Identifier \"b\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"a\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/dictionary.A.py",
    "content": "{}\n{a: 1}\n{foo: b, bar: c}\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/dictionary.B.py",
    "content": "{b: 2}\n{}\na = {\n# a comment can go here\nbar: d, foo: e\n}\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/dictionary.diffA-B.txt",
    "content": "(Statements\n{+(Hash\n  {+(KeyValue\n    {+(Identifier)+}\n    {+(Integer)+})+})+}\n  (Hash)\n{+(Assignment\n  {+(Identifier)+}\n  {+(Hash\n    {+(Context\n      {+(Comment)+}\n      {+(KeyValue\n        {+(Identifier)+}\n        {+(Identifier)+})+})+}\n    {+(KeyValue\n      {+(Identifier)+}\n      {+(Identifier)+})+})+})+}\n{-(Hash\n  {-(KeyValue\n    {-(Identifier)-}\n    {-(Integer)-})-})-}\n{-(Hash\n  {-(KeyValue\n    {-(Identifier)-}\n    {-(Identifier)-})-}\n  {-(KeyValue\n    {-(Identifier)-}\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/dictionary.diffB-A.txt",
    "content": "(Statements\n{-(Hash\n  {-(KeyValue\n    {-(Identifier)-}\n    {-(Integer)-})-})-}\n  (Hash)\n{+(Hash\n  {+(KeyValue\n    {+(Identifier)+}\n    {+(Integer)+})+})+}\n{+(Hash\n  {+(KeyValue\n    {+(Identifier)+}\n    {+(Identifier)+})+}\n  {+(KeyValue\n    {+(Identifier)+}\n    {+(Identifier)+})+})+}\n{-(Assignment\n  {-(Identifier)-}\n  {-(Hash\n    {-(Context\n      {-(Comment)-}\n      {-(KeyValue\n        {-(Identifier)-}\n        {-(Identifier)-})-})-}\n    {-(KeyValue\n      {-(Identifier)-}\n      {-(Identifier)-})-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/dictionary.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Dictionary))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Dictionary \n            (Pair \n              (Expression \n                (PrimaryExpression \n                  (Integer \"1\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"a\"))))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Dictionary \n            (Pair \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"b\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"foo\")))) \n            (Pair \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"c\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"bar\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/dictionary.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Dictionary \n            (Pair \n              (Expression \n                (PrimaryExpression \n                  (Integer \"2\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"b\"))))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Dictionary))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Assignment \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Identifier \"a\")))) \n        (ExpressionList \n          (Expression \n            (PrimaryExpression \n              (Dictionary \n                (Pair \n                  (Expression \n                    (PrimaryExpression \n                      (Identifier \"d\"))) \n                  (Expression \n                    (PrimaryExpression \n                      (Identifier \"bar\")))) \n                (Pair \n                  (Expression \n                    (PrimaryExpression \n                      (Identifier \"e\"))) \n                  (Expression \n                    (PrimaryExpression \n                      (Identifier \"foo\"))))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/dotted-name.A.py",
    "content": "a.b\nd.e.f\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/dotted-name.B.py",
    "content": "a.b.c\nd.e\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/dotted-name.diffA-B.txt",
    "content": "(Statements\n  (MemberAccess\n  { (Identifier)\n  ->(MemberAccess\n    {+(Identifier)+}\n    {+(Identifier)+}) }\n  { (Identifier)\n  ->(Identifier) })\n  (MemberAccess\n  { (MemberAccess\n    {-(Identifier)-}\n    {-(Identifier)-})\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) }))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/dotted-name.diffB-A.txt",
    "content": "(Statements\n  (MemberAccess\n  { (MemberAccess\n    {-(Identifier)-}\n    {-(Identifier)-})\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) })\n  (MemberAccess\n  { (Identifier)\n  ->(MemberAccess\n    {+(Identifier)+}\n    {+(Identifier)+}) }\n  { (Identifier)\n  ->(Identifier) }))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/dotted-name.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Attribute \n            (Identifier \"b\") \n            (PrimaryExpression \n              (Identifier \"a\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Attribute \n            (Identifier \"f\") \n            (PrimaryExpression \n              (Attribute \n                (Identifier \"e\") \n                (PrimaryExpression \n                  (Identifier \"d\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/dotted-name.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Attribute \n            (Identifier \"c\") \n            (PrimaryExpression \n              (Attribute \n                (Identifier \"b\") \n                (PrimaryExpression \n                  (Identifier \"a\"))))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Attribute \n            (Identifier \"e\") \n            (PrimaryExpression \n              (Identifier \"d\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/ellipsis.A.py",
    "content": "...\n...\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/ellipsis.B.py",
    "content": "...\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/ellipsis.diffA-B.txt",
    "content": "(Statements\n  (Ellipsis)\n{-(Ellipsis)-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/ellipsis.diffB-A.txt",
    "content": "(Statements\n  (Ellipsis)\n{+(Ellipsis)+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/ellipsis.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Ellipsis \"...\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Ellipsis \"...\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/ellipsis.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Ellipsis \"...\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/exec-statement.A.py",
    "content": "exec '1+1'\nexec 'x+=1' in None\nexec 'x+=1' in a, b\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/exec-statement.B.py",
    "content": "exec 'x+=1' in d\nexec 'x+=1' in b, c\nexec '2+1'\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/exec-statement.diffA-B.txt",
    "content": "(Statements\n{+(Call\n  {+(Identifier)+}\n  {+(TextElement)+}\n  {+(Identifier)+}\n  {+(Empty)+})+}\n{+(Call\n  {+(Identifier)+}\n  {+(TextElement)+}\n  {+(Identifier)+}\n  {+(Identifier)+}\n  {+(Empty)+})+}\n  (Call\n    (Identifier)\n  { (TextElement)\n  ->(TextElement) }\n    (Empty))\n{-(Call\n  {-(Identifier)-}\n  {-(TextElement)-}\n  {-(Null)-}\n  {-(Empty)-})-}\n{-(Call\n  {-(Identifier)-}\n  {-(TextElement)-}\n  {-(Identifier)-}\n  {-(Identifier)-}\n  {-(Empty)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/exec-statement.diffB-A.txt",
    "content": "(Statements\n{+(Call\n  {+(Identifier)+}\n  {+(TextElement)+}\n  {+(Empty)+})+}\n  (Call\n    (Identifier)\n    (TextElement)\n  {+(Null)+}\n  {-(Identifier)-}\n    (Empty))\n  (Call\n    (Identifier)\n    (TextElement)\n  {+(Identifier)+}\n    (Identifier)\n  {-(Identifier)-}\n    (Empty))\n{-(Call\n  {-(Identifier)-}\n  {-(TextElement)-}\n  {-(Empty)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/exec-statement.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExecStatement \n      (String))) \n  (SimpleStatement \n    (ExecStatement \n      (String) \n      (Expression \n        (PrimaryExpression \n          (None \"None\"))))) \n  (SimpleStatement \n    (ExecStatement \n      (String) \n      (Expression \n        (PrimaryExpression \n          (Identifier \"a\"))) \n      (Expression \n        (PrimaryExpression \n          (Identifier \"b\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/exec-statement.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExecStatement \n      (String) \n      (Expression \n        (PrimaryExpression \n          (Identifier \"d\"))))) \n  (SimpleStatement \n    (ExecStatement \n      (String) \n      (Expression \n        (PrimaryExpression \n          (Identifier \"b\"))) \n      (Expression \n        (PrimaryExpression \n          (Identifier \"c\"))))) \n  (SimpleStatement \n    (ExecStatement \n      (String))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/expression-statement.A.py",
    "content": "a\nb + c\n1, 2, 3\n1, 2, 3,\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/expression-statement.B.py",
    "content": "1, 2, 3\nb\n3, 1, 2,\na + c\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/expression-statement.diffA-B.txt",
    "content": "(Statements\n{-(Identifier)-}\n{-(Plus\n  {-(Identifier)-}\n  {-(Identifier)-})-}\n  (Statements\n    (Integer)\n    (Integer)\n    (Integer))\n{+(Identifier)+}\n  (Statements\n  {+(Integer)+}\n    (Integer)\n    (Integer)\n  {-(Integer)-})\n{+(Plus\n  {+(Identifier)+}\n  {+(Identifier)+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/expression-statement.diffB-A.txt",
    "content": "(Statements\n{+(Identifier)+}\n{+(Plus\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n  (Statements\n    (Integer)\n    (Integer)\n    (Integer))\n{+(Statements\n  {+(Integer)+}\n  {+(Integer)+}\n  {+(Integer)+})+}\n{-(Identifier)-}\n{-(Statements\n  {-(Integer)-}\n  {-(Integer)-}\n  {-(Integer)-})-}\n{-(Plus\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/expression-statement.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Identifier \"a\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"b\")) \n            (PrimaryExpression \n              (Identifier \"c\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"1\"))) \n      (Expression \n        (PrimaryExpression \n          (Integer \"2\"))) \n      (Expression \n        (PrimaryExpression \n          (Integer \"3\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"1\"))) \n      (Expression \n        (PrimaryExpression \n          (Integer \"2\"))) \n      (Expression \n        (PrimaryExpression \n          (Integer \"3\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/expression-statement.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"1\"))) \n      (Expression \n        (PrimaryExpression \n          (Integer \"2\"))) \n      (Expression \n        (PrimaryExpression \n          (Integer \"3\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Identifier \"b\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"3\"))) \n      (Expression \n        (PrimaryExpression \n          (Integer \"1\"))) \n      (Expression \n        (PrimaryExpression \n          (Integer \"2\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (BinaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"a\")) \n            (PrimaryExpression \n              (Identifier \"c\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/float.A.py",
    "content": "-.6_6\n+.1_1\n123.4123\n123.123J\n1_1.3_1\n1_1.\n1e+3_4j\n.3e1_4\n1_0.l\n.1l\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/float.B.py",
    "content": "-.7_8\n+.2_2\n123.2345\n123.321J\n2_4.8_0\n2_0.\n8e+2_3j\n.8e2_7\n2_1.l\n.2l\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/float.diffA-B.txt",
    "content": "(Statements\n  (Negate\n  { (Float)\n  ->(Float) })\n{ (Float)\n->(Float) }\n{+(Float)+}\n{+(Float)+}\n{+(Float)+}\n{+(Float)+}\n{ (Float)\n->(Float) }\n{+(Float)+}\n{+(Float)+}\n{+(Float)+}\n{-(Float)-}\n{-(Float)-}\n{-(Float)-}\n{-(Float)-}\n{-(Float)-}\n{-(Float)-}\n{-(Float)-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/float.diffB-A.txt",
    "content": "(Statements\n  (Negate\n  { (Float)\n  ->(Float) })\n{ (Float)\n->(Float) }\n{+(Float)+}\n{ (Float)\n->(Float) }\n{+(Float)+}\n{+(Float)+}\n{+(Float)+}\n{+(Float)+}\n{+(Float)+}\n{ (Float)\n->(Float) }\n{-(Float)-}\n{-(Float)-}\n{-(Float)-}\n{-(Float)-}\n{-(Float)-}\n{-(Float)-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/float.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (UnaryOperator \n            (Token) \n            (PrimaryExpression \n              (Float \".6_6\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (UnaryOperator \n            (Token) \n            (PrimaryExpression \n              (Float \".1_1\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Float \"123.4123\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Float \"123.123J\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Float \"1_1.3_1\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Float \"1_1.\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Float \"1e+3_4j\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Float \".3e1_4\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Float \"1_0.l\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Float \".1l\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/float.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (UnaryOperator \n            (Token) \n            (PrimaryExpression \n              (Float \".7_8\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (UnaryOperator \n            (Token) \n            (PrimaryExpression \n              (Float \".2_2\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Float \"123.2345\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Float \"123.321J\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Float \"2_4.8_0\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Float \"2_0.\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Float \"8e+2_3j\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Float \".8e2_7\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Float \"2_1.l\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Float \".2l\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/for-statement.A.py",
    "content": "for line, i in lines:\n  print line\n  for character, j in line:\n    print character\nelse:\n  print x\n\nfor x, in [(1,), (2,), (3,)]:\n  x\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/for-statement.B.py",
    "content": "for y, in [(1,), (2,), (3,)]:\n  y\n\nfor line, j in lines:\n  print line\n  for character, i in line:\n    print character\nelse:\n  print y\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/for-statement.diffA-B.txt",
    "content": "(Statements\n{+(ForEach\n  {+(Identifier)+}\n  {+(Array\n    {+(Tuple\n      {+(Integer)+})+}\n    {+(Tuple\n      {+(Integer)+})+}\n    {+(Tuple\n      {+(Integer)+})+})+}\n  {+(Statements\n    {+(Identifier)+})+})+}\n  (Else\n    (ForEach\n      (Statements\n        (Identifier)\n      { (Identifier)\n      ->(Identifier) })\n      (Identifier)\n      (Statements\n        (Call\n          (Identifier)\n          (Identifier)\n          (Empty))\n        (ForEach\n          (Statements\n            (Identifier)\n          { (Identifier)\n          ->(Identifier) })\n          (Identifier)\n          (Statements\n            (Call\n              (Identifier)\n              (Identifier)\n              (Empty))))))\n    (Call\n      (Identifier)\n    { (Identifier)\n    ->(Identifier) }\n      (Empty)))\n{-(ForEach\n  {-(Identifier)-}\n  {-(Array\n    {-(Tuple\n      {-(Integer)-})-}\n    {-(Tuple\n      {-(Integer)-})-}\n    {-(Tuple\n      {-(Integer)-})-})-}\n  {-(Statements\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/for-statement.diffB-A.txt",
    "content": "(Statements\n{+(Else\n  {+(ForEach\n    {+(Statements\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(Identifier)+}\n    {+(Statements\n      {+(Call\n        {+(Identifier)+}\n        {+(Identifier)+}\n        {+(Empty)+})+}\n      {+(ForEach\n        {+(Statements\n          {+(Identifier)+}\n          {+(Identifier)+})+}\n        {+(Identifier)+}\n        {+(Statements\n          {+(Call\n            {+(Identifier)+}\n            {+(Identifier)+}\n            {+(Empty)+})+})+})+})+})+}\n  {+(Call\n    {+(Identifier)+}\n    {+(Identifier)+}\n    {+(Empty)+})+})+}\n  (ForEach\n  { (Identifier)\n  ->(Identifier) }\n    (Array\n      (Tuple\n        (Integer))\n      (Tuple\n        (Integer))\n      (Tuple\n        (Integer)))\n    (Statements\n    { (Identifier)\n    ->(Identifier) }))\n{-(Else\n  {-(ForEach\n    {-(Statements\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Identifier)-}\n    {-(Statements\n      {-(Call\n        {-(Identifier)-}\n        {-(Identifier)-}\n        {-(Empty)-})-}\n      {-(ForEach\n        {-(Statements\n          {-(Identifier)-}\n          {-(Identifier)-})-}\n        {-(Identifier)-}\n        {-(Statements\n          {-(Call\n            {-(Identifier)-}\n            {-(Identifier)-}\n            {-(Empty)-})-})-})-})-})-}\n  {-(Call\n    {-(Identifier)-}\n    {-(Identifier)-}\n    {-(Empty)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/for-statement.parseA.txt",
    "content": "(Module \n  (CompoundStatement \n    (ForStatement \n      (ElseClause \n        (Block \n          (SimpleStatement \n            (PrintStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"x\"))))))) \n      (Block \n        (SimpleStatement \n          (PrintStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"line\"))))) \n        (CompoundStatement \n          (ForStatement \n            (Block \n              (SimpleStatement \n                (PrintStatement \n                  (Expression \n                    (PrimaryExpression \n                      (Identifier \"character\")))))) \n            (Variables \n              (PrimaryExpression \n                (Identifier \"character\")) \n              (PrimaryExpression \n                (Identifier \"j\"))) \n            (ExpressionList \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"line\"))))))) \n      (Variables \n        (PrimaryExpression \n          (Identifier \"line\")) \n        (PrimaryExpression \n          (Identifier \"i\"))) \n      (ExpressionList \n        (Expression \n          (PrimaryExpression \n            (Identifier \"lines\")))))) \n  (CompoundStatement \n    (ForStatement \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"x\")))))) \n      (Variables \n        (PrimaryExpression \n          (Identifier \"x\"))) \n      (ExpressionList \n        (Expression \n          (PrimaryExpression \n            (List \n              (Expression \n                (PrimaryExpression \n                  (Tuple \n                    (Expression \n                      (PrimaryExpression \n                        (Integer \"1\")))))) \n              (Expression \n                (PrimaryExpression \n                  (Tuple \n                    (Expression \n                      (PrimaryExpression \n                        (Integer \"2\")))))) \n              (Expression \n                (PrimaryExpression \n                  (Tuple \n                    (Expression \n                      (PrimaryExpression \n                        (Integer \"3\")))))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/for-statement.parseB.txt",
    "content": "(Module \n  (CompoundStatement \n    (ForStatement \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"y\")))))) \n      (Variables \n        (PrimaryExpression \n          (Identifier \"y\"))) \n      (ExpressionList \n        (Expression \n          (PrimaryExpression \n            (List \n              (Expression \n                (PrimaryExpression \n                  (Tuple \n                    (Expression \n                      (PrimaryExpression \n                        (Integer \"1\")))))) \n              (Expression \n                (PrimaryExpression \n                  (Tuple \n                    (Expression \n                      (PrimaryExpression \n                        (Integer \"2\")))))) \n              (Expression \n                (PrimaryExpression \n                  (Tuple \n                    (Expression \n                      (PrimaryExpression \n                        (Integer \"3\")))))))))))) \n  (CompoundStatement \n    (ForStatement \n      (ElseClause \n        (Block \n          (SimpleStatement \n            (PrintStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"y\"))))))) \n      (Block \n        (SimpleStatement \n          (PrintStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"line\"))))) \n        (CompoundStatement \n          (ForStatement \n            (Block \n              (SimpleStatement \n                (PrintStatement \n                  (Expression \n                    (PrimaryExpression \n                      (Identifier \"character\")))))) \n            (Variables \n              (PrimaryExpression \n                (Identifier \"character\")) \n              (PrimaryExpression \n                (Identifier \"i\"))) \n            (ExpressionList \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"line\"))))))) \n      (Variables \n        (PrimaryExpression \n          (Identifier \"line\")) \n        (PrimaryExpression \n          (Identifier \"j\"))) \n      (ExpressionList \n        (Expression \n          (PrimaryExpression \n            (Identifier \"lines\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/function-definition.A.py",
    "content": "def a():\n  b\n\ndef c(d):\n  e\n\ndef g(g, *h,):\n  i\n\ndef h(i=j):\n  i\n\ndef i(j:str=\"default\", **c):\n  j\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/function-definition.B.py",
    "content": "def g(i, *j,):\n  j\n\ndef c():\n  b\n\ndef d(e):\n  a\n\ndef i(j:int=1, **d):\n  j\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/function-definition.diffA-B.txt",
    "content": "(Statements\n{-(Function\n  {-(Identifier)-}\n  {-(Statements\n    {-(Identifier)-})-})-}\n{-(Function\n  {-(Identifier)-}\n  {-(RequiredParameter\n    {-(Identifier)-})-}\n  {-(Statements\n    {-(Identifier)-})-})-}\n  (Function\n    (Identifier)\n    (RequiredParameter\n    { (Identifier)\n    ->(Identifier) })\n    (Statements\n    { (Identifier)\n    ->(Identifier) })\n    (Statements\n    { (Identifier)\n    ->(Identifier) }))\n  (Function\n  { (Identifier)\n  ->(Identifier) }\n  {-(Assignment\n    {-(Identifier)-}\n    {-(Identifier)-})-}\n    (Statements\n    { (Identifier)\n    ->(Identifier) }))\n{+(Function\n  {+(Identifier)+}\n  {+(RequiredParameter\n    {+(Identifier)+})+}\n  {+(Statements\n    {+(Identifier)+})+})+}\n  (Function\n    (Identifier)\n    (Annotation\n      (Assignment\n        (Identifier)\n      { (TextElement)\n      ->(Integer) })\n    { (Identifier)\n    ->(Identifier) })\n    (Statements\n    { (Identifier)\n    ->(Identifier) })\n    (Statements\n      (Identifier))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/function-definition.diffB-A.txt",
    "content": "(Statements\n  (Function\n  { (Identifier)\n  ->(Identifier) }\n  {-(RequiredParameter\n    {-(Identifier)-})-}\n  {-(Statements\n    {-(Identifier)-})-}\n    (Statements\n    { (Identifier)\n    ->(Identifier) }))\n  (Function\n    (Identifier)\n  {+(RequiredParameter\n    {+(Identifier)+})+}\n    (Statements\n    { (Identifier)\n    ->(Identifier) }))\n  (Function\n  { (Identifier)\n  ->(Identifier) }\n    (RequiredParameter\n    { (Identifier)\n    ->(Identifier) })\n  {+(Statements\n    {+(Identifier)+})+}\n    (Statements\n    { (Identifier)\n    ->(Identifier) }))\n{+(Function\n  {+(Identifier)+}\n  {+(Assignment\n    {+(Identifier)+}\n    {+(Identifier)+})+}\n  {+(Statements\n    {+(Identifier)+})+})+}\n  (Function\n    (Identifier)\n    (Annotation\n      (Assignment\n        (Identifier)\n      { (Integer)\n      ->(TextElement) })\n    { (Identifier)\n    ->(Identifier) })\n    (Statements\n    { (Identifier)\n    ->(Identifier) })\n    (Statements\n      (Identifier))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/function-definition.parseA.txt",
    "content": "(Module \n  (CompoundStatement \n    (FunctionDefinition \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"b\")))))) \n      (Identifier \"a\") \n      (Parameters))) \n  (CompoundStatement \n    (FunctionDefinition \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"e\")))))) \n      (Identifier \"c\") \n      (Parameters \n        (Parameter \n          (Identifier \"d\"))))) \n  (CompoundStatement \n    (FunctionDefinition \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"i\")))))) \n      (Identifier \"g\") \n      (Parameters \n        (Parameter \n          (Identifier \"g\")) \n        (Parameter \n          (ListSplat \n            (Expression \n              (PrimaryExpression \n                (Identifier \"h\")))))))) \n  (CompoundStatement \n    (FunctionDefinition \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"i\")))))) \n      (Identifier \"h\") \n      (Parameters \n        (Parameter \n          (DefaultParameter \n            (Expression \n              (PrimaryExpression \n                (Identifier \"j\"))) \n            (Identifier \"i\")))))) \n  (CompoundStatement \n    (FunctionDefinition \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"j\")))))) \n      (Identifier \"i\") \n      (Parameters \n        (Parameter \n          (TypedDefaultParameter \n            (Expression \n              (PrimaryExpression \n                (String))) \n            (Identifier \"j\") \n            (Type \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"str\")))))) \n        (Parameter \n          (DictionarySplat \n            (Expression \n              (PrimaryExpression \n                (Identifier \"c\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/function-definition.parseB.txt",
    "content": "(Module \n  (CompoundStatement \n    (FunctionDefinition \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"j\")))))) \n      (Identifier \"g\") \n      (Parameters \n        (Parameter \n          (Identifier \"i\")) \n        (Parameter \n          (ListSplat \n            (Expression \n              (PrimaryExpression \n                (Identifier \"j\")))))))) \n  (CompoundStatement \n    (FunctionDefinition \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"b\")))))) \n      (Identifier \"c\") \n      (Parameters))) \n  (CompoundStatement \n    (FunctionDefinition \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"a\")))))) \n      (Identifier \"d\") \n      (Parameters \n        (Parameter \n          (Identifier \"e\"))))) \n  (CompoundStatement \n    (FunctionDefinition \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"j\")))))) \n      (Identifier \"i\") \n      (Parameters \n        (Parameter \n          (TypedDefaultParameter \n            (Expression \n              (PrimaryExpression \n                (Integer \"1\"))) \n            (Identifier \"j\") \n            (Type \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"int\")))))) \n        (Parameter \n          (DictionarySplat \n            (Expression \n              (PrimaryExpression \n                (Identifier \"d\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/future_import_statement.A.py",
    "content": "from __future__ import print_function\nfrom __future__ import unicode_literals, division\nfrom __future__ import print_function as pf\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/future_import_statement.B.py",
    "content": "from __future__ import division\nfrom __future__ import unicode_literals, print_function\nfrom __future__ import generators as g\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/future_import_statement.diffA-B.txt",
    "content": "(Statements\n  (FutureImport\n    (Alias\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) }))\n  (FutureImport\n    (Alias\n      (Identifier)\n      (Identifier))\n    (Alias\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) }))\n  (FutureImport\n    (Alias\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) })))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/future_import_statement.diffB-A.txt",
    "content": "(Statements\n  (FutureImport\n    (Alias\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) }))\n  (FutureImport\n    (Alias\n      (Identifier)\n      (Identifier))\n    (Alias\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) }))\n  (FutureImport\n    (Alias\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) })))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/future_import_statement.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (FutureImportStatement \n      (DottedName \n        (Identifier \"print_function\")))) \n  (SimpleStatement \n    (FutureImportStatement \n      (DottedName \n        (Identifier \"unicode_literals\")) \n      (DottedName \n        (Identifier \"division\")))) \n  (SimpleStatement \n    (FutureImportStatement \n      (AliasedImport \n        (Identifier \"pf\") \n        (DottedName \n          (Identifier \"print_function\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/future_import_statement.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (FutureImportStatement \n      (DottedName \n        (Identifier \"division\")))) \n  (SimpleStatement \n    (FutureImportStatement \n      (DottedName \n        (Identifier \"unicode_literals\")) \n      (DottedName \n        (Identifier \"print_function\")))) \n  (SimpleStatement \n    (FutureImportStatement \n      (AliasedImport \n        (Identifier \"g\") \n        (DottedName \n          (Identifier \"generators\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/generator-expression.A.py",
    "content": "(c for b in a)\n(d for e in f)\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/generator-expression.B.py",
    "content": "(f for e in d)\n(c + 1 for b in a)\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/generator-expression.diffA-B.txt",
    "content": "(Statements\n  (Comprehension\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) }))\n  (Comprehension\n  { (Identifier)\n  ->(Plus\n    {+(Identifier)+}\n    {+(Integer)+}) }\n    (Statements\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) })))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/generator-expression.diffB-A.txt",
    "content": "(Statements\n  (Comprehension\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) }))\n  (Comprehension\n  { (Plus\n    {-(Identifier)-}\n    {-(Integer)-})\n  ->(Identifier) }\n    (Statements\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) })))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/generator-expression.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (GeneratorExpression \n            (Expression \n              (PrimaryExpression \n                (Identifier \"c\"))) \n            (ForInClause \n              (Variables \n                (PrimaryExpression \n                  (Identifier \"b\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"a\"))))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (GeneratorExpression \n            (Expression \n              (PrimaryExpression \n                (Identifier \"d\"))) \n            (ForInClause \n              (Variables \n                (PrimaryExpression \n                  (Identifier \"e\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"f\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/generator-expression.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (GeneratorExpression \n            (Expression \n              (PrimaryExpression \n                (Identifier \"f\"))) \n            (ForInClause \n              (Variables \n                (PrimaryExpression \n                  (Identifier \"e\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"d\"))))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (GeneratorExpression \n            (Expression \n              (PrimaryExpression \n                (BinaryOperator \n                  (Token) \n                  (PrimaryExpression \n                    (Identifier \"c\")) \n                  (PrimaryExpression \n                    (Integer \"1\"))))) \n            (ForInClause \n              (Variables \n                (PrimaryExpression \n                  (Identifier \"b\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"a\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/global-statement.A.py",
    "content": "global a\nglobal a, b\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/global-statement.B.py",
    "content": "global b, a\nglobal c\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/global-statement.diffA-B.txt",
    "content": "(Statements\n  (Call\n    (Identifier)\n  {+(Identifier)+}\n    (Identifier)\n    (Empty))\n  (Call\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }\n  {-(Identifier)-}\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/global-statement.diffB-A.txt",
    "content": "(Statements\n  (Call\n    (Identifier)\n  {-(Identifier)-}\n    (Identifier)\n    (Empty))\n  (Call\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }\n  {+(Identifier)+}\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/global-statement.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (GlobalStatement \n      (Identifier \"a\"))) \n  (SimpleStatement \n    (GlobalStatement \n      (Identifier \"a\") \n      (Identifier \"b\"))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/global-statement.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (GlobalStatement \n      (Identifier \"b\") \n      (Identifier \"a\"))) \n  (SimpleStatement \n    (GlobalStatement \n      (Identifier \"c\"))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/identifier.A.py",
    "content": "a\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/identifier.B.py",
    "content": "aa\nprint\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/identifier.diffA-B.txt",
    "content": "(Statements\n{ (Identifier)\n->(Identifier) }\n{+(Identifier)+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/identifier.diffB-A.txt",
    "content": "(Statements\n{ (Identifier)\n->(Identifier) }\n{-(Identifier)-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/identifier.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Identifier \"a\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/identifier.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Identifier \"aa\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Identifier \"print\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/if-statement.A.py",
    "content": "if a:\n  b\n  c\nelif d:\n  a\n  b\nelse:\n  x\n  y\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/if-statement.B.py",
    "content": "if c:\n  a\n  b\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/if-statement.diffA-B.txt",
    "content": "(Statements\n  (If\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n    {+(Identifier)+}\n      (Identifier)\n    {-(Identifier)-})\n    (Statements\n    {-(If\n      {-(Identifier)-}\n      {-(Statements\n        {-(Identifier)-}\n        {-(Identifier)-})-}\n      {-(Statements)-})-}\n    {-(Statements\n      {-(Identifier)-}\n      {-(Identifier)-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/if-statement.diffB-A.txt",
    "content": "(Statements\n  (If\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n    {-(Identifier)-}\n      (Identifier)\n    {+(Identifier)+})\n    (Statements\n    {+(If\n      {+(Identifier)+}\n      {+(Statements\n        {+(Identifier)+}\n        {+(Identifier)+})+}\n      {+(Statements)+})+}\n    {+(Statements\n      {+(Identifier)+}\n      {+(Identifier)+})+})))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/if-statement.parseA.txt",
    "content": "(Module \n  (CompoundStatement \n    (IfStatement \n      (ElifClause \n        (Block \n          (SimpleStatement \n            (ExpressionStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"a\"))))) \n          (SimpleStatement \n            (ExpressionStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"b\")))))) \n        (Expression \n          (PrimaryExpression \n            (Identifier \"d\")))) \n      (ElseClause \n        (Block \n          (SimpleStatement \n            (ExpressionStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"x\"))))) \n          (SimpleStatement \n            (ExpressionStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"y\"))))))) \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"b\"))))) \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"c\")))))) \n      (Expression \n        (PrimaryExpression \n          (Identifier \"a\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/if-statement.parseB.txt",
    "content": "(Module \n  (CompoundStatement \n    (IfStatement \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"a\"))))) \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"b\")))))) \n      (Expression \n        (PrimaryExpression \n          (Identifier \"c\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/import-from-statement.A.py",
    "content": "from a import b\nfrom a import (b, c)\nfrom a import *\nfrom a.b import c\nfrom . import b\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/import-from-statement.B.py",
    "content": "from b import a\nfrom b import (c, a)\nfrom b import *\nfrom b import a as x, b as y\nfrom b.c import d\nfrom . import d\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/import-from-statement.diffA-B.txt",
    "content": "(Statements\n{ (Import\n  {-(Alias\n    {-(Identifier)-}\n    {-(Identifier)-})-})\n->(Import\n  {+(Alias\n    {+(Identifier)+}\n    {+(Identifier)+})+}) }\n{ (Import\n  {-(Alias\n    {-(Identifier)-}\n    {-(Identifier)-})-}\n  {-(Alias\n    {-(Identifier)-}\n    {-(Identifier)-})-})\n->(Import\n  {+(Alias\n    {+(Identifier)+}\n    {+(Identifier)+})+}\n  {+(Alias\n    {+(Identifier)+}\n    {+(Identifier)+})+}) }\n{ (Import)\n->(Import) }\n{+(Import\n  {+(Alias\n    {+(Identifier)+}\n    {+(Identifier)+})+}\n  {+(Alias\n    {+(Identifier)+}\n    {+(Identifier)+})+})+}\n{+(Import\n  {+(Alias\n    {+(Identifier)+}\n    {+(Identifier)+})+})+}\n{+(Import\n  {+(Alias\n    {+(Identifier)+}\n    {+(Identifier)+})+})+}\n{-(Import\n  {-(Alias\n    {-(Identifier)-}\n    {-(Identifier)-})-})-}\n{-(Import\n  {-(Alias\n    {-(Identifier)-}\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/import-from-statement.diffB-A.txt",
    "content": "(Statements\n{ (Import\n  {-(Alias\n    {-(Identifier)-}\n    {-(Identifier)-})-})\n->(Import\n  {+(Alias\n    {+(Identifier)+}\n    {+(Identifier)+})+}) }\n{ (Import\n  {-(Alias\n    {-(Identifier)-}\n    {-(Identifier)-})-}\n  {-(Alias\n    {-(Identifier)-}\n    {-(Identifier)-})-})\n->(Import\n  {+(Alias\n    {+(Identifier)+}\n    {+(Identifier)+})+}\n  {+(Alias\n    {+(Identifier)+}\n    {+(Identifier)+})+}) }\n{ (Import)\n->(Import) }\n{+(Import\n  {+(Alias\n    {+(Identifier)+}\n    {+(Identifier)+})+})+}\n{+(Import\n  {+(Alias\n    {+(Identifier)+}\n    {+(Identifier)+})+})+}\n{-(Import\n  {-(Alias\n    {-(Identifier)-}\n    {-(Identifier)-})-}\n  {-(Alias\n    {-(Identifier)-}\n    {-(Identifier)-})-})-}\n{-(Import\n  {-(Alias\n    {-(Identifier)-}\n    {-(Identifier)-})-})-}\n{-(Import\n  {-(Alias\n    {-(Identifier)-}\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/import-from-statement.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ImportFromStatement \n      (DottedName \n        (Identifier \"b\")) \n      (DottedName \n        (Identifier \"a\")))) \n  (SimpleStatement \n    (ImportFromStatement \n      (DottedName \n        (Identifier \"b\")) \n      (DottedName \n        (Identifier \"c\")) \n      (DottedName \n        (Identifier \"a\")))) \n  (SimpleStatement \n    (ImportFromStatement \n      (DottedName \n        (Identifier \"a\")) \n      (WildcardImport \"*\"))) \n  (SimpleStatement \n    (ImportFromStatement \n      (DottedName \n        (Identifier \"c\")) \n      (DottedName \n        (Identifier \"a\") \n        (Identifier \"b\")))) \n  (SimpleStatement \n    (ImportFromStatement \n      (DottedName \n        (Identifier \"b\")) \n      (RelativeImport \n        (ImportPrefix \".\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/import-from-statement.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ImportFromStatement \n      (DottedName \n        (Identifier \"a\")) \n      (DottedName \n        (Identifier \"b\")))) \n  (SimpleStatement \n    (ImportFromStatement \n      (DottedName \n        (Identifier \"c\")) \n      (DottedName \n        (Identifier \"a\")) \n      (DottedName \n        (Identifier \"b\")))) \n  (SimpleStatement \n    (ImportFromStatement \n      (DottedName \n        (Identifier \"b\")) \n      (WildcardImport \"*\"))) \n  (SimpleStatement \n    (ImportFromStatement \n      (AliasedImport \n        (Identifier \"x\") \n        (DottedName \n          (Identifier \"a\"))) \n      (AliasedImport \n        (Identifier \"y\") \n        (DottedName \n          (Identifier \"b\"))) \n      (DottedName \n        (Identifier \"b\")))) \n  (SimpleStatement \n    (ImportFromStatement \n      (DottedName \n        (Identifier \"d\")) \n      (DottedName \n        (Identifier \"b\") \n        (Identifier \"c\")))) \n  (SimpleStatement \n    (ImportFromStatement \n      (DottedName \n        (Identifier \"d\")) \n      (RelativeImport \n        (ImportPrefix \".\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/import-statement.A.py",
    "content": "import a, b as c\nimport b.c as d, e\nimport a.b.c\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/import-statement.B.py",
    "content": "import b, a\nimport a.c as e\nimport b.c.d\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/import-statement.diffA-B.txt",
    "content": "(Statements\n  (Statements\n  {+(QualifiedImport\n    {+(Identifier)+})+}\n    (QualifiedImport\n      (Identifier))\n  {-(QualifiedAliasedImport\n    {-(Identifier)-})-})\n{+(QualifiedAliasedImport\n  {+(Identifier)+})+}\n{+(QualifiedImport\n  {+(Identifier)+}\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(Statements\n  {-(QualifiedAliasedImport\n    {-(Identifier)-})-}\n  {-(QualifiedImport\n    {-(Identifier)-})-})-}\n{-(QualifiedImport\n  {-(Identifier)-}\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/import-statement.diffB-A.txt",
    "content": "(Statements\n  (Statements\n  {-(QualifiedImport\n    {-(Identifier)-})-}\n    (QualifiedImport\n      (Identifier))\n  {+(QualifiedAliasedImport\n    {+(Identifier)+})+})\n{+(Statements\n  {+(QualifiedAliasedImport\n    {+(Identifier)+})+}\n  {+(QualifiedImport\n    {+(Identifier)+})+})+}\n{+(QualifiedImport\n  {+(Identifier)+}\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(QualifiedAliasedImport\n  {-(Identifier)-})-}\n{-(QualifiedImport\n  {-(Identifier)-}\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/import-statement.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ImportStatement \n      (DottedName \n        (Identifier \"a\")) \n      (AliasedImport \n        (Identifier \"c\") \n        (DottedName \n          (Identifier \"b\"))))) \n  (SimpleStatement \n    (ImportStatement \n      (AliasedImport \n        (Identifier \"d\") \n        (DottedName \n          (Identifier \"b\") \n          (Identifier \"c\"))) \n      (DottedName \n        (Identifier \"e\")))) \n  (SimpleStatement \n    (ImportStatement \n      (DottedName \n        (Identifier \"a\") \n        (Identifier \"b\") \n        (Identifier \"c\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/import-statement.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ImportStatement \n      (DottedName \n        (Identifier \"b\")) \n      (DottedName \n        (Identifier \"a\")))) \n  (SimpleStatement \n    (ImportStatement \n      (AliasedImport \n        (Identifier \"e\") \n        (DottedName \n          (Identifier \"a\") \n          (Identifier \"c\"))))) \n  (SimpleStatement \n    (ImportStatement \n      (DottedName \n        (Identifier \"b\") \n        (Identifier \"c\") \n        (Identifier \"d\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/integer.A.py",
    "content": "-1\n0xDEAD\n0XDEAD\n1j\n-1j\n0o123\n0O123\n0b001\n0B001\n1_1\n0B1_1\n0O1_1\n0L\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/integer.B.py",
    "content": "-2\n0xDAD\n0XDAD\n2j\n-2j\n0o312\n0O312\n0b101\n0B101\n2_2\n0B1_1_1\n0O2_3\n1L\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/integer.diffA-B.txt",
    "content": "(Statements\n  (Negate\n  { (Integer)\n  ->(Integer) })\n{ (Integer)\n->(Integer) }\n{+(Integer)+}\n{+(Integer)+}\n{+(Negate\n  {+(Integer)+})+}\n{+(Integer)+}\n{+(Integer)+}\n{+(Integer)+}\n{+(Integer)+}\n{+(Integer)+}\n{+(Integer)+}\n{+(Integer)+}\n{+(Integer)+}\n{-(Integer)-}\n{-(Integer)-}\n{-(Negate\n  {-(Integer)-})-}\n{-(Integer)-}\n{-(Integer)-}\n{-(Integer)-}\n{-(Integer)-}\n{-(Integer)-}\n{-(Integer)-}\n{-(Integer)-}\n{-(Integer)-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/integer.diffB-A.txt",
    "content": "(Statements\n  (Negate\n  { (Integer)\n  ->(Integer) })\n{ (Integer)\n->(Integer) }\n{+(Integer)+}\n{+(Integer)+}\n{+(Negate\n  {+(Integer)+})+}\n{ (Integer)\n->(Integer) }\n{+(Integer)+}\n{+(Integer)+}\n{+(Integer)+}\n{+(Integer)+}\n{+(Integer)+}\n{+(Integer)+}\n{+(Integer)+}\n{-(Integer)-}\n{-(Negate\n  {-(Integer)-})-}\n{-(Integer)-}\n{-(Integer)-}\n{-(Integer)-}\n{-(Integer)-}\n{-(Integer)-}\n{-(Integer)-}\n{-(Integer)-}\n{-(Integer)-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/integer.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (UnaryOperator \n            (Token) \n            (PrimaryExpression \n              (Integer \"1\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"0xDEAD\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"0XDEAD\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"1j\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (UnaryOperator \n            (Token) \n            (PrimaryExpression \n              (Integer \"1j\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"0o123\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"0O123\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"0b001\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"0B001\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"1_1\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"0B1_1\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"0O1_1\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"0L\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/integer.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (UnaryOperator \n            (Token) \n            (PrimaryExpression \n              (Integer \"2\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"0xDAD\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"0XDAD\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"2j\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (UnaryOperator \n            (Token) \n            (PrimaryExpression \n              (Integer \"2j\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"0o312\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"0O312\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"0b101\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"0B101\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"2_2\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"0B1_1_1\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"0O2_3\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Integer \"1L\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/keyword-identifier.A.py",
    "content": "print\nexec\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/keyword-identifier.B.py",
    "content": "exec\nprint\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/keyword-identifier.diffA-B.txt",
    "content": "(Statements\n{-(Identifier)-}\n  (Identifier)\n{+(Identifier)+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/keyword-identifier.diffB-A.txt",
    "content": "(Statements\n{-(Identifier)-}\n  (Identifier)\n{+(Identifier)+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/keyword-identifier.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Identifier \"print\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Identifier \"exec\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/keyword-identifier.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Identifier \"exec\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Identifier \"print\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/lambda.A.py",
    "content": "lambda :\n    1 + 1\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/lambda.B.py",
    "content": "lambda a :\n    a + 1\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/lambda.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n  {+(Identifier)+}\n    (Statements\n      (Plus\n      { (Integer)\n      ->(Identifier) }\n        (Integer)))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/lambda.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n  {-(Identifier)-}\n    (Statements\n      (Plus\n      { (Identifier)\n      ->(Integer) }\n        (Integer)))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/lambda.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (Lambda \n          (Expression \n            (PrimaryExpression \n              (BinaryOperator \n                (Token) \n                (PrimaryExpression \n                  (Integer \"1\")) \n                (PrimaryExpression \n                  (Integer \"1\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/lambda.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (Lambda \n          (Expression \n            (PrimaryExpression \n              (BinaryOperator \n                (Token) \n                (PrimaryExpression \n                  (Identifier \"a\")) \n                (PrimaryExpression \n                  (Integer \"1\"))))) \n          (LambdaParameters \n            (Parameter \n              (Identifier \"a\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/list-comprehension.A.py",
    "content": "[ c for b in a ]\n[ d for e in f if d]\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/list-comprehension.B.py",
    "content": "[ f for e in d if f() for g in h if g() ]\n[ c + 1 for b in a ]\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/list-comprehension.diffA-B.txt",
    "content": "(Statements\n  (Comprehension\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n    {+(Statements\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(Call\n      {+(Identifier)+}\n      {+(Empty)+})+}\n    {+(Statements\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(Call\n      {+(Identifier)+}\n      {+(Empty)+})+}\n    {-(Identifier)-}\n    {-(Identifier)-}))\n  (Comprehension\n  { (Identifier)\n  ->(Plus\n    {+(Identifier)+}\n    {+(Integer)+}) }\n    (Statements\n    {+(Identifier)+}\n    {+(Identifier)+}\n    {-(Statements\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Identifier)-})))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/list-comprehension.diffB-A.txt",
    "content": "(Statements\n  (Comprehension\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n    {+(Identifier)+}\n    {+(Identifier)+}\n    {-(Statements\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Call\n      {-(Identifier)-}\n      {-(Empty)-})-}\n    {-(Statements\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Call\n      {-(Identifier)-}\n      {-(Empty)-})-}))\n  (Comprehension\n  { (Plus\n    {-(Identifier)-}\n    {-(Integer)-})\n  ->(Identifier) }\n    (Statements\n    {+(Statements\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    { (Identifier)\n    ->(Identifier) }\n    {-(Identifier)-})))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/list-comprehension.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (ListComprehension \n            (Expression \n              (PrimaryExpression \n                (Identifier \"c\"))) \n            (ForInClause \n              (Variables \n                (PrimaryExpression \n                  (Identifier \"b\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"a\"))))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (ListComprehension \n            (Expression \n              (PrimaryExpression \n                (Identifier \"d\"))) \n            (ForInClause \n              (Variables \n                (PrimaryExpression \n                  (Identifier \"e\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"f\")))) \n            (IfClause \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"d\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/list-comprehension.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (ListComprehension \n            (Expression \n              (PrimaryExpression \n                (Identifier \"f\"))) \n            (ForInClause \n              (Variables \n                (PrimaryExpression \n                  (Identifier \"e\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"d\")))) \n            (IfClause \n              (Expression \n                (PrimaryExpression \n                  (Call \n                    (PrimaryExpression \n                      (Identifier \"f\")) \n                    (ArgumentList))))) \n            (ForInClause \n              (Variables \n                (PrimaryExpression \n                  (Identifier \"g\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"h\")))) \n            (IfClause \n              (Expression \n                (PrimaryExpression \n                  (Call \n                    (PrimaryExpression \n                      (Identifier \"g\")) \n                    (ArgumentList)))))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (ListComprehension \n            (Expression \n              (PrimaryExpression \n                (BinaryOperator \n                  (Token) \n                  (PrimaryExpression \n                    (Identifier \"c\")) \n                  (PrimaryExpression \n                    (Integer \"1\"))))) \n            (ForInClause \n              (Variables \n                (PrimaryExpression \n                  (Identifier \"b\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"a\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/list.A.py",
    "content": "[]\n[1,2,3]\n[a,b,c,]\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/list.B.py",
    "content": "[print]\n[1,3]\n[b,]\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/list.diffA-B.txt",
    "content": "(Statements\n  (Array\n  {+(Identifier)+})\n  (Array\n    (Integer)\n  {-(Integer)-}\n    (Integer))\n  (Array\n  {-(Identifier)-}\n    (Identifier)\n  {-(Identifier)-}))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/list.diffB-A.txt",
    "content": "(Statements\n  (Array\n  {-(Identifier)-})\n  (Array\n    (Integer)\n  {+(Integer)+}\n    (Integer))\n  (Array\n  {+(Identifier)+}\n    (Identifier)\n  {+(Identifier)+}))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/list.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (List))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (List \n            (Expression \n              (PrimaryExpression \n                (Integer \"1\"))) \n            (Expression \n              (PrimaryExpression \n                (Integer \"2\"))) \n            (Expression \n              (PrimaryExpression \n                (Integer \"3\")))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (List \n            (Expression \n              (PrimaryExpression \n                (Identifier \"a\"))) \n            (Expression \n              (PrimaryExpression \n                (Identifier \"b\"))) \n            (Expression \n              (PrimaryExpression \n                (Identifier \"c\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/list.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (List \n            (Expression \n              (PrimaryExpression \n                (Identifier \"print\")))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (List \n            (Expression \n              (PrimaryExpression \n                (Integer \"1\"))) \n            (Expression \n              (PrimaryExpression \n                (Integer \"3\")))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (List \n            (Expression \n              (PrimaryExpression \n                (Identifier \"b\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/non-local-statement.A.py",
    "content": "nonlocal a\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/non-local-statement.B.py",
    "content": "nonlocal b\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/non-local-statement.diffA-B.txt",
    "content": "(Statements\n  (Call\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/non-local-statement.diffB-A.txt",
    "content": "(Statements\n  (Call\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/non-local-statement.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (NonlocalStatement \n      (Identifier \"a\"))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/non-local-statement.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (NonlocalStatement \n      (Identifier \"b\"))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/none.A.py",
    "content": "None\nNone\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/none.B.py",
    "content": "None\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/none.diffA-B.txt",
    "content": "(Statements\n  (Null)\n{-(Null)-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/none.diffB-A.txt",
    "content": "(Statements\n  (Null)\n{+(Null)+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/none.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (None \"None\"))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (None \"None\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/none.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (None \"None\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/not.A.py",
    "content": "not a\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/not.B.py",
    "content": "not c\nnot b\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/not.diffA-B.txt",
    "content": "(Statements\n  (Not\n  { (Identifier)\n  ->(Identifier) })\n{+(Not\n  {+(Identifier)+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/not.diffB-A.txt",
    "content": "(Statements\n  (Not\n  { (Identifier)\n  ->(Identifier) })\n{-(Not\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/not.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (NotOperator \n          (Expression \n            (PrimaryExpression \n              (Identifier \"a\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/not.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (NotOperator \n          (Expression \n            (PrimaryExpression \n              (Identifier \"c\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (NotOperator \n          (Expression \n            (PrimaryExpression \n              (Identifier \"b\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/pass-statement.A.py",
    "content": "pass\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/pass-statement.B.py",
    "content": "pass\npass\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/pass-statement.diffA-B.txt",
    "content": "(Statements\n  (NoOp\n    (Empty))\n{+(NoOp\n  {+(Empty)+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/pass-statement.diffB-A.txt",
    "content": "(Statements\n  (NoOp\n    (Empty))\n{-(NoOp\n  {-(Empty)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/pass-statement.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (PassStatement \"pass\")))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/pass-statement.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (PassStatement \"pass\")) \n  (SimpleStatement \n    (PassStatement \"pass\")))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/print-statement.A.py",
    "content": "print a, b\nprint c\nprint 0 or 1\nprint 0 or 1, 1 or 0,\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/print-statement.B.py",
    "content": "print c, a\nprint b\nprint 0 or 1\nprint 1 or 0, 0 or 1,\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/print-statement.diffA-B.txt",
    "content": "(Statements\n  (Call\n    (Identifier)\n  {+(Identifier)+}\n    (Identifier)\n  {-(Identifier)-}\n    (Empty))\n  (Call\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }\n    (Empty))\n  (Call\n    (Identifier)\n    (Or\n      (Integer)\n      (Integer))\n    (Empty))\n  (Call\n    (Identifier)\n  {-(Or\n    {-(Integer)-}\n    {-(Integer)-})-}\n    (Or\n      (Integer)\n      (Integer))\n  {+(Or\n    {+(Integer)+}\n    {+(Integer)+})+}\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/print-statement.diffB-A.txt",
    "content": "(Statements\n  (Call\n    (Identifier)\n  {-(Identifier)-}\n    (Identifier)\n  {+(Identifier)+}\n    (Empty))\n  (Call\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }\n    (Empty))\n  (Call\n    (Identifier)\n    (Or\n      (Integer)\n      (Integer))\n    (Empty))\n  (Call\n    (Identifier)\n  {-(Or\n    {-(Integer)-}\n    {-(Integer)-})-}\n    (Or\n      (Integer)\n      (Integer))\n  {+(Or\n    {+(Integer)+}\n    {+(Integer)+})+}\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/print-statement.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (PrintStatement \n      (Expression \n        (PrimaryExpression \n          (Identifier \"a\"))) \n      (Expression \n        (PrimaryExpression \n          (Identifier \"b\"))))) \n  (SimpleStatement \n    (PrintStatement \n      (Expression \n        (PrimaryExpression \n          (Identifier \"c\"))))) \n  (SimpleStatement \n    (PrintStatement \n      (Expression \n        (BooleanOperator \n          (Token) \n          (Expression \n            (PrimaryExpression \n              (Integer \"0\"))) \n          (Expression \n            (PrimaryExpression \n              (Integer \"1\"))))))) \n  (SimpleStatement \n    (PrintStatement \n      (Expression \n        (BooleanOperator \n          (Token) \n          (Expression \n            (PrimaryExpression \n              (Integer \"0\"))) \n          (Expression \n            (PrimaryExpression \n              (Integer \"1\"))))) \n      (Expression \n        (BooleanOperator \n          (Token) \n          (Expression \n            (PrimaryExpression \n              (Integer \"1\"))) \n          (Expression \n            (PrimaryExpression \n              (Integer \"0\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/print-statement.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (PrintStatement \n      (Expression \n        (PrimaryExpression \n          (Identifier \"c\"))) \n      (Expression \n        (PrimaryExpression \n          (Identifier \"a\"))))) \n  (SimpleStatement \n    (PrintStatement \n      (Expression \n        (PrimaryExpression \n          (Identifier \"b\"))))) \n  (SimpleStatement \n    (PrintStatement \n      (Expression \n        (BooleanOperator \n          (Token) \n          (Expression \n            (PrimaryExpression \n              (Integer \"0\"))) \n          (Expression \n            (PrimaryExpression \n              (Integer \"1\"))))))) \n  (SimpleStatement \n    (PrintStatement \n      (Expression \n        (BooleanOperator \n          (Token) \n          (Expression \n            (PrimaryExpression \n              (Integer \"1\"))) \n          (Expression \n            (PrimaryExpression \n              (Integer \"0\"))))) \n      (Expression \n        (BooleanOperator \n          (Token) \n          (Expression \n            (PrimaryExpression \n              (Integer \"0\"))) \n          (Expression \n            (PrimaryExpression \n              (Integer \"1\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/raise-statement.A.py",
    "content": "raise\nraise RuntimeError('NO')\nraise RunTimeError('NO') from e\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/raise-statement.B.py",
    "content": "raise RuntimeError('YES')\nraise RunTimeError('YES') from f\nraise\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/raise-statement.diffA-B.txt",
    "content": "(Statements\n{+(Throw\n  {+(Call\n    {+(Identifier)+}\n    {+(TextElement)+}\n    {+(Empty)+})+})+}\n{+(Throw\n  {+(Statements\n    {+(Call\n      {+(Identifier)+}\n      {+(TextElement)+}\n      {+(Empty)+})+}\n    {+(Identifier)+})+})+}\n  (Throw\n    (Statements))\n{-(Throw\n  {-(Call\n    {-(Identifier)-}\n    {-(TextElement)-}\n    {-(Empty)-})-})-}\n{-(Throw\n  {-(Statements\n    {-(Call\n      {-(Identifier)-}\n      {-(TextElement)-}\n      {-(Empty)-})-}\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/raise-statement.diffB-A.txt",
    "content": "(Statements\n{-(Throw\n  {-(Call\n    {-(Identifier)-}\n    {-(TextElement)-}\n    {-(Empty)-})-})-}\n{-(Throw\n  {-(Statements\n    {-(Call\n      {-(Identifier)-}\n      {-(TextElement)-}\n      {-(Empty)-})-}\n    {-(Identifier)-})-})-}\n  (Throw\n    (Statements))\n{+(Throw\n  {+(Call\n    {+(Identifier)+}\n    {+(TextElement)+}\n    {+(Empty)+})+})+}\n{+(Throw\n  {+(Statements\n    {+(Call\n      {+(Identifier)+}\n      {+(TextElement)+}\n      {+(Empty)+})+}\n    {+(Identifier)+})+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/raise-statement.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (RaiseStatement)) \n  (SimpleStatement \n    (RaiseStatement \n      (ExpressionList \n        (Expression \n          (PrimaryExpression \n            (Call \n              (PrimaryExpression \n                (Identifier \"RuntimeError\")) \n              (ArgumentList \n                (Expression \n                  (PrimaryExpression \n                    (String)))))))))) \n  (SimpleStatement \n    (RaiseStatement \n      (Expression \n        (PrimaryExpression \n          (Identifier \"e\"))) \n      (ExpressionList \n        (Expression \n          (PrimaryExpression \n            (Call \n              (PrimaryExpression \n                (Identifier \"RunTimeError\")) \n              (ArgumentList \n                (Expression \n                  (PrimaryExpression \n                    (String)))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/raise-statement.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (RaiseStatement \n      (ExpressionList \n        (Expression \n          (PrimaryExpression \n            (Call \n              (PrimaryExpression \n                (Identifier \"RuntimeError\")) \n              (ArgumentList \n                (Expression \n                  (PrimaryExpression \n                    (String)))))))))) \n  (SimpleStatement \n    (RaiseStatement \n      (Expression \n        (PrimaryExpression \n          (Identifier \"f\"))) \n      (ExpressionList \n        (Expression \n          (PrimaryExpression \n            (Call \n              (PrimaryExpression \n                (Identifier \"RunTimeError\")) \n              (ArgumentList \n                (Expression \n                  (PrimaryExpression \n                    (String)))))))))) \n  (SimpleStatement \n    (RaiseStatement)))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/return-statement.A.py",
    "content": "return\nreturn a + b, c\nreturn not b\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/return-statement.B.py",
    "content": "return c + a, b\nreturn\nreturn not a\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/return-statement.diffA-B.txt",
    "content": "(Statements\n{+(Return\n  {+(Statements\n    {+(Plus\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(Identifier)+})+})+}\n  (Return\n    (Empty))\n  (Return\n  { (Statements\n    {-(Plus\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Identifier)-})\n  ->(Not\n    {+(Identifier)+}) })\n{-(Return\n  {-(Not\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/return-statement.diffB-A.txt",
    "content": "(Statements\n{-(Return\n  {-(Statements\n    {-(Plus\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Identifier)-})-})-}\n  (Return\n    (Empty))\n  (Return\n  { (Not\n    {-(Identifier)-})\n  ->(Statements\n    {+(Plus\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(Identifier)+}) })\n{+(Return\n  {+(Not\n    {+(Identifier)+})+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/return-statement.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ReturnStatement)) \n  (SimpleStatement \n    (ReturnStatement \n      (ExpressionList \n        (Expression \n          (PrimaryExpression \n            (BinaryOperator \n              (Token) \n              (PrimaryExpression \n                (Identifier \"a\")) \n              (PrimaryExpression \n                (Identifier \"b\"))))) \n        (Expression \n          (PrimaryExpression \n            (Identifier \"c\")))))) \n  (SimpleStatement \n    (ReturnStatement \n      (ExpressionList \n        (Expression \n          (NotOperator \n            (Expression \n              (PrimaryExpression \n                (Identifier \"b\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/return-statement.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ReturnStatement \n      (ExpressionList \n        (Expression \n          (PrimaryExpression \n            (BinaryOperator \n              (Token) \n              (PrimaryExpression \n                (Identifier \"c\")) \n              (PrimaryExpression \n                (Identifier \"a\"))))) \n        (Expression \n          (PrimaryExpression \n            (Identifier \"b\")))))) \n  (SimpleStatement \n    (ReturnStatement)) \n  (SimpleStatement \n    (ReturnStatement \n      (ExpressionList \n        (Expression \n          (NotOperator \n            (Expression \n              (PrimaryExpression \n                (Identifier \"a\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/set-comprehension.A.py",
    "content": "{ c for b in a }\n{ d for e in f }\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/set-comprehension.B.py",
    "content": "{ f for e in d }\n{ c + 1 for b in a }\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/set-comprehension.diffA-B.txt",
    "content": "(Statements\n  (Comprehension\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) }))\n  (Comprehension\n  { (Identifier)\n  ->(Plus\n    {+(Identifier)+}\n    {+(Integer)+}) }\n    (Statements\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) })))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/set-comprehension.diffB-A.txt",
    "content": "(Statements\n  (Comprehension\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) }))\n  (Comprehension\n  { (Plus\n    {-(Identifier)-}\n    {-(Integer)-})\n  ->(Identifier) }\n    (Statements\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Identifier) })))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/set-comprehension.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (SetComprehension \n            (Expression \n              (PrimaryExpression \n                (Identifier \"c\"))) \n            (ForInClause \n              (Variables \n                (PrimaryExpression \n                  (Identifier \"b\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"a\"))))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (SetComprehension \n            (Expression \n              (PrimaryExpression \n                (Identifier \"d\"))) \n            (ForInClause \n              (Variables \n                (PrimaryExpression \n                  (Identifier \"e\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"f\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/set-comprehension.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (SetComprehension \n            (Expression \n              (PrimaryExpression \n                (Identifier \"f\"))) \n            (ForInClause \n              (Variables \n                (PrimaryExpression \n                  (Identifier \"e\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"d\"))))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (SetComprehension \n            (Expression \n              (PrimaryExpression \n                (BinaryOperator \n                  (Token) \n                  (PrimaryExpression \n                    (Identifier \"c\")) \n                  (PrimaryExpression \n                    (Integer \"1\"))))) \n            (ForInClause \n              (Variables \n                (PrimaryExpression \n                  (Identifier \"b\"))) \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"a\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/set.A.py",
    "content": "{}\n{1,2,3}\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/set.B.py",
    "content": "{1}\n{3,2,1}\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/set.diffA-B.txt",
    "content": "(Statements\n{+(Set\n  {+(Integer)+})+}\n{+(Set\n  {+(Integer)+}\n  {+(Integer)+}\n  {+(Integer)+})+}\n{-(Hash)-}\n{-(Set\n  {-(Integer)-}\n  {-(Integer)-}\n  {-(Integer)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/set.diffB-A.txt",
    "content": "(Statements\n{+(Hash)+}\n  (Set\n    (Integer)\n  {+(Integer)+}\n  {+(Integer)+})\n{-(Set\n  {-(Integer)-}\n  {-(Integer)-}\n  {-(Integer)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/set.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Dictionary))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Set \n            (Expression \n              (PrimaryExpression \n                (Integer \"1\"))) \n            (Expression \n              (PrimaryExpression \n                (Integer \"2\"))) \n            (Expression \n              (PrimaryExpression \n                (Integer \"3\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/set.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Set \n            (Expression \n              (PrimaryExpression \n                (Integer \"1\")))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Set \n            (Expression \n              (PrimaryExpression \n                (Integer \"3\"))) \n            (Expression \n              (PrimaryExpression \n                (Integer \"2\"))) \n            (Expression \n              (PrimaryExpression \n                (Integer \"1\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/slice.A.py",
    "content": "a[:]\nb[5:]\nb[5:6, ...]\nc[::]\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/slice.B.py",
    "content": "c[4:5, ...]\na[:]\nd[3:]\ne[::]\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/slice.diffA-B.txt",
    "content": "(Statements\n{+(Subscript\n  {+(Identifier)+}\n  {+(Enumeration\n    {+(Integer)+}\n    {+(Integer)+}\n    {+(Empty)+})+}\n  {+(Ellipsis)+})+}\n  (Subscript\n    (Identifier)\n    (Enumeration\n      (Empty)\n      (Empty)\n      (Empty)))\n  (Subscript\n  { (Identifier)\n  ->(Identifier) }\n    (Enumeration\n    { (Integer)\n    ->(Integer) }\n      (Empty)\n      (Empty)))\n{+(Subscript\n  {+(Identifier)+}\n  {+(Enumeration\n    {+(Empty)+}\n    {+(Empty)+}\n    {+(Empty)+})+})+}\n{-(Subscript\n  {-(Identifier)-}\n  {-(Enumeration\n    {-(Integer)-}\n    {-(Integer)-}\n    {-(Empty)-})-}\n  {-(Ellipsis)-})-}\n{-(Subscript\n  {-(Identifier)-}\n  {-(Enumeration\n    {-(Empty)-}\n    {-(Empty)-}\n    {-(Empty)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/slice.diffB-A.txt",
    "content": "(Statements\n{-(Subscript\n  {-(Identifier)-}\n  {-(Enumeration\n    {-(Integer)-}\n    {-(Integer)-}\n    {-(Empty)-})-}\n  {-(Ellipsis)-})-}\n  (Subscript\n    (Identifier)\n    (Enumeration\n      (Empty)\n      (Empty)\n      (Empty)))\n  (Subscript\n  { (Identifier)\n  ->(Identifier) }\n    (Enumeration\n    { (Integer)\n    ->(Integer) }\n      (Empty)\n      (Empty)))\n{+(Subscript\n  {+(Identifier)+}\n  {+(Enumeration\n    {+(Integer)+}\n    {+(Integer)+}\n    {+(Empty)+})+}\n  {+(Ellipsis)+})+}\n  (Subscript\n  { (Identifier)\n  ->(Identifier) }\n    (Enumeration\n      (Empty)\n      (Empty)\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/slice.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Subscript \n            (Slice) \n            (PrimaryExpression \n              (Identifier \"a\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Subscript \n            (Slice \n              (Expression \n                (PrimaryExpression \n                  (Integer \"5\")))) \n            (PrimaryExpression \n              (Identifier \"b\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Subscript \n            (Slice \n              (Expression \n                (PrimaryExpression \n                  (Integer \"5\"))) \n              (Expression \n                (PrimaryExpression \n                  (Integer \"6\")))) \n            (Token) \n            (Expression \n              (PrimaryExpression \n                (Ellipsis \"...\"))) \n            (PrimaryExpression \n              (Identifier \"b\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Subscript \n            (Slice) \n            (PrimaryExpression \n              (Identifier \"c\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/slice.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Subscript \n            (Slice \n              (Expression \n                (PrimaryExpression \n                  (Integer \"4\"))) \n              (Expression \n                (PrimaryExpression \n                  (Integer \"5\")))) \n            (Token) \n            (Expression \n              (PrimaryExpression \n                (Ellipsis \"...\"))) \n            (PrimaryExpression \n              (Identifier \"c\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Subscript \n            (Slice) \n            (PrimaryExpression \n              (Identifier \"a\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Subscript \n            (Slice \n              (Expression \n                (PrimaryExpression \n                  (Integer \"3\")))) \n            (PrimaryExpression \n              (Identifier \"d\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Subscript \n            (Slice) \n            (PrimaryExpression \n              (Identifier \"e\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/string.A.py",
    "content": "\"I'm ok\"\n'\"ok\"'\nr'hi'\nur\"bye\"\nb'sup'\n`1`\n\"\\\\\"\n\"/\"\n\"multiline \\\nstring\"\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/string.B.py",
    "content": "\"other \\\nmultiline\"\n\"I'm ok\"\n'\"goodbye\"'\nr'yo'\nur\"hiii\"\nb'gg'\n`2`\n\"/\"\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/string.diffA-B.txt",
    "content": "(Statements\n{+(TextElement)+}\n  (TextElement)\n{+(TextElement)+}\n{+(TextElement)+}\n{ (TextElement)\n->(TextElement) }\n{+(TextElement)+}\n{+(TextElement)+}\n{-(TextElement)-}\n{-(TextElement)-}\n{-(TextElement)-}\n{-(TextElement)-}\n{-(TextElement)-}\n  (TextElement)\n{-(TextElement)-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/string.diffB-A.txt",
    "content": "(Statements\n{-(TextElement)-}\n  (TextElement)\n{+(TextElement)+}\n{ (TextElement)\n->(TextElement) }\n{+(TextElement)+}\n{+(TextElement)+}\n{+(TextElement)+}\n{+(TextElement)+}\n{-(TextElement)-}\n{-(TextElement)-}\n{-(TextElement)-}\n{-(TextElement)-}\n  (TextElement)\n{+(TextElement)+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/string.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (String))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (String))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (String))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (String))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (String))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (String))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (String \n            (EscapeSequence \"\\\\\\\\\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (String))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (String \n            (EscapeSequence \"\\\\\\n\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/string.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (String \n            (EscapeSequence \"\\\\\\n\")))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (String))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (String))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (String))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (String))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (String))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (String))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (String))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/subscript.A.py",
    "content": "a[b]\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/subscript.B.py",
    "content": "b[a]\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/subscript.diffA-B.txt",
    "content": "(Statements\n  (Subscript\n  { (Identifier)\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) }))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/subscript.diffB-A.txt",
    "content": "(Statements\n  (Subscript\n  { (Identifier)\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) }))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/subscript.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Subscript \n            (Expression \n              (PrimaryExpression \n                (Identifier \"b\"))) \n            (PrimaryExpression \n              (Identifier \"a\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/subscript.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Subscript \n            (Expression \n              (PrimaryExpression \n                (Identifier \"a\"))) \n            (PrimaryExpression \n              (Identifier \"b\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/try-statement.A.py",
    "content": "try:\n  a\n  b\nexcept b:\n  c\n  d\nexcept d as e:\n  f\n  g\nexcept g, h:\n  i\n  j\nexcept:\n  j\n  k\n\ntry:\n  a\n  b\nfinally:\n  a\n  b\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/try-statement.B.py",
    "content": "try:\n  b\nfinally:\n  c\n\ntry:\n  e\nexcept f:\n  d\nexcept g as h:\n  a\nexcept i, j:\n  k\nexcept:\n  l\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/try-statement.diffA-B.txt",
    "content": "(Statements\n  (Try\n  { (Statements\n    {-(Identifier)-}\n    {-(Identifier)-})\n  ->(Identifier) }\n  {+(Finally\n    {+(Identifier)+})+}\n  {-(Catch\n    {-(Statements\n      {-(Identifier)-}\n      {-(Statements\n        {-(Identifier)-}\n        {-(Identifier)-})-})-}\n    {-(Statements)-})-}\n  {-(Catch\n    {-(Let\n      {-(Identifier)-}\n      {-(Identifier)-}\n      {-(Empty)-})-}\n    {-(Statements\n      {-(Identifier)-}\n      {-(Identifier)-})-})-}\n  {-(Catch\n    {-(Statements\n      {-(Identifier)-}\n      {-(Identifier)-}\n      {-(Statements\n        {-(Identifier)-}\n        {-(Identifier)-})-})-}\n    {-(Statements)-})-}\n  {-(Catch\n    {-(Statements\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Statements)-})-})\n  (Try\n  { (Statements\n    {-(Identifier)-}\n    {-(Identifier)-})\n  ->(Identifier) }\n  {+(Catch\n    {+(Statements\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(Statements)+})+}\n  {+(Catch\n    {+(Let\n      {+(Identifier)+}\n      {+(Identifier)+}\n      {+(Empty)+})+}\n    {+(Identifier)+})+}\n  {+(Catch\n    {+(Statements\n      {+(Identifier)+}\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(Statements)+})+}\n  {+(Catch\n    {+(Identifier)+}\n    {+(Statements)+})+}\n  {-(Finally\n    {-(Statements\n      {-(Identifier)-}\n      {-(Identifier)-})-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/try-statement.diffB-A.txt",
    "content": "(Statements\n  (Try\n  { (Identifier)\n  ->(Statements\n    {+(Identifier)+}\n    {+(Identifier)+}) }\n  {+(Catch\n    {+(Statements\n      {+(Identifier)+}\n      {+(Statements\n        {+(Identifier)+}\n        {+(Identifier)+})+})+}\n    {+(Statements)+})+}\n  {+(Catch\n    {+(Let\n      {+(Identifier)+}\n      {+(Identifier)+}\n      {+(Empty)+})+}\n    {+(Statements\n      {+(Identifier)+}\n      {+(Identifier)+})+})+}\n  {+(Catch\n    {+(Statements\n      {+(Identifier)+}\n      {+(Identifier)+}\n      {+(Statements\n        {+(Identifier)+}\n        {+(Identifier)+})+})+}\n    {+(Statements)+})+}\n  {+(Catch\n    {+(Statements\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(Statements)+})+}\n  {-(Finally\n    {-(Identifier)-})-})\n  (Try\n  { (Identifier)\n  ->(Statements\n    {+(Identifier)+}\n    {+(Identifier)+}) }\n  {+(Finally\n    {+(Statements\n      {+(Identifier)+}\n      {+(Identifier)+})+})+}\n  {-(Catch\n    {-(Statements\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Statements)-})-}\n  {-(Catch\n    {-(Let\n      {-(Identifier)-}\n      {-(Identifier)-}\n      {-(Empty)-})-}\n    {-(Identifier)-})-}\n  {-(Catch\n    {-(Statements\n      {-(Identifier)-}\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Statements)-})-}\n  {-(Catch\n    {-(Identifier)-}\n    {-(Statements)-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/try-statement.parseA.txt",
    "content": "(Module \n  (CompoundStatement \n    (TryStatement \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"a\"))))) \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"b\")))))) \n      (ExceptClause \n        (Expression \n          (PrimaryExpression \n            (Identifier \"b\"))) \n        (Block \n          (SimpleStatement \n            (ExpressionStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"c\"))))) \n          (SimpleStatement \n            (ExpressionStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"d\"))))))) \n      (ExceptClause \n        (Expression \n          (PrimaryExpression \n            (Identifier \"d\"))) \n        (Expression \n          (PrimaryExpression \n            (Identifier \"e\"))) \n        (Block \n          (SimpleStatement \n            (ExpressionStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"f\"))))) \n          (SimpleStatement \n            (ExpressionStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"g\"))))))) \n      (ExceptClause \n        (Expression \n          (PrimaryExpression \n            (Identifier \"g\"))) \n        (Expression \n          (PrimaryExpression \n            (Identifier \"h\"))) \n        (Block \n          (SimpleStatement \n            (ExpressionStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"i\"))))) \n          (SimpleStatement \n            (ExpressionStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"j\"))))))) \n      (ExceptClause \n        (Block \n          (SimpleStatement \n            (ExpressionStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"j\"))))) \n          (SimpleStatement \n            (ExpressionStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"k\"))))))))) \n  (CompoundStatement \n    (TryStatement \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"a\"))))) \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"b\")))))) \n      (FinallyClause \n        (Block \n          (SimpleStatement \n            (ExpressionStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"a\"))))) \n          (SimpleStatement \n            (ExpressionStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"b\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/try-statement.parseB.txt",
    "content": "(Module \n  (CompoundStatement \n    (TryStatement \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"b\")))))) \n      (FinallyClause \n        (Block \n          (SimpleStatement \n            (ExpressionStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"c\"))))))))) \n  (CompoundStatement \n    (TryStatement \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"e\")))))) \n      (ExceptClause \n        (Expression \n          (PrimaryExpression \n            (Identifier \"f\"))) \n        (Block \n          (SimpleStatement \n            (ExpressionStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"d\"))))))) \n      (ExceptClause \n        (Expression \n          (PrimaryExpression \n            (Identifier \"g\"))) \n        (Expression \n          (PrimaryExpression \n            (Identifier \"h\"))) \n        (Block \n          (SimpleStatement \n            (ExpressionStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"a\"))))))) \n      (ExceptClause \n        (Expression \n          (PrimaryExpression \n            (Identifier \"i\"))) \n        (Expression \n          (PrimaryExpression \n            (Identifier \"j\"))) \n        (Block \n          (SimpleStatement \n            (ExpressionStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"k\"))))))) \n      (ExceptClause \n        (Block \n          (SimpleStatement \n            (ExpressionStatement \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"l\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/tuple.A.py",
    "content": "(a, b)\n(a, b, c,)\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/tuple.B.py",
    "content": "(b, c, a,)\n(b, c)\n(a)\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/tuple.diffA-B.txt",
    "content": "(Statements\n  (Tuple\n  {-(Identifier)-}\n    (Identifier)\n  {+(Identifier)+}\n  {+(Identifier)+})\n  (Tuple\n  {-(Identifier)-}\n    (Identifier)\n    (Identifier))\n{+(Identifier)+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/tuple.diffB-A.txt",
    "content": "(Statements\n  (Tuple\n  {-(Identifier)-}\n  {-(Identifier)-}\n    (Identifier)\n  {+(Identifier)+})\n  (Tuple\n  {+(Identifier)+}\n    (Identifier)\n    (Identifier))\n{-(Identifier)-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/tuple.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Tuple \n            (Expression \n              (PrimaryExpression \n                (Identifier \"a\"))) \n            (Expression \n              (PrimaryExpression \n                (Identifier \"b\")))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Tuple \n            (Expression \n              (PrimaryExpression \n                (Identifier \"a\"))) \n            (Expression \n              (PrimaryExpression \n                (Identifier \"b\"))) \n            (Expression \n              (PrimaryExpression \n                (Identifier \"c\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/tuple.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Tuple \n            (Expression \n              (PrimaryExpression \n                (Identifier \"b\"))) \n            (Expression \n              (PrimaryExpression \n                (Identifier \"c\"))) \n            (Expression \n              (PrimaryExpression \n                (Identifier \"a\")))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (Tuple \n            (Expression \n              (PrimaryExpression \n                (Identifier \"b\"))) \n            (Expression \n              (PrimaryExpression \n                (Identifier \"c\")))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (ParenthesizedExpression \n            (Expression \n              (PrimaryExpression \n                (Identifier \"a\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/unary-operator.A.py",
    "content": "-a\n+b\n~c\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/unary-operator.B.py",
    "content": "~a\n-b\n+c\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/unary-operator.diffA-B.txt",
    "content": "(Statements\n{+(Complement\n  {+(Identifier)+})+}\n  (Negate\n  { (Identifier)\n  ->(Identifier) })\n{ (Identifier)\n->(Identifier) }\n{-(Complement\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/unary-operator.diffB-A.txt",
    "content": "(Statements\n{+(Negate\n  {+(Identifier)+})+}\n{+(Identifier)+}\n{+(Complement\n  {+(Identifier)+})+}\n{-(Complement\n  {-(Identifier)-})-}\n{-(Negate\n  {-(Identifier)-})-}\n{-(Identifier)-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/unary-operator.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (UnaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"a\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (UnaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"b\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (UnaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"c\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/unary-operator.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (UnaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"a\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (UnaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"b\"))))))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Expression \n        (PrimaryExpression \n          (UnaryOperator \n            (Token) \n            (PrimaryExpression \n              (Identifier \"c\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/while-statement.A.py",
    "content": "while true:\n  pass\n  break\n  continue\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/while-statement.B.py",
    "content": "while false:\n  break\n  continue\n  pass\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/while-statement.diffA-B.txt",
    "content": "(Statements\n  (While\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n    {-(NoOp\n      {-(Empty)-})-}\n      (Break\n        (Empty))\n      (Continue\n        (Empty))\n    {+(NoOp\n      {+(Empty)+})+})))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/while-statement.diffB-A.txt",
    "content": "(Statements\n  (While\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n    {+(NoOp\n      {+(Empty)+})+}\n      (Break\n        (Empty))\n      (Continue\n        (Empty))\n    {-(NoOp\n      {-(Empty)-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/while-statement.parseA.txt",
    "content": "(Module \n  (CompoundStatement \n    (WhileStatement \n      (Block \n        (SimpleStatement \n          (PassStatement \"pass\")) \n        (SimpleStatement \n          (BreakStatement \"break\")) \n        (SimpleStatement \n          (ContinueStatement \"continue\"))) \n      (Expression \n        (PrimaryExpression \n          (Identifier \"true\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/while-statement.parseB.txt",
    "content": "(Module \n  (CompoundStatement \n    (WhileStatement \n      (Block \n        (SimpleStatement \n          (BreakStatement \"break\")) \n        (SimpleStatement \n          (ContinueStatement \"continue\")) \n        (SimpleStatement \n          (PassStatement \"pass\"))) \n      (Expression \n        (PrimaryExpression \n          (Identifier \"false\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/with-statement.A.py",
    "content": "with a as b:\n  c\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/with-statement.B.py",
    "content": "with b as c:\n  a\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/with-statement.diffA-B.txt",
    "content": "(Statements\n  (Let\n  { (Identifier)\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n    { (Identifier)\n    ->(Identifier) })))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/with-statement.diffB-A.txt",
    "content": "(Statements\n  (Let\n  { (Identifier)\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n    { (Identifier)\n    ->(Identifier) })))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/with-statement.parseA.txt",
    "content": "(Module \n  (CompoundStatement \n    (WithStatement \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"c\")))))) \n      (WithItem \n        (Expression \n          (PrimaryExpression \n            (Identifier \"a\"))) \n        (Expression \n          (PrimaryExpression \n            (Identifier \"b\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/with-statement.parseB.txt",
    "content": "(Module \n  (CompoundStatement \n    (WithStatement \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"a\")))))) \n      (WithItem \n        (Expression \n          (PrimaryExpression \n            (Identifier \"b\"))) \n        (Expression \n          (PrimaryExpression \n            (Identifier \"c\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/with.A.py",
    "content": "with open(nsfile, 'w') as f:\n    found = False\n    for line in lines:\n        found = True\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/with.B.py",
    "content": "with cls._lock:\n    found = False\nwith patch.object(sys, 'stdout', stdout), \\\n     patch.object(sys, 'stderr', stderr):\n    x\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/with.diffA-B.txt",
    "content": "(Statements\n  (Let\n  { (Identifier)\n  ->(Empty) }\n  { (Call\n    {-(Identifier)-}\n    {-(Identifier)-}\n    {-(TextElement)-}\n    {-(Empty)-})\n  ->(MemberAccess\n    {+(Identifier)+}\n    {+(Identifier)+}) }\n    (Statements\n      (Assignment\n        (Identifier)\n        (Boolean))\n    {-(ForEach\n      {-(Identifier)-}\n      {-(Identifier)-}\n      {-(Statements\n        {-(Assignment\n          {-(Identifier)-}\n          {-(Boolean)-})-})-})-}))\n{+(Let\n  {+(Empty)+}\n  {+(Call\n    {+(MemberAccess\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(Identifier)+}\n    {+(TextElement)+}\n    {+(Identifier)+}\n    {+(Empty)+})+}\n  {+(Let\n    {+(Empty)+}\n    {+(Call\n      {+(MemberAccess\n        {+(Identifier)+}\n        {+(Identifier)+})+}\n      {+(Identifier)+}\n      {+(TextElement)+}\n      {+(Identifier)+}\n      {+(Empty)+})+}\n    {+(Statements\n      {+(Identifier)+})+})+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/with.diffB-A.txt",
    "content": "(Statements\n  (Let\n  { (Empty)\n  ->(Identifier) }\n  { (MemberAccess\n    {-(Identifier)-}\n    {-(Identifier)-})\n  ->(Call\n    {+(Identifier)+}\n    {+(Identifier)+}\n    {+(TextElement)+}\n    {+(Empty)+}) }\n    (Statements\n      (Assignment\n        (Identifier)\n        (Boolean))\n    {+(ForEach\n      {+(Identifier)+}\n      {+(Identifier)+}\n      {+(Statements\n        {+(Assignment\n          {+(Identifier)+}\n          {+(Boolean)+})+})+})+}))\n{-(Let\n  {-(Empty)-}\n  {-(Call\n    {-(MemberAccess\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(Identifier)-}\n    {-(TextElement)-}\n    {-(Identifier)-}\n    {-(Empty)-})-}\n  {-(Let\n    {-(Empty)-}\n    {-(Call\n      {-(MemberAccess\n        {-(Identifier)-}\n        {-(Identifier)-})-}\n      {-(Identifier)-}\n      {-(TextElement)-}\n      {-(Identifier)-}\n      {-(Empty)-})-}\n    {-(Statements\n      {-(Identifier)-})-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/with.parseA.txt",
    "content": "(Module \n  (CompoundStatement \n    (WithStatement \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Assignment \n              (ExpressionList \n                (Expression \n                  (PrimaryExpression \n                    (Identifier \"found\")))) \n              (ExpressionList \n                (Expression \n                  (PrimaryExpression \n                    (False \"False\"))))))) \n        (CompoundStatement \n          (ForStatement \n            (Block \n              (SimpleStatement \n                (ExpressionStatement \n                  (Assignment \n                    (ExpressionList \n                      (Expression \n                        (PrimaryExpression \n                          (Identifier \"found\")))) \n                    (ExpressionList \n                      (Expression \n                        (PrimaryExpression \n                          (True \"True\")))))))) \n            (Variables \n              (PrimaryExpression \n                (Identifier \"line\"))) \n            (ExpressionList \n              (Expression \n                (PrimaryExpression \n                  (Identifier \"lines\"))))))) \n      (WithItem \n        (Expression \n          (PrimaryExpression \n            (Call \n              (PrimaryExpression \n                (Identifier \"open\")) \n              (ArgumentList \n                (Expression \n                  (PrimaryExpression \n                    (Identifier \"nsfile\"))) \n                (Expression \n                  (PrimaryExpression \n                    (String))))))) \n        (Expression \n          (PrimaryExpression \n            (Identifier \"f\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/with.parseB.txt",
    "content": "(Module \n  (CompoundStatement \n    (WithStatement \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Assignment \n              (ExpressionList \n                (Expression \n                  (PrimaryExpression \n                    (Identifier \"found\")))) \n              (ExpressionList \n                (Expression \n                  (PrimaryExpression \n                    (False \"False\")))))))) \n      (WithItem \n        (Expression \n          (PrimaryExpression \n            (Attribute \n              (Identifier \"_lock\") \n              (PrimaryExpression \n                (Identifier \"cls\")))))))) \n  (CompoundStatement \n    (WithStatement \n      (Block \n        (SimpleStatement \n          (ExpressionStatement \n            (Expression \n              (PrimaryExpression \n                (Identifier \"x\")))))) \n      (WithItem \n        (Expression \n          (PrimaryExpression \n            (Call \n              (PrimaryExpression \n                (Attribute \n                  (Identifier \"object\") \n                  (PrimaryExpression \n                    (Identifier \"patch\")))) \n              (ArgumentList \n                (Expression \n                  (PrimaryExpression \n                    (Identifier \"sys\"))) \n                (Expression \n                  (PrimaryExpression \n                    (String))) \n                (Expression \n                  (PrimaryExpression \n                    (Identifier \"stdout\")))))))) \n      (WithItem \n        (Expression \n          (PrimaryExpression \n            (Call \n              (PrimaryExpression \n                (Attribute \n                  (Identifier \"object\") \n                  (PrimaryExpression \n                    (Identifier \"patch\")))) \n              (ArgumentList \n                (Expression \n                  (PrimaryExpression \n                    (Identifier \"sys\"))) \n                (Expression \n                  (PrimaryExpression \n                    (String))) \n                (Expression \n                  (PrimaryExpression \n                    (Identifier \"stderr\")))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/yield.A.py",
    "content": "yield\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/yield.B.py",
    "content": "yield\nyield\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/yield.diffA-B.txt",
    "content": "(Statements\n  (Yield\n    (Empty))\n{+(Yield\n  {+(Empty)+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/yield.diffB-A.txt",
    "content": "(Statements\n  (Yield\n    (Empty))\n{-(Yield\n  {-(Empty)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/yield.parseA.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Yield))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/corpus/yield.parseB.txt",
    "content": "(Module \n  (SimpleStatement \n    (ExpressionStatement \n      (Yield))) \n  (SimpleStatement \n    (ExpressionStatement \n      (Yield))))\n"
  },
  {
    "path": "semantic/test/fixtures/python/graphing/conditional/conditional.py",
    "content": "cond = True\n\nif cond:\n    def merle(): pass\n    merle()\nelse:\n    def taako(): pass\n    taako()\n"
  },
  {
    "path": "semantic/test/fixtures/python/graphing/simple/simple.py",
    "content": "def magnus():\n    return \"string\"\n\nmagnus()\n"
  },
  {
    "path": "semantic/test/fixtures/python/graphing/typeerror/typeerror.py",
    "content": "var = 1 + \"thing\"\n\ndef lup(): pass\n\nlup()\n"
  },
  {
    "path": "semantic/test/fixtures/python/graphing/unbound/unbound.py",
    "content": "var = thing + 1\n\ndef lucretia(): pass\n\nlucretia()\n"
  },
  {
    "path": "semantic/test/fixtures/python/import-graph/main.json",
    "content": "{\n  \"modules\": {\n    \"main\": {\n      \"imports\": [\n        {\n          \"span\": {\n            \"start\": [\n              1,\n              1\n            ],\n            \"end\": [\n              1,\n              10\n            ]\n          },\n          \"path\": \"os\",\n          \"symbols\": [],\n          \"alias\": \"os\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              2,\n              8\n            ],\n            \"end\": [\n              2,\n              19\n            ]\n          },\n          \"path\": \"numpy\",\n          \"symbols\": [],\n          \"alias\": \"np\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              3,\n              1\n            ],\n            \"end\": [\n              3,\n              9\n            ]\n          },\n          \"path\": \"a\",\n          \"symbols\": [],\n          \"alias\": \"a\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              3,\n              11\n            ],\n            \"end\": [\n              3,\n              17\n            ]\n          },\n          \"path\": \"b\",\n          \"symbols\": [],\n          \"alias\": \"c\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              4,\n              8\n            ],\n            \"end\": [\n              4,\n              16\n            ]\n          },\n          \"path\": \"b.c\",\n          \"symbols\": [],\n          \"alias\": \"d\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              4,\n              16\n            ],\n            \"end\": [\n              4,\n              19\n            ]\n          },\n          \"path\": \"e\",\n          \"symbols\": [],\n          \"alias\": \"e\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              6,\n              1\n            ],\n            \"end\": [\n              6,\n              16\n            ]\n          },\n          \"path\": \"b\",\n          \"symbols\": [\n            {\n              \"alias\": \"a\",\n              \"name\": \"a\"\n            }\n          ],\n          \"alias\": \"\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              7,\n              1\n            ],\n            \"end\": [\n              7,\n              21\n            ]\n          },\n          \"path\": \"b\",\n          \"symbols\": [\n            {\n              \"alias\": \"c\",\n              \"name\": \"c\"\n            },\n            {\n              \"alias\": \"a\",\n              \"name\": \"a\"\n            }\n          ],\n          \"alias\": \"\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              8,\n              1\n            ],\n            \"end\": [\n              8,\n              16\n            ]\n          },\n          \"path\": \"b\",\n          \"symbols\": [],\n          \"alias\": \"\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              9,\n              1\n            ],\n            \"end\": [\n              9,\n              29\n            ]\n          },\n          \"path\": \"b\",\n          \"symbols\": [\n            {\n              \"alias\": \"x\",\n              \"name\": \"a\"\n            },\n            {\n              \"alias\": \"y\",\n              \"name\": \"b\"\n            }\n          ],\n          \"alias\": \"\"\n        }\n      ],\n      \"name\": \"main\",\n      \"language\": \"Python\",\n      \"declarations\": [\n        {\n          \"span\": {\n            \"start\": [\n              11,\n              1\n            ],\n            \"end\": [\n              13,\n              1\n            ]\n          },\n          \"kind\": \"Function\",\n          \"name\": \"print_cwd\",\n          \"module\": \"main\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              14,\n              1\n            ],\n            \"end\": [\n              17,\n              1\n            ]\n          },\n          \"kind\": \"Function\",\n          \"name\": \"create_array\",\n          \"module\": \"main\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              18,\n              1\n            ],\n            \"end\": [\n              21,\n              1\n            ]\n          },\n          \"kind\": \"Function\",\n          \"name\": \"sum_array\",\n          \"module\": \"main\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              22,\n              1\n            ],\n            \"end\": [\n              24,\n              1\n            ]\n          },\n          \"kind\": \"Function\",\n          \"name\": \"sum_array2\",\n          \"module\": \"main\"\n        }\n      ],\n      \"paths\": [\n        \"test/fixtures/python/import-graph/main.py\"\n      ],\n      \"calls\": [\n        {\n          \"span\": {\n            \"start\": [\n              12,\n              5\n            ],\n            \"end\": [\n              12,\n              23\n            ]\n          },\n          \"symbol\": \"print\",\n          \"targets\": []\n        },\n        {\n          \"span\": {\n            \"start\": [\n              12,\n              11\n            ],\n            \"end\": [\n              12,\n              22\n            ]\n          },\n          \"symbol\": \"getcwd\",\n          \"targets\": [\n            \"os\"\n          ]\n        },\n        {\n          \"span\": {\n            \"start\": [\n              15,\n              9\n            ],\n            \"end\": [\n              15,\n              31\n            ]\n          },\n          \"symbol\": \"array\",\n          \"targets\": [\n            \"np\"\n          ]\n        },\n        {\n          \"span\": {\n            \"start\": [\n              19,\n              13\n            ],\n            \"end\": [\n              19,\n              20\n            ]\n          },\n          \"symbol\": \"sum\",\n          \"targets\": [\n            \"x\"\n          ]\n        },\n        {\n          \"span\": {\n            \"start\": [\n              23,\n              12\n            ],\n            \"end\": [\n              23,\n              19\n            ]\n          },\n          \"symbol\": \"sum\",\n          \"targets\": [\n            \"x\"\n          ]\n        },\n        {\n          \"span\": {\n            \"start\": [\n              26,\n              5\n            ],\n            \"end\": [\n              26,\n              45\n            ]\n          },\n          \"symbol\": \"print\",\n          \"targets\": []\n        },\n        {\n          \"span\": {\n            \"start\": [\n              27,\n              5\n            ],\n            \"end\": [\n              27,\n              16\n            ]\n          },\n          \"symbol\": \"print_cwd\",\n          \"targets\": []\n        },\n        {\n          \"span\": {\n            \"start\": [\n              28,\n              9\n            ],\n            \"end\": [\n              28,\n              23\n            ]\n          },\n          \"symbol\": \"create_array\",\n          \"targets\": []\n        },\n        {\n          \"span\": {\n            \"start\": [\n              29,\n              13\n            ],\n            \"end\": [\n              29,\n              25\n            ]\n          },\n          \"symbol\": \"sum_array\",\n          \"targets\": []\n        },\n        {\n          \"span\": {\n            \"start\": [\n              30,\n              14\n            ],\n            \"end\": [\n              30,\n              27\n            ]\n          },\n          \"symbol\": \"sum_array2\",\n          \"targets\": []\n        },\n        {\n          \"span\": {\n            \"start\": [\n              31,\n              5\n            ],\n            \"end\": [\n              31,\n              55\n            ]\n          },\n          \"symbol\": \"print\",\n          \"targets\": []\n        },\n        {\n          \"span\": {\n            \"start\": [\n              31,\n              11\n            ],\n            \"end\": [\n              31,\n              54\n            ]\n          },\n          \"symbol\": \"format\",\n          \"targets\": [\n            \"'-' * 60 + '\\\\nYour sum is {}'\"\n          ]\n        },\n        {\n          \"span\": {\n            \"start\": [\n              32,\n              5\n            ],\n            \"end\": [\n              32,\n              70\n            ]\n          },\n          \"symbol\": \"print\",\n          \"targets\": []\n        },\n        {\n          \"span\": {\n            \"start\": [\n              32,\n              11\n            ],\n            \"end\": [\n              32,\n              58\n            ]\n          },\n          \"symbol\": \"format\",\n          \"targets\": [\n            \"'-' * 60 + '\\\\nYour sum2 is {}\\\\n'\"\n          ]\n        }\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/python/import-graph/main.py",
    "content": "import os\nimport numpy as np\nimport a, b as c\nimport b.c as d, e\n\nfrom b import a\nfrom b import (c, a)\nfrom b import *\nfrom b import a as x, b as y\n\ndef print_cwd():\n    print(os.getcwd())\n\ndef create_array():\n    x = np.array([1, 2, 3, 4])\n    return x\n\ndef sum_array(x):\n    x_sum = x.sum()\n    return x_sum\n\ndef sum_array2(x):\n    return x.sum()\n\nif __name__ == '__main__':\n    print('-' * 60 + '\\nCurrent directory:')\n    print_cwd()\n    x = create_array()\n    x_sum = sum_array(x)\n    x_sum2 = sum_array2(x)\n    print('-' * 60 + '\\nYour sum is {}'.format(x_sum))\n    print('-' * 60 + '\\nYour sum2 is {}\\n'.format(x_sum2) + '-' * 60)\n"
  },
  {
    "path": "semantic/test/fixtures/python/matching/docstrings.py",
    "content": "def foo():\n    \"\"\"here's a docstring\"\"\"\n    pass\n\ndef bar():\n    \"\"\"and another\"\"\"\n    pass\n"
  },
  {
    "path": "semantic/test/fixtures/python/matching/docstrings_nested.py",
    "content": "def foo():\n    \"\"\"here's a docstring\"\"\"\n    pass\n\ndef bar():\n    \"\"\"and another\"\"\"\n\n    def dang():\n        \"\"\"and a nested one\"\"\"\n        pass\n"
  },
  {
    "path": "semantic/test/fixtures/python/reprinting/function.out.py",
    "content": "def Foo(x):\n    if True:\n        return x\n    else:\n        return 0\n\nFoo(1)\n"
  },
  {
    "path": "semantic/test/fixtures/python/reprinting/function.py",
    "content": "def Foo(x):\n    if True:\n        return x\n    else:\n        return 0\n\nFoo(1)\n"
  },
  {
    "path": "semantic/test/fixtures/python/tags/class.py",
    "content": "class Foo:\n    \"\"\"The Foo class\"\"\"\n    def f(self):\n        \"\"\"The f method\"\"\"\n        return 0\n"
  },
  {
    "path": "semantic/test/fixtures/python/tags/multiline.py",
    "content": "def Foo(x,\n  b):\n    return x\n\nFoo(1, 2)\n"
  },
  {
    "path": "semantic/test/fixtures/python/tags/simple_function_with_docs.py",
    "content": "def Foo(x):\n    \"\"\"This is the foo function\"\"\"\n    return x\n"
  },
  {
    "path": "semantic/test/fixtures/python/tags/simple_functions.py",
    "content": "def Foo(x):\n    if True:\n        return x\n    else:\n        return 0\n\ndef Bar():\n    def local():\n        return 1\n        \n    return 0\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/analysis/break.rb",
    "content": "ii = 0\nwhile ii < 5\n  ii = ii + 1\n  if ii == 3\n    break\n  end\nend\n\nii\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/analysis/call.rb",
    "content": "def foo(x, y)\n  x + y\nend\n\nfoo(123, 456)\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/analysis/classes.rb",
    "content": "class A\n  def self.hi\n    \"<hi>\"\n  end\nend\n\nclass A\n  def self.hi\n    \"<hello>\"\n  end\n  class B\n    def self.hi\n      \"<B>\"\n    end\n  end\nend\n\nA.hi()\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/analysis/early-return.rb",
    "content": "def foo\n  return 123\n  456\nend\n\nfoo\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/analysis/foo.rb",
    "content": "def foo(x)\n  return x\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/analysis/line.rb",
    "content": "# pushing us down a couple of lines to confirm\n\ndef foo\n  __LINE__\nend\n\nfoo()\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/analysis/load-wrap.rb",
    "content": "load \"./foo.rb\", true\n\nfoo(1)\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/analysis/load.rb",
    "content": "load \"./foo.rb\"\n\nfoo(1)\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/analysis/main.rb",
    "content": "require_relative \"foo\"\n\nfoo(1)\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/analysis/modules.rb",
    "content": "module Bar\n  def self.hi\n    \"<hi>\"\n  end\nend\n\nmodule Bar\n  def self.hi\n    \"<hello>\"\n  end\n  module Baz\n    def self.baz\n      \"<baz>\"\n    end\n  end\nend\n\nBar.hi()\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/analysis/next.rb",
    "content": "ii = 0\njj = 0\nwhile ii < 5\n  ii = ii + 1\n  jj = jj + 1\n  if (ii == 3) && (jj == 3)\n    ii = 0\n    next\n  end\nend\n\njj\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/analysis/preluded.rb",
    "content": "class Foo < Object\n  def inspect\n    \"<foo>\"\n  end\nend\n\nFoo.inspect()\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/analysis/puts.rb",
    "content": "puts \"hello\"\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/analysis/src/foo.rb",
    "content": "def foo()\n  return \"in foo\"\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/analysis/src/main.rb",
    "content": "require File.join(__FILE__, \"../foo.rb\")\nrequire \"foo\"\n\nbar()\n\n# def foo\n#   return \"in foo\"\n# end\n\nfoo()"
  },
  {
    "path": "semantic/test/fixtures/ruby/analysis/subclass.rb",
    "content": "class Foo\n  def inspect\n    \"<foo>\"\n  end\n\n  def foo\n    \"the foo method\"\n  end\nend\n\nclass Bar < Foo\n  def inspect\n    \"<bar>\"\n  end\nend\n\nclass Bar\n  def baz\n  end\nend\n\nBar.inspect()\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/alias.A.rb",
    "content": "alias :foo :bar\nalias foo bar\nalias $FOO $&\nalias foo +\nalias foo= bar=\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/alias.parseA.txt",
    "content": "(Program \n  (Statement \n    (Alias \n      (MethodName \n        (Symbol)) \n      (MethodName \n        (Symbol)))) \n  (Statement \n    (Alias \n      (MethodName \n        (Identifier \"bar\")) \n      (MethodName \n        (Identifier \"foo\")))) \n  (Statement \n    (Alias \n      (MethodName \n        (GlobalVariable \"$&\")) \n      (MethodName \n        (GlobalVariable \"$FOO\")))) \n  (Statement \n    (Alias \n      (MethodName \n        (Operator \"+\")) \n      (MethodName \n        (Identifier \"foo\")))) \n  (Statement \n    (Alias \n      (MethodName \n        (Setter \n          (Identifier \"bar\"))) \n      (MethodName \n        (Setter \n          (Identifier \"foo\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/and-or.A.rb",
    "content": "foo and bar\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/and-or.B.rb",
    "content": "foo or bar\na or b and c\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/and-or.diffA-B.txt",
    "content": "(Statements\n{+(LowPrecedenceOr\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n  (LowPrecedenceAnd\n  { (Send\n    {-(Identifier)-})\n  ->(LowPrecedenceOr\n    {+(Send\n      {+(Identifier)+})+}\n    {+(Send\n      {+(Identifier)+})+}) }\n    (Send\n    { (Identifier)\n    ->(Identifier) })))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/and-or.diffB-A.txt",
    "content": "(Statements\n{+(LowPrecedenceAnd\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n{-(LowPrecedenceOr\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-}\n{-(LowPrecedenceAnd\n  {-(LowPrecedenceOr\n    {-(Send\n      {-(Identifier)-})-}\n    {-(Send\n      {-(Identifier)-})-})-}\n  {-(Send\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/and-or.parseA.txt",
    "content": "(Program \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"foo\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"bar\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/and-or.parseB.txt",
    "content": "(Program \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"foo\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"bar\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Binary \n          (Token) \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"a\"))))) \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"b\"))))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"c\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/array.A.rb",
    "content": "[ 1, 2, 3]\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/array.B.rb",
    "content": "['a', 'b', 'c']\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/array.diffA-B.txt",
    "content": "(Statements\n  (Array\n  {+(TextElement)+}\n  {+(TextElement)+}\n  {+(TextElement)+}\n  {-(Integer)-}\n  {-(Integer)-}\n  {-(Integer)-}))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/array.diffB-A.txt",
    "content": "(Statements\n  (Array\n  {+(Integer)+}\n  {+(Integer)+}\n  {+(Integer)+}\n  {-(TextElement)-}\n  {-(TextElement)-}\n  {-(TextElement)-}))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/array.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Array \n          (Arg \n            (Primary \n              (Integer \"1\"))) \n          (Arg \n            (Primary \n              (Integer \"2\"))) \n          (Arg \n            (Primary \n              (Integer \"3\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/array.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Array \n          (Arg \n            (Primary \n              (String))) \n          (Arg \n            (Primary \n              (String))) \n          (Arg \n            (Primary \n              (String))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/assignment.A.rb",
    "content": "x = 0\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/assignment.B.rb",
    "content": "x = 1\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/assignment.diffA-B.txt",
    "content": "(Statements\n  (Assignment\n    (Identifier)\n  { (Integer)\n  ->(Integer) }))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/assignment.diffB-A.txt",
    "content": "(Statements\n  (Assignment\n    (Identifier)\n  { (Integer)\n  ->(Integer) }))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/assignment.parseA.txt",
    "content": "(Program \n  (Statement \n    (Assignment \n      (Lhs \n        (Variable \n          (Identifier \"x\"))) \n      (Arg \n        (Primary \n          (Integer \"0\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/assignment.parseB.txt",
    "content": "(Program \n  (Statement \n    (Assignment \n      (Lhs \n        (Variable \n          (Identifier \"x\"))) \n      (Arg \n        (Primary \n          (Integer \"1\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/begin-block.A.rb",
    "content": "BEGIN {\n foo\n}\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/begin-block.B.rb",
    "content": "foo\nBEGIN {\n bar\n}\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/begin-block.diffA-B.txt",
    "content": "(Statements\n{+(Send\n  {+(Identifier)+})+}\n  (ScopeEntry\n    (Send\n    { (Identifier)\n    ->(Identifier) })))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/begin-block.diffB-A.txt",
    "content": "(Statements\n{+(ScopeEntry\n  {+(Send\n    {+(Identifier)+})+})+}\n{-(Send\n  {-(Identifier)-})-}\n{-(ScopeEntry\n  {-(Send\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/begin-block.parseA.txt",
    "content": "(Program \n  (Statement \n    (BeginBlock \n      (Statement \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"foo\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/begin-block.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (Variable \n            (Identifier \"foo\")))))) \n  (Statement \n    (BeginBlock \n      (Statement \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"bar\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/begin.A.rb",
    "content": "def foo\nbegin\nend\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/begin.B.rb",
    "content": "def foo\nbegin\n  puts 'hi'\nend\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/begin.diffA-B.txt",
    "content": "(Statements\n  (Method\n    (Empty)\n    (Identifier)\n    (Statements\n      (Try\n      { (Statements)\n      ->(Send\n        {+(Identifier)+}\n        {+(TextElement)+}) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/begin.diffB-A.txt",
    "content": "(Statements\n  (Method\n    (Empty)\n    (Identifier)\n    (Statements\n      (Try\n      { (Send\n        {-(Identifier)-}\n        {-(TextElement)-})\n      ->(Statements) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/begin.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Identifier \"foo\")) \n          (Statement \n            (Arg \n              (Primary \n                (Begin)))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/begin.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Identifier \"foo\")) \n          (Statement \n            (Arg \n              (Primary \n                (Begin \n                  (Statement \n                    (MethodCall \n                      (ArgumentList \n                        (Arg \n                          (Primary \n                            (String)))) \n                      (Variable \n                        (Identifier \"puts\")))))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/binary.A.rb",
    "content": "a && b\na and b\na or b\na || b\na + b\n# a - b\na << b\na >> b\n\na | b\na & b\na ^ b\n\na == b\na != b\na === b\na <=> b\na =~ b\na !~ b\n\na < b\na <= b\na > b\na >= b\n\n# a * b\na / b\na % b\na ** b\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/binary.parseA.txt",
    "content": "(Program \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/bitwise-operator.A.rb",
    "content": "a | b\na >> b\na ^ b\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/bitwise-operator.B.rb",
    "content": "a & b\na << b\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/bitwise-operator.diffA-B.txt",
    "content": "(Statements\n{+(BAnd\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n{+(LShift\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n{-(BOr\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-}\n{-(RShift\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-}\n{-(BXOr\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/bitwise-operator.diffB-A.txt",
    "content": "(Statements\n{+(BOr\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n{+(RShift\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n{+(BXOr\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n{-(BAnd\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-}\n{-(LShift\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/bitwise-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/bitwise-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/boolean-operator.A.rb",
    "content": "a || b\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/boolean-operator.B.rb",
    "content": "a && b\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/boolean-operator.diffA-B.txt",
    "content": "(Statements\n{+(And\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n{-(Or\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/boolean-operator.diffB-A.txt",
    "content": "(Statements\n{+(Or\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n{-(And\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/boolean-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/boolean-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/break.A.rb",
    "content": "while b\n  break\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/break.B.rb",
    "content": "until b\n  break\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/break.diffA-B.txt",
    "content": "(Statements\n  (While\n  { (Send\n    {-(Identifier)-})\n  ->(Not\n    {+(Send\n      {+(Identifier)+})+}) }\n    (Break\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/break.diffB-A.txt",
    "content": "(Statements\n  (While\n  { (Not\n    {-(Send\n      {-(Identifier)-})-})\n  ->(Send\n    {+(Identifier)+}) }\n    (Break\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/break.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (While \n          (Do \n            (Statement \n              (Break))) \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"b\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/break.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Until \n          (Do \n            (Statement \n              (Break))) \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"b\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/calls.A.rb",
    "content": "foo(a, b, c: 1, :d => true)\na.b()\nfoo (b), a\nfoo(&block)\nfoo(*a)\nfoo(**b)\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/calls.parseA.txt",
    "content": "(Program \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"a\"))))) \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"b\"))))) \n        (Pair \n          (Arg \n            (Primary \n              (Integer \"1\"))) \n          (Symbol)) \n        (Pair \n          (Arg \n            (Primary \n              (Lhs \n                (True \"true\")))) \n          (Symbol))) \n      (Variable \n        (Identifier \"foo\")))) \n  (Statement \n    (MethodCall \n      (ArgumentList) \n      (Call \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\")))) \n        (Identifier \"b\")))) \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (Arg \n          (Primary \n            (ParenthesizedStatements \n              (Statement \n                (Arg \n                  (Primary \n                    (Lhs \n                      (Variable \n                        (Identifier \"b\"))))))))) \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"a\")))))) \n      (Variable \n        (Identifier \"foo\")))) \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (BlockArgument \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"block\"))))))) \n      (Variable \n        (Identifier \"foo\")))) \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (SplatArgument \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"a\"))))))) \n      (Variable \n        (Identifier \"foo\")))) \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (HashSplatArgument \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"b\"))))))) \n      (Variable \n        (Identifier \"foo\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/chained-string.A.rb",
    "content": "\"a\" \"b\"\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/chained-string.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (ChainedString \n          (String) \n          (String))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/class.A.rb",
    "content": "class Foo < Super\n  def test; end\nend\n\nclass Foo::Bar\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/class.B.rb",
    "content": "class Foo\n  def test; end\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/class.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n  {-(Identifier)-}\n    (Method\n      (Empty)\n      (Identifier)\n      (Statements)))\n{-(Class\n  {-(ScopeResolution\n    {-(Identifier)-}\n    {-(Identifier)-})-}\n  {-(Statements)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/class.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (Identifier)\n  {+(Identifier)+}\n    (Method\n      (Empty)\n      (Identifier)\n      (Statements)))\n{+(Class\n  {+(ScopeResolution\n    {+(Identifier)+}\n    {+(Identifier)+})+}\n  {+(Statements)+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/class.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Class \n          (Constant \"Foo\") \n          (Superclass \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Constant \"Super\")))))) \n          (Statement \n            (Arg \n              (Primary \n                (Method \n                  (MethodName \n                    (Identifier \"test\")))))))))) \n  (Statement \n    (Arg \n      (Primary \n        (Class \n          (ScopeResolution \n            (Constant \"Bar\") \n            (Primary \n              (Lhs \n                (Variable \n                  (Constant \"Foo\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/class.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Class \n          (Constant \"Foo\") \n          (Statement \n            (Arg \n              (Primary \n                (Method \n                  (MethodName \n                    (Identifier \"test\")))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/comment.A.rb",
    "content": "# This is a comment\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/comment.B.rb",
    "content": "=begin\nThis is a multiline\ncomment\n=end\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/comment.diffA-B.txt",
    "content": "(Statements\n  (Context\n  { (Comment)\n  ->(Comment) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/comment.diffB-A.txt",
    "content": "(Statements\n  (Context\n  { (Comment)\n  ->(Comment) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/comment.parseA.txt",
    "content": "(Program)\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/comment.parseB.txt",
    "content": "(Program)\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/comparision-operator.A.rb",
    "content": "x < y\na > b\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/comparision-operator.B.rb",
    "content": "x <= y\na >= b\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/comparision-operator.diffA-B.txt",
    "content": "(Statements\n{+(LessThanEqual\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n{+(GreaterThanEqual\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n{-(LessThan\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-}\n{-(GreaterThan\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/comparision-operator.diffB-A.txt",
    "content": "(Statements\n{+(LessThan\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n{+(GreaterThan\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n{-(LessThanEqual\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-}\n{-(GreaterThanEqual\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/comparision-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"x\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"y\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/comparision-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"x\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"y\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"a\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"b\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/conditional-assignment.A.rb",
    "content": "x ||= 5\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/conditional-assignment.B.rb",
    "content": "x &&= 7\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/conditional-assignment.diffA-B.txt",
    "content": "(Statements\n  (AugmentedAssignment\n  { (Or\n    {-(Identifier)-}\n    {-(Integer)-})\n  ->(And\n    {+(Identifier)+}\n    {+(Integer)+}) }))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/conditional-assignment.diffB-A.txt",
    "content": "(Statements\n  (AugmentedAssignment\n  { (And\n    {-(Identifier)-}\n    {-(Integer)-})\n  ->(Or\n    {+(Identifier)+}\n    {+(Integer)+}) }))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/conditional-assignment.parseA.txt",
    "content": "(Program \n  (Statement \n    (OperatorAssignment \n      (Lhs \n        (Variable \n          (Identifier \"x\"))) \n      (Arg \n        (Primary \n          (Integer \"5\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/conditional-assignment.parseB.txt",
    "content": "(Program \n  (Statement \n    (OperatorAssignment \n      (Lhs \n        (Variable \n          (Identifier \"x\"))) \n      (Arg \n        (Primary \n          (Integer \"7\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/delimiter.A.rb",
    "content": "%q#a#\n%q<a<b>c>\n%#a#\n%Q#a#\n%<a<b>c>\n%Q<a<b>c>\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/delimiter.B.rb",
    "content": "%q/b/\n%q{d{e}f}\n%/b/\n%Q/b/\n%{d{e}f}\n%Q{d{e}f}\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/delimiter.diffA-B.txt",
    "content": "(Statements\n{ (TextElement)\n->(TextElement) }\n{+(TextElement)+}\n{+(TextElement)+}\n{+(TextElement)+}\n{+(TextElement)+}\n{+(TextElement)+}\n{-(TextElement)-}\n{-(TextElement)-}\n{-(TextElement)-}\n{-(TextElement)-}\n{-(TextElement)-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/delimiter.diffB-A.txt",
    "content": "(Statements\n{ (TextElement)\n->(TextElement) }\n{+(TextElement)+}\n{+(TextElement)+}\n{ (TextElement)\n->(TextElement) }\n{+(TextElement)+}\n{+(TextElement)+}\n{-(TextElement)-}\n{-(TextElement)-}\n{-(TextElement)-}\n{-(TextElement)-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/delimiter.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (String)))) \n  (Statement \n    (Arg \n      (Primary \n        (String)))) \n  (Statement \n    (Arg \n      (Primary \n        (String)))) \n  (Statement \n    (Arg \n      (Primary \n        (String)))) \n  (Statement \n    (Arg \n      (Primary \n        (String)))) \n  (Statement \n    (Arg \n      (Primary \n        (String)))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/delimiter.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (String)))) \n  (Statement \n    (Arg \n      (Primary \n        (String)))) \n  (Statement \n    (Arg \n      (Primary \n        (String)))) \n  (Statement \n    (Arg \n      (Primary \n        (String)))) \n  (Statement \n    (Arg \n      (Primary \n        (String)))) \n  (Statement \n    (Arg \n      (Primary \n        (String)))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/element-reference.A.rb",
    "content": "foo[bar]\nfoo[:bar]\nfoo[bar] = 1\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/element-reference.B.rb",
    "content": "x[\"b\"]\nx[:\"c\"]\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/element-reference.diffA-B.txt",
    "content": "(Statements\n  (Subscript\n    (Send\n    { (Identifier)\n    ->(Identifier) })\n  {+(TextElement)+}\n  {-(Send\n    {-(Identifier)-})-})\n  (Subscript\n    (Send\n    { (Identifier)\n    ->(Identifier) })\n  { (SymbolElement)\n  ->(SymbolElement) })\n{-(Assignment\n  {-(Subscript\n    {-(Send\n      {-(Identifier)-})-}\n    {-(Send\n      {-(Identifier)-})-})-}\n  {-(Integer)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/element-reference.diffB-A.txt",
    "content": "(Statements\n  (Subscript\n    (Send\n    { (Identifier)\n    ->(Identifier) })\n  {+(Send\n    {+(Identifier)+})+}\n  {-(TextElement)-})\n  (Subscript\n    (Send\n    { (Identifier)\n    ->(Identifier) })\n  { (SymbolElement)\n  ->(SymbolElement) })\n{+(Assignment\n  {+(Subscript\n    {+(Send\n      {+(Identifier)+})+}\n    {+(Send\n      {+(Identifier)+})+})+}\n  {+(Integer)+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/element-reference.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (ElementReference \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"foo\")))) \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"bar\")))))))))) \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (ElementReference \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"foo\")))) \n            (Arg \n              (Primary \n                (Symbol)))))))) \n  (Statement \n    (Assignment \n      (Lhs \n        (ElementReference \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"foo\")))) \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"bar\"))))))) \n      (Arg \n        (Primary \n          (Integer \"1\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/element-reference.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (ElementReference \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"x\")))) \n            (Arg \n              (Primary \n                (String)))))))) \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (ElementReference \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"x\")))) \n            (Arg \n              (Primary \n                (Symbol)))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/else.A.rb",
    "content": "begin\n  foo()\nelse\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/else.B.rb",
    "content": "begin\n  foo()\nelse\n  bar()\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/else.diffA-B.txt",
    "content": "(Statements\n  (Try\n    (Statements\n      (Send\n        (Identifier))\n      (Else\n        (Empty)\n      { (Statements)\n      ->(Send\n        {+(Identifier)+}) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/else.diffB-A.txt",
    "content": "(Statements\n  (Try\n    (Statements\n      (Send\n        (Identifier))\n      (Else\n        (Empty)\n      { (Send\n        {-(Identifier)-})\n      ->(Statements) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/else.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Begin \n          (Statement \n            (MethodCall \n              (ArgumentList) \n              (Variable \n                (Identifier \"foo\")))) \n          (Else))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/else.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Begin \n          (Statement \n            (MethodCall \n              (ArgumentList) \n              (Variable \n                (Identifier \"foo\")))) \n          (Else \n            (Statement \n              (MethodCall \n                (ArgumentList) \n                (Variable \n                  (Identifier \"bar\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/elsif.A.rb",
    "content": "if bar\n  foo()\nelsif baz\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/elsif.B.rb",
    "content": "if bar\n  foo()\nelsif baz\n  qoz()\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/elsif.diffA-B.txt",
    "content": "(Statements\n  (If\n    (Send\n      (Identifier))\n    (Statements\n      (Send\n        (Identifier)))\n    (If\n      (Send\n        (Identifier))\n      (Statements\n      {+(Send\n        {+(Identifier)+})+})\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/elsif.diffB-A.txt",
    "content": "(Statements\n  (If\n    (Send\n      (Identifier))\n    (Statements\n      (Send\n        (Identifier)))\n    (If\n      (Send\n        (Identifier))\n      (Statements\n      {-(Send\n        {-(Identifier)-})-})\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/elsif.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (If \n          (Elsif \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"baz\"))))))) \n          (Then \n            (Statement \n              (MethodCall \n                (ArgumentList) \n                (Variable \n                  (Identifier \"foo\"))))) \n          (Statement \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"bar\")))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/elsif.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (If \n          (Elsif \n            (Then \n              (Statement \n                (MethodCall \n                  (ArgumentList) \n                  (Variable \n                    (Identifier \"qoz\"))))) \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"baz\"))))))) \n          (Then \n            (Statement \n              (MethodCall \n                (ArgumentList) \n                (Variable \n                  (Identifier \"foo\"))))) \n          (Statement \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"bar\")))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/empty-statement.A.rb",
    "content": ";\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/empty-statement.parseA.txt",
    "content": "(Program \n  (EmptyStatement \";\"))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/end-block.A.rb",
    "content": "END {\n foo\n}\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/end-block.B.rb",
    "content": "foo\nEND {\n bar\n}\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/end-block.diffA-B.txt",
    "content": "(Statements\n{+(Send\n  {+(Identifier)+})+}\n  (ScopeExit\n    (Send\n    { (Identifier)\n    ->(Identifier) })))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/end-block.diffB-A.txt",
    "content": "(Statements\n{+(ScopeExit\n  {+(Send\n    {+(Identifier)+})+})+}\n{-(Send\n  {-(Identifier)-})-}\n{-(ScopeExit\n  {-(Send\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/end-block.parseA.txt",
    "content": "(Program \n  (Statement \n    (EndBlock \n      (Statement \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"foo\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/end-block.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (Variable \n            (Identifier \"foo\")))))) \n  (Statement \n    (EndBlock \n      (Statement \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"bar\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/ensure.A.rb",
    "content": "begin\n  foo\nensure\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/ensure.B.rb",
    "content": "begin\n  foo\nensure\n  bar\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/ensure.diffA-B.txt",
    "content": "(Statements\n  (Try\n    (Statements\n      (Send\n        (Identifier))\n      (Finally\n      { (Statements)\n      ->(Send\n        {+(Identifier)+}) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/ensure.diffB-A.txt",
    "content": "(Statements\n  (Try\n    (Statements\n      (Send\n        (Identifier))\n      (Finally\n      { (Send\n        {-(Identifier)-})\n      ->(Statements) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/ensure.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Begin \n          (Statement \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"foo\")))))) \n          (Ensure))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/ensure.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Begin \n          (Statement \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"foo\")))))) \n          (Ensure \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"bar\"))))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/for.A.rb",
    "content": "for x in y\n  f\nend\n\nfor x, y in z do\n  f\nend\n\nfor n in 1..3 do true end\n\nfor n, m in 1..3 do true end\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/for.B.rb",
    "content": "for i in [1,2,3] do\n  print i\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/for.diffA-B.txt",
    "content": "(Statements\n{+(ForEach\n  {+(Statements\n    {+(Send\n      {+(Identifier)+})+})+}\n  {+(Array\n    {+(Integer)+}\n    {+(Integer)+}\n    {+(Integer)+})+}\n  {+(Send\n    {+(Identifier)+}\n    {+(Send\n      {+(Identifier)+})+})+})+}\n{-(ForEach\n  {-(Statements\n    {-(Send\n      {-(Identifier)-})-})-}\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-}\n{-(ForEach\n  {-(Statements\n    {-(Send\n      {-(Identifier)-})-}\n    {-(Send\n      {-(Identifier)-})-})-}\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-}\n{-(ForEach\n  {-(Statements\n    {-(Send\n      {-(Identifier)-})-})-}\n  {-(Enumeration\n    {-(Integer)-}\n    {-(Integer)-}\n    {-(Empty)-})-}\n  {-(Boolean)-})-}\n{-(ForEach\n  {-(Statements\n    {-(Send\n      {-(Identifier)-})-}\n    {-(Send\n      {-(Identifier)-})-})-}\n  {-(Enumeration\n    {-(Integer)-}\n    {-(Integer)-}\n    {-(Empty)-})-}\n  {-(Boolean)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/for.diffB-A.txt",
    "content": "(Statements\n{+(ForEach\n  {+(Statements\n    {+(Send\n      {+(Identifier)+})+})+}\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n{+(ForEach\n  {+(Statements\n    {+(Send\n      {+(Identifier)+})+}\n    {+(Send\n      {+(Identifier)+})+})+}\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n  (ForEach\n    (Statements\n      (Send\n      { (Identifier)\n      ->(Identifier) }))\n  { (Array\n    {-(Integer)-}\n    {-(Integer)-}\n    {-(Integer)-})\n  ->(Enumeration\n    {+(Integer)+}\n    {+(Integer)+}\n    {+(Empty)+}) }\n  { (Send\n    {-(Identifier)-}\n    {-(Send\n      {-(Identifier)-})-})\n  ->(Boolean) })\n{+(ForEach\n  {+(Statements\n    {+(Send\n      {+(Identifier)+})+}\n    {+(Send\n      {+(Identifier)+})+})+}\n  {+(Enumeration\n    {+(Integer)+}\n    {+(Integer)+}\n    {+(Empty)+})+}\n  {+(Boolean)+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/for.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (For \n          (Lhs \n            (Variable \n              (Identifier \"x\"))) \n          (Do \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"f\"))))))) \n          (In \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"y\")))))))))) \n  (Statement \n    (Arg \n      (Primary \n        (For \n          (Lhs \n            (Variable \n              (Identifier \"x\"))) \n          (Lhs \n            (Variable \n              (Identifier \"y\"))) \n          (Do \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"f\"))))))) \n          (In \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"z\")))))))))) \n  (Statement \n    (Arg \n      (Primary \n        (For \n          (Lhs \n            (Variable \n              (Identifier \"n\"))) \n          (Do \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (True \"true\")))))) \n          (In \n            (Arg \n              (Range \n                (Arg \n                  (Primary \n                    (Integer \"1\"))) \n                (Arg \n                  (Primary \n                    (Integer \"3\")))))))))) \n  (Statement \n    (Arg \n      (Primary \n        (For \n          (Lhs \n            (Variable \n              (Identifier \"n\"))) \n          (Lhs \n            (Variable \n              (Identifier \"m\"))) \n          (Do \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (True \"true\")))))) \n          (In \n            (Arg \n              (Range \n                (Arg \n                  (Primary \n                    (Integer \"1\"))) \n                (Arg \n                  (Primary \n                    (Integer \"3\")))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/for.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (For \n          (Lhs \n            (Variable \n              (Identifier \"i\"))) \n          (Do \n            (Statement \n              (MethodCall \n                (ArgumentList \n                  (Arg \n                    (Primary \n                      (Lhs \n                        (Variable \n                          (Identifier \"i\")))))) \n                (Variable \n                  (Identifier \"print\"))))) \n          (In \n            (Arg \n              (Primary \n                (Array \n                  (Arg \n                    (Primary \n                      (Integer \"1\"))) \n                  (Arg \n                    (Primary \n                      (Integer \"2\"))) \n                  (Arg \n                    (Primary \n                      (Integer \"3\"))))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/hash.A.rb",
    "content": "{ :key1 => \"value\", :key2 => 1, \"key3\" => false, :\"symbol_key\" => 10 }\n{}\n{\n  #comment\n  a: 1, # comment\n  #comment\n  'a' => 1\n  #comment\n}\n{\n  #foo\n}\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/hash.B.rb",
    "content": "{ key1: \"changed value\", key2: 2, key3: true }\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/hash.diffA-B.txt",
    "content": "(Statements\n  (Hash\n    (KeyValue\n    { (SymbolElement)\n    ->(SymbolElement) }\n    { (TextElement)\n    ->(TextElement) })\n    (KeyValue\n    { (SymbolElement)\n    ->(SymbolElement) }\n    { (Integer)\n    ->(Integer) })\n    (KeyValue\n    { (TextElement)\n    ->(SymbolElement) }\n    { (Boolean)\n    ->(Boolean) })\n  {-(KeyValue\n    {-(SymbolElement)-}\n    {-(Integer)-})-})\n{-(Hash)-}\n{-(Hash\n  {-(Context\n    {-(Comment)-}\n    {-(KeyValue\n      {-(SymbolElement)-}\n      {-(Integer)-})-})-}\n  {-(Context\n    {-(Comment)-}\n    {-(Comment)-}\n    {-(KeyValue\n      {-(TextElement)-}\n      {-(Integer)-})-})-}\n  {-(Context\n    {-(Comment)-}\n    {-(Empty)-})-})-}\n{-(Hash\n  {-(Context\n    {-(Comment)-}\n    {-(Empty)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/hash.diffB-A.txt",
    "content": "(Statements\n  (Hash\n    (KeyValue\n    { (SymbolElement)\n    ->(SymbolElement) }\n    { (TextElement)\n    ->(TextElement) })\n    (KeyValue\n    { (SymbolElement)\n    ->(SymbolElement) }\n    { (Integer)\n    ->(Integer) })\n    (KeyValue\n    { (SymbolElement)\n    ->(TextElement) }\n    { (Boolean)\n    ->(Boolean) })\n  {+(KeyValue\n    {+(SymbolElement)+}\n    {+(Integer)+})+})\n{+(Hash)+}\n{+(Hash\n  {+(Context\n    {+(Comment)+}\n    {+(KeyValue\n      {+(SymbolElement)+}\n      {+(Integer)+})+})+}\n  {+(Context\n    {+(Comment)+}\n    {+(Comment)+}\n    {+(KeyValue\n      {+(TextElement)+}\n      {+(Integer)+})+})+}\n  {+(Context\n    {+(Comment)+}\n    {+(Empty)+})+})+}\n{+(Hash\n  {+(Context\n    {+(Comment)+}\n    {+(Empty)+})+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/hash.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Hash \n          (Pair \n            (Arg \n              (Primary \n                (String))) \n            (Symbol)) \n          (Pair \n            (Arg \n              (Primary \n                (Integer \"1\"))) \n            (Symbol)) \n          (Pair \n            (Arg \n              (Primary \n                (Lhs \n                  (False \"false\")))) \n            (String)) \n          (Pair \n            (Arg \n              (Primary \n                (Integer \"10\"))) \n            (Symbol)))))) \n  (Statement \n    (Arg \n      (Primary \n        (Hash)))) \n  (Statement \n    (Arg \n      (Primary \n        (Hash \n          (Pair \n            (Arg \n              (Primary \n                (Integer \"1\"))) \n            (Symbol)) \n          (Pair \n            (Arg \n              (Primary \n                (Integer \"1\"))) \n            (String)))))) \n  (Statement \n    (Arg \n      (Primary \n        (Hash)))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/hash.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Hash \n          (Pair \n            (Arg \n              (Primary \n                (String))) \n            (Symbol)) \n          (Pair \n            (Arg \n              (Primary \n                (Integer \"2\"))) \n            (Symbol)) \n          (Pair \n            (Arg \n              (Primary \n                (Lhs \n                  (True \"true\")))) \n            (Symbol)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/heredoc.A.rb",
    "content": "<<TEXT\nabc\nTEXT\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/heredoc.B.rb",
    "content": "select(<<-SQL)\nab\nSQL\n  .join()\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/heredoc.diffA-B.txt",
    "content": "(Statements\n{+(Send\n  {+(Context\n    {+(Statements\n      {+(TextElement)+})+}\n    {+(Send\n      {+(Identifier)+}\n      {+(TextElement)+})+})+}\n  {+(Identifier)+})+}\n{-(TextElement)-}\n{-(Statements\n  {-(TextElement)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/heredoc.diffB-A.txt",
    "content": "(Statements\n{+(TextElement)+}\n{+(Statements\n  {+(TextElement)+})+}\n{-(Send\n  {-(Context\n    {-(Statements\n      {-(TextElement)-})-}\n    {-(Send\n      {-(Identifier)-}\n      {-(TextElement)-})-})-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/heredoc.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (HeredocBeginning \"<<TEXT\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/heredoc.parseB.txt",
    "content": "(Program \n  (Statement \n    (MethodCall \n      (ArgumentList) \n      (Call \n        (Primary \n          (Lhs \n            (MethodCall \n              (ArgumentList \n                (Arg \n                  (Primary \n                    (HeredocBeginning \"<<-SQL\")))) \n              (Variable \n                (Identifier \"select\"))))) \n        (Identifier \"join\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/if-unless-modifiers.A.rb",
    "content": "print unless foo\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/if-unless-modifiers.B.rb",
    "content": "print if foo\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/if-unless-modifiers.diffA-B.txt",
    "content": "(Statements\n  (If\n  { (Not\n    {-(Send\n      {-(Identifier)-})-})\n  ->(Send\n    {+(Identifier)+}) }\n    (Send\n      (Identifier))\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/if-unless-modifiers.diffB-A.txt",
    "content": "(Statements\n  (If\n  { (Send\n    {-(Identifier)-})\n  ->(Not\n    {+(Send\n      {+(Identifier)+})+}) }\n    (Send\n      (Identifier))\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/if-unless-modifiers.parseA.txt",
    "content": "(Program \n  (Statement \n    (UnlessModifier \n      (Statement \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"print\")))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"foo\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/if-unless-modifiers.parseB.txt",
    "content": "(Program \n  (Statement \n    (IfModifier \n      (Statement \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"print\")))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"foo\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/if.A.rb",
    "content": "if foo\n  bar\nelsif quux\n  baz\nelse\n  bat\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/if.B.rb",
    "content": "if x\nend\nif y then\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/if.diffA-B.txt",
    "content": "(Statements\n  (If\n    (Send\n    { (Identifier)\n    ->(Identifier) })\n    (Statements\n    {-(Send\n      {-(Identifier)-})-})\n  { (If\n    {-(Send\n      {-(Identifier)-})-}\n    {-(Statements\n      {-(Send\n        {-(Identifier)-})-})-}\n    {-(Send\n      {-(Identifier)-})-})\n  ->(Empty) })\n{+(If\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Statements\n    {+(Statements)+})+}\n  {+(Empty)+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/if.diffB-A.txt",
    "content": "(Statements\n  (If\n    (Send\n    { (Identifier)\n    ->(Identifier) })\n    (Statements\n    {+(Send\n      {+(Identifier)+})+})\n  { (Empty)\n  ->(If\n    {+(Send\n      {+(Identifier)+})+}\n    {+(Statements\n      {+(Send\n        {+(Identifier)+})+})+}\n    {+(Send\n      {+(Identifier)+})+}) })\n{-(If\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Statements\n    {-(Statements)-})-}\n  {-(Empty)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/if.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (If \n          (Elsif \n            (Else \n              (Statement \n                (Arg \n                  (Primary \n                    (Lhs \n                      (Variable \n                        (Identifier \"bat\"))))))) \n            (Then \n              (Statement \n                (Arg \n                  (Primary \n                    (Lhs \n                      (Variable \n                        (Identifier \"baz\"))))))) \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"quux\"))))))) \n          (Then \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"bar\"))))))) \n          (Statement \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"foo\")))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/if.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (If \n          (Statement \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"x\")))))))))) \n  (Statement \n    (Arg \n      (Primary \n        (If \n          (Then) \n          (Statement \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"y\")))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/interpolation.A.rb",
    "content": ":\"foo #{bar}\"\n\"foo #{bar}\"\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/interpolation.B.rb",
    "content": ":\"bar #{foo}\"\n\"bar #{foo}\"\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/interpolation.diffA-B.txt",
    "content": "(Statements\n  (Symbol\n    (InterpolationElement\n      (Send\n      { (Identifier)\n      ->(Identifier) })))\n  (String\n    (InterpolationElement\n      (Send\n      { (Identifier)\n      ->(Identifier) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/interpolation.diffB-A.txt",
    "content": "(Statements\n  (Symbol\n    (InterpolationElement\n      (Send\n      { (Identifier)\n      ->(Identifier) })))\n  (String\n    (InterpolationElement\n      (Send\n      { (Identifier)\n      ->(Identifier) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/interpolation.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Symbol \n          (Interpolation \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"bar\"))))))))))) \n  (Statement \n    (Arg \n      (Primary \n        (String \n          (Interpolation \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"bar\"))))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/interpolation.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Symbol \n          (Interpolation \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"foo\"))))))))))) \n  (Statement \n    (Arg \n      (Primary \n        (String \n          (Interpolation \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"foo\"))))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/keywords.A.rb",
    "content": "__FILE__\n__LINE__\n__ENCODING__\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/keywords.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (Variable \n            (Identifier \"__FILE__\")))))) \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (Variable \n            (Identifier \"__LINE__\")))))) \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (Variable \n            (Identifier \"__ENCODING__\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/lambda-dash-rocket.A.rb",
    "content": "-> (a, b, c) {\n  1\n  2\n}\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/lambda-dash-rocket.B.rb",
    "content": "-> { foo }\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/lambda-dash-rocket.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n  {-(Identifier)-}\n  {-(Identifier)-}\n  {-(Identifier)-}\n    (Function\n      (Empty)\n    { (Statements\n      {-(Integer)-}\n      {-(Integer)-})\n    ->(Send\n      {+(Identifier)+}) })))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/lambda-dash-rocket.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n  {+(Identifier)+}\n  {+(Identifier)+}\n  {+(Identifier)+}\n    (Function\n      (Empty)\n    { (Send\n      {-(Identifier)-})\n    ->(Statements\n      {+(Integer)+}\n      {+(Integer)+}) })))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/lambda-dash-rocket.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Lambda \n          (Block \n            (Statement \n              (Arg \n                (Primary \n                  (Integer \"1\")))) \n            (Statement \n              (Arg \n                (Primary \n                  (Integer \"2\"))))) \n          (LambdaParameters \n            (Identifier \"a\") \n            (Identifier \"b\") \n            (Identifier \"c\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/lambda-dash-rocket.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Lambda \n          (Block \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"foo\"))))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/lambda.A.rb",
    "content": "lambda {}\nlambda { foo }\nlambda { |a, b: false, c = nil| 1 }\n\n-> {}\n-> { foo }\n-> foo { 1 }\n-> (d, *f, (x, y)) {}\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/lambda.B.rb",
    "content": "lambda { |x| x + 1 }\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/lambda.diffA-B.txt",
    "content": "(Statements\n  (Send\n    (Identifier)\n    (Function\n      (Empty)\n    {+(Identifier)+}\n    { (Statements)\n    ->(Plus\n      {+(Identifier)+}\n      {+(Integer)+}) }))\n{-(Send\n  {-(Identifier)-}\n  {-(Function\n    {-(Empty)-}\n    {-(Send\n      {-(Identifier)-})-})-})-}\n{-(Send\n  {-(Identifier)-}\n  {-(Function\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(Identifier)-}\n    {-(Identifier)-}\n    {-(Integer)-})-})-}\n{-(Function\n  {-(Empty)-}\n  {-(Function\n    {-(Empty)-}\n    {-(Statements)-})-})-}\n{-(Function\n  {-(Empty)-}\n  {-(Function\n    {-(Empty)-}\n    {-(Send\n      {-(Identifier)-})-})-})-}\n{-(Function\n  {-(Empty)-}\n  {-(Identifier)-}\n  {-(Function\n    {-(Empty)-}\n    {-(Integer)-})-})-}\n{-(Function\n  {-(Empty)-}\n  {-(Identifier)-}\n  {-(Identifier)-}\n  {-(Statements\n    {-(Identifier)-}\n    {-(Identifier)-})-}\n  {-(Function\n    {-(Empty)-}\n    {-(Statements)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/lambda.diffB-A.txt",
    "content": "(Statements\n  (Send\n    (Identifier)\n    (Function\n      (Empty)\n    {-(Identifier)-}\n    { (Plus\n      {-(Identifier)-}\n      {-(Integer)-})\n    ->(Statements) }))\n{+(Send\n  {+(Identifier)+}\n  {+(Function\n    {+(Empty)+}\n    {+(Send\n      {+(Identifier)+})+})+})+}\n{+(Send\n  {+(Identifier)+}\n  {+(Function\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(Identifier)+}\n    {+(Identifier)+}\n    {+(Integer)+})+})+}\n{+(Function\n  {+(Empty)+}\n  {+(Function\n    {+(Empty)+}\n    {+(Statements)+})+})+}\n{+(Function\n  {+(Empty)+}\n  {+(Function\n    {+(Empty)+}\n    {+(Send\n      {+(Identifier)+})+})+})+}\n{+(Function\n  {+(Empty)+}\n  {+(Identifier)+}\n  {+(Function\n    {+(Empty)+}\n    {+(Integer)+})+})+}\n{+(Function\n  {+(Empty)+}\n  {+(Identifier)+}\n  {+(Identifier)+}\n  {+(Statements\n    {+(Identifier)+}\n    {+(Identifier)+})+}\n  {+(Function\n    {+(Empty)+}\n    {+(Statements)+})+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/lambda.parseA.txt",
    "content": "(Program \n  (Statement \n    (MethodCall \n      (Block) \n      (Variable \n        (Identifier \"lambda\")))) \n  (Statement \n    (MethodCall \n      (Block \n        (Statement \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"foo\"))))))) \n      (Variable \n        (Identifier \"lambda\")))) \n  (Statement \n    (MethodCall \n      (Block \n        (BlockParameters \n          (Identifier \"a\") \n          (KeywordParameter \n            (Arg \n              (Primary \n                (Lhs \n                  (False \"false\")))) \n            (Identifier \"b\")) \n          (OptionalParameter \n            (Arg \n              (Primary \n                (Lhs \n                  (Nil \"nil\")))) \n            (Identifier \"c\"))) \n        (Statement \n          (Arg \n            (Primary \n              (Integer \"1\"))))) \n      (Variable \n        (Identifier \"lambda\")))) \n  (Statement \n    (Arg \n      (Primary \n        (Lambda \n          (Block))))) \n  (Statement \n    (Arg \n      (Primary \n        (Lambda \n          (Block \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"foo\"))))))))))) \n  (Statement \n    (Arg \n      (Primary \n        (Lambda \n          (Block \n            (Statement \n              (Arg \n                (Primary \n                  (Integer \"1\"))))) \n          (LambdaParameters \n            (Identifier \"foo\")))))) \n  (Statement \n    (Arg \n      (Primary \n        (Lambda \n          (Block) \n          (LambdaParameters \n            (Identifier \"d\") \n            (SplatParameter \n              (Identifier \"f\")) \n            (DestructuredParameter \n              (Identifier \"x\") \n              (Identifier \"y\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/lambda.parseB.txt",
    "content": "(Program \n  (Statement \n    (MethodCall \n      (Block \n        (BlockParameters \n          (Identifier \"x\")) \n        (Statement \n          (Binary \n            (Token) \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"x\"))))) \n            (Arg \n              (Primary \n                (Integer \"1\")))))) \n      (Variable \n        (Identifier \"lambda\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/literals.A.rb",
    "content": "true\nfalse\nnil\n:foo\n1234\n\nself\nsuper\n\n1..3\n1...5\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/literals.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (True \"true\"))))) \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (False \"false\"))))) \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (Nil \"nil\"))))) \n  (Statement \n    (Arg \n      (Primary \n        (Symbol)))) \n  (Statement \n    (Arg \n      (Primary \n        (Integer \"1234\")))) \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (Variable \n            (Self \"self\")))))) \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (Variable \n            (Super \"super\")))))) \n  (Statement \n    (Arg \n      (Range \n        (Arg \n          (Primary \n            (Integer \"1\"))) \n        (Arg \n          (Primary \n            (Integer \"3\")))))) \n  (Statement \n    (Arg \n      (Range \n        (Arg \n          (Primary \n            (Integer \"1\"))) \n        (Arg \n          (Primary \n            (Integer \"5\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/math-assignment.A.rb",
    "content": "x += 1\nx -= 1\nx *= 1\nx /= 1\nx **= 1\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/math-assignment.B.rb",
    "content": "x+= 2\nx -= 1\nx *= 1\nx /= 1\nx **= 1\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/math-assignment.diffA-B.txt",
    "content": "(Statements\n  (AugmentedAssignment\n    (Plus\n      (Identifier)\n    { (Integer)\n    ->(Integer) }))\n  (AugmentedAssignment\n    (Minus\n      (Identifier)\n      (Integer)))\n  (AugmentedAssignment\n    (Times\n      (Identifier)\n      (Integer)))\n  (AugmentedAssignment\n    (DividedBy\n      (Identifier)\n      (Integer)))\n  (AugmentedAssignment\n    (Power\n      (Identifier)\n      (Integer))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/math-assignment.diffB-A.txt",
    "content": "(Statements\n  (AugmentedAssignment\n    (Plus\n      (Identifier)\n    { (Integer)\n    ->(Integer) }))\n  (AugmentedAssignment\n    (Minus\n      (Identifier)\n      (Integer)))\n  (AugmentedAssignment\n    (Times\n      (Identifier)\n      (Integer)))\n  (AugmentedAssignment\n    (DividedBy\n      (Identifier)\n      (Integer)))\n  (AugmentedAssignment\n    (Power\n      (Identifier)\n      (Integer))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/math-assignment.parseA.txt",
    "content": "(Program \n  (Statement \n    (OperatorAssignment \n      (Lhs \n        (Variable \n          (Identifier \"x\"))) \n      (Arg \n        (Primary \n          (Integer \"1\"))))) \n  (Statement \n    (OperatorAssignment \n      (Lhs \n        (Variable \n          (Identifier \"x\"))) \n      (Arg \n        (Primary \n          (Integer \"1\"))))) \n  (Statement \n    (OperatorAssignment \n      (Lhs \n        (Variable \n          (Identifier \"x\"))) \n      (Arg \n        (Primary \n          (Integer \"1\"))))) \n  (Statement \n    (OperatorAssignment \n      (Lhs \n        (Variable \n          (Identifier \"x\"))) \n      (Arg \n        (Primary \n          (Integer \"1\"))))) \n  (Statement \n    (OperatorAssignment \n      (Lhs \n        (Variable \n          (Identifier \"x\"))) \n      (Arg \n        (Primary \n          (Integer \"1\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/math-assignment.parseB.txt",
    "content": "(Program \n  (Statement \n    (OperatorAssignment \n      (Lhs \n        (Variable \n          (Identifier \"x\"))) \n      (Arg \n        (Primary \n          (Integer \"2\"))))) \n  (Statement \n    (OperatorAssignment \n      (Lhs \n        (Variable \n          (Identifier \"x\"))) \n      (Arg \n        (Primary \n          (Integer \"1\"))))) \n  (Statement \n    (OperatorAssignment \n      (Lhs \n        (Variable \n          (Identifier \"x\"))) \n      (Arg \n        (Primary \n          (Integer \"1\"))))) \n  (Statement \n    (OperatorAssignment \n      (Lhs \n        (Variable \n          (Identifier \"x\"))) \n      (Arg \n        (Primary \n          (Integer \"1\"))))) \n  (Statement \n    (OperatorAssignment \n      (Lhs \n        (Variable \n          (Identifier \"x\"))) \n      (Arg \n        (Primary \n          (Integer \"1\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-calls-hash-args.A.rb",
    "content": "foo(:bar => true)\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-calls-hash-args.B.rb",
    "content": "foo(:bar => true, :baz => 1)\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-calls-hash-args.diffA-B.txt",
    "content": "(Statements\n  (Send\n    (Identifier)\n    (KeyValue\n      (SymbolElement)\n      (Boolean))\n  {+(KeyValue\n    {+(SymbolElement)+}\n    {+(Integer)+})+}))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-calls-hash-args.diffB-A.txt",
    "content": "(Statements\n  (Send\n    (Identifier)\n    (KeyValue\n      (SymbolElement)\n      (Boolean))\n  {-(KeyValue\n    {-(SymbolElement)-}\n    {-(Integer)-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-calls-hash-args.parseA.txt",
    "content": "(Program \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (Pair \n          (Arg \n            (Primary \n              (Lhs \n                (True \"true\")))) \n          (Symbol))) \n      (Variable \n        (Identifier \"foo\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-calls-hash-args.parseB.txt",
    "content": "(Program \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (Pair \n          (Arg \n            (Primary \n              (Lhs \n                (True \"true\")))) \n          (Symbol)) \n        (Pair \n          (Arg \n            (Primary \n              (Integer \"1\"))) \n          (Symbol))) \n      (Variable \n        (Identifier \"foo\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-calls-keyword-args.A.rb",
    "content": "foo(bar: true)\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-calls-keyword-args.B.rb",
    "content": "foo(bar: true, baz: 1)\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-calls-keyword-args.diffA-B.txt",
    "content": "(Statements\n  (Send\n    (Identifier)\n    (KeyValue\n      (SymbolElement)\n      (Boolean))\n  {+(KeyValue\n    {+(SymbolElement)+}\n    {+(Integer)+})+}))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-calls-keyword-args.diffB-A.txt",
    "content": "(Statements\n  (Send\n    (Identifier)\n    (KeyValue\n      (SymbolElement)\n      (Boolean))\n  {-(KeyValue\n    {-(SymbolElement)-}\n    {-(Integer)-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-calls-keyword-args.parseA.txt",
    "content": "(Program \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (Pair \n          (Arg \n            (Primary \n              (Lhs \n                (True \"true\")))) \n          (Symbol))) \n      (Variable \n        (Identifier \"foo\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-calls-keyword-args.parseB.txt",
    "content": "(Program \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (Pair \n          (Arg \n            (Primary \n              (Lhs \n                (True \"true\")))) \n          (Symbol)) \n        (Pair \n          (Arg \n            (Primary \n              (Integer \"1\"))) \n          (Symbol))) \n      (Variable \n        (Identifier \"foo\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-calls.A.rb",
    "content": "x.foo()\n\nfoo(a, b, :c => 2, d: 3)\nfoo(bar(a),)\nfoo([] => 1, *bar, &blk, -> (a) { 1 })\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-calls.B.rb",
    "content": "bar()\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-calls.diffA-B.txt",
    "content": "(Statements\n  (Send\n  {-(Send\n    {-(Identifier)-})-}\n  { (Identifier)\n  ->(Identifier) })\n{-(Send\n  {-(Identifier)-}\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-}\n  {-(KeyValue\n    {-(SymbolElement)-}\n    {-(Integer)-})-}\n  {-(KeyValue\n    {-(SymbolElement)-}\n    {-(Integer)-})-})-}\n{-(Send\n  {-(Identifier)-}\n  {-(Send\n    {-(Identifier)-}\n    {-(Send\n      {-(Identifier)-})-})-})-}\n{-(Send\n  {-(Identifier)-}\n  {-(KeyValue\n    {-(Array)-}\n    {-(Integer)-})-}\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Function\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(Function\n      {-(Empty)-}\n      {-(Integer)-})-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-calls.diffB-A.txt",
    "content": "(Statements\n  (Send\n  {+(Send\n    {+(Identifier)+})+}\n  { (Identifier)\n  ->(Identifier) })\n{+(Send\n  {+(Identifier)+}\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+}\n  {+(KeyValue\n    {+(SymbolElement)+}\n    {+(Integer)+})+}\n  {+(KeyValue\n    {+(SymbolElement)+}\n    {+(Integer)+})+})+}\n{+(Send\n  {+(Identifier)+}\n  {+(Send\n    {+(Identifier)+}\n    {+(Send\n      {+(Identifier)+})+})+})+}\n{+(Send\n  {+(Identifier)+}\n  {+(KeyValue\n    {+(Array)+}\n    {+(Integer)+})+}\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Function\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(Function\n      {+(Empty)+}\n      {+(Integer)+})+})+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-calls.parseA.txt",
    "content": "(Program \n  (Statement \n    (MethodCall \n      (ArgumentList) \n      (Call \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"x\")))) \n        (Identifier \"foo\")))) \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"a\"))))) \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"b\"))))) \n        (Pair \n          (Arg \n            (Primary \n              (Integer \"2\"))) \n          (Symbol)) \n        (Pair \n          (Arg \n            (Primary \n              (Integer \"3\"))) \n          (Symbol))) \n      (Variable \n        (Identifier \"foo\")))) \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (MethodCall \n          (ArgumentList \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"a\")))))) \n          (Variable \n            (Identifier \"bar\")))) \n      (Variable \n        (Identifier \"foo\")))) \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (Pair \n          (Arg \n            (Primary \n              (Integer \"1\"))) \n          (Arg \n            (Primary \n              (Array)))) \n        (SplatArgument \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"bar\")))))) \n        (BlockArgument \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"blk\")))))) \n        (Arg \n          (Primary \n            (Lambda \n              (Block \n                (Statement \n                  (Arg \n                    (Primary \n                      (Integer \"1\"))))) \n              (LambdaParameters \n                (Identifier \"a\")))))) \n      (Variable \n        (Identifier \"foo\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-calls.parseB.txt",
    "content": "(Program \n  (Statement \n    (MethodCall \n      (ArgumentList) \n      (Variable \n        (Identifier \"bar\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-keyword-param.A.rb",
    "content": "def foo()\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-keyword-param.B.rb",
    "content": "def foo(name: nil)\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-keyword-param.diffA-B.txt",
    "content": "(Statements\n  (Method\n    (Empty)\n    (Identifier)\n  {+(Identifier)+}\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-keyword-param.diffB-A.txt",
    "content": "(Statements\n  (Method\n    (Empty)\n    (Identifier)\n  {-(Identifier)-}\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-keyword-param.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Identifier \"foo\")) \n          (MethodParameters))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-keyword-param.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Identifier \"foo\")) \n          (MethodParameters \n            (KeywordParameter \n              (Arg \n                (Primary \n                  (Lhs \n                    (Nil \"nil\")))) \n              (Identifier \"name\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-param-default.A.rb",
    "content": "def foo()\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-param-default.B.rb",
    "content": "def foo(name = nil)\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-param-default.diffA-B.txt",
    "content": "(Statements\n  (Method\n    (Empty)\n    (Identifier)\n  {+(Identifier)+}\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-param-default.diffB-A.txt",
    "content": "(Statements\n  (Method\n    (Empty)\n    (Identifier)\n  {-(Identifier)-}\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-param-default.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Identifier \"foo\")) \n          (MethodParameters))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-param-default.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Identifier \"foo\")) \n          (MethodParameters \n            (OptionalParameter \n              (Arg \n                (Primary \n                  (Lhs \n                    (Nil \"nil\")))) \n              (Identifier \"name\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-params.A.rb",
    "content": "def foo(a)\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-params.B.rb",
    "content": "def foo(a, b, c)\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-params.diffA-B.txt",
    "content": "(Statements\n  (Method\n    (Empty)\n    (Identifier)\n    (Identifier)\n  {+(Identifier)+}\n  {+(Identifier)+}\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-params.diffB-A.txt",
    "content": "(Statements\n  (Method\n    (Empty)\n    (Identifier)\n    (Identifier)\n  {-(Identifier)-}\n  {-(Identifier)-}\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-params.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Identifier \"foo\")) \n          (MethodParameters \n            (Identifier \"a\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-params.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Identifier \"foo\")) \n          (MethodParameters \n            (Identifier \"a\") \n            (Identifier \"b\") \n            (Identifier \"c\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-required-keyword-param.A.rb",
    "content": "def foo()\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-required-keyword-param.B.rb",
    "content": "def foo(name:)\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-required-keyword-param.diffA-B.txt",
    "content": "(Statements\n  (Method\n    (Empty)\n    (Identifier)\n  {+(Identifier)+}\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-required-keyword-param.diffB-A.txt",
    "content": "(Statements\n  (Method\n    (Empty)\n    (Identifier)\n  {-(Identifier)-}\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-required-keyword-param.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Identifier \"foo\")) \n          (MethodParameters))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-required-keyword-param.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Identifier \"foo\")) \n          (MethodParameters \n            (KeywordParameter \n              (Identifier \"name\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-unnamed-param.A.rb",
    "content": "def foo(name)\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-unnamed-param.B.rb",
    "content": "def foo(name, **)\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-unnamed-param.diffA-B.txt",
    "content": "(Statements\n  (Method\n    (Empty)\n    (Identifier)\n    (Identifier)\n  {+(Empty)+}\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-unnamed-param.diffB-A.txt",
    "content": "(Statements\n  (Method\n    (Empty)\n    (Identifier)\n    (Identifier)\n  {-(Empty)-}\n    (Statements)))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-unnamed-param.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Identifier \"foo\")) \n          (MethodParameters \n            (Identifier \"name\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration-unnamed-param.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Identifier \"foo\")) \n          (MethodParameters \n            (Identifier \"name\") \n            (HashSplatParameter)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration.A.rb",
    "content": "def foo\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration.B.rb",
    "content": "def bar(a)\n  baz\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration.diffA-B.txt",
    "content": "(Statements\n  (Method\n    (Empty)\n  { (Identifier)\n  ->(Identifier) }\n  {+(Identifier)+}\n    (Statements\n    {+(Send\n      {+(Identifier)+})+})))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration.diffB-A.txt",
    "content": "(Statements\n  (Method\n    (Empty)\n  { (Identifier)\n  ->(Identifier) }\n  {-(Identifier)-}\n    (Statements\n    {-(Send\n      {-(Identifier)-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Identifier \"foo\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-declaration.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Identifier \"bar\")) \n          (MethodParameters \n            (Identifier \"a\")) \n          (Statement \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"baz\")))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-invocation.A.rb",
    "content": "print\nfoo.bar\nbar\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-invocation.B.rb",
    "content": "print(\"hello world\")\nfoo.bar()\nbar 2, 3\nbar(2, 3)\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-invocation.diffA-B.txt",
    "content": "(Statements\n  (Send\n    (Identifier)\n  {+(TextElement)+})\n  (Send\n    (Send\n      (Identifier))\n    (Identifier))\n  (Send\n    (Identifier)\n  {+(Integer)+}\n  {+(Integer)+})\n{+(Send\n  {+(Identifier)+}\n  {+(Integer)+}\n  {+(Integer)+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-invocation.diffB-A.txt",
    "content": "(Statements\n  (Send\n    (Identifier)\n  {-(TextElement)-})\n  (Send\n    (Send\n      (Identifier))\n    (Identifier))\n  (Send\n    (Identifier)\n  {-(Integer)-}\n  {-(Integer)-})\n{-(Send\n  {-(Identifier)-}\n  {-(Integer)-}\n  {-(Integer)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-invocation.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (Variable \n            (Identifier \"print\")))))) \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (Call \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"foo\")))) \n            (Identifier \"bar\")))))) \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (Variable \n            (Identifier \"bar\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/method-invocation.parseB.txt",
    "content": "(Program \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (Arg \n          (Primary \n            (String)))) \n      (Variable \n        (Identifier \"print\")))) \n  (Statement \n    (MethodCall \n      (ArgumentList) \n      (Call \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"foo\")))) \n        (Identifier \"bar\")))) \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (Arg \n          (Primary \n            (Integer \"2\"))) \n        (Arg \n          (Primary \n            (Integer \"3\")))) \n      (Variable \n        (Identifier \"bar\")))) \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (Arg \n          (Primary \n            (Integer \"2\"))) \n        (Arg \n          (Primary \n            (Integer \"3\")))) \n      (Variable \n        (Identifier \"bar\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/methods.A.rb",
    "content": "def foo\nend\n\ndef bar=\nend\n\ndef -@(a)\nend\n\ndef foo(a, b: false, c: nil, **)\nend\n\ndef foo(*args)\nend\n\ndef foo(&block)\nend\n\ndef self.foo\nend\n\ndef self.foo(a, b)\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/methods.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Identifier \"foo\")))))) \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Setter \n              (Identifier \"bar\"))))))) \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Operator \"-@\")) \n          (MethodParameters \n            (Identifier \"a\")))))) \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Identifier \"foo\")) \n          (MethodParameters \n            (Identifier \"a\") \n            (KeywordParameter \n              (Arg \n                (Primary \n                  (Lhs \n                    (False \"false\")))) \n              (Identifier \"b\")) \n            (KeywordParameter \n              (Arg \n                (Primary \n                  (Lhs \n                    (Nil \"nil\")))) \n              (Identifier \"c\")) \n            (HashSplatParameter)))))) \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Identifier \"foo\")) \n          (MethodParameters \n            (SplatParameter \n              (Identifier \"args\"))))))) \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Identifier \"foo\")) \n          (MethodParameters \n            (BlockParameter \n              (Identifier \"block\"))))))) \n  (Statement \n    (Arg \n      (Primary \n        (SingletonMethod \n          (MethodName \n            (Identifier \"foo\")) \n          (Variable \n            (Self \"self\")))))) \n  (Statement \n    (Arg \n      (Primary \n        (SingletonMethod \n          (MethodName \n            (Identifier \"foo\")) \n          (MethodParameters \n            (Identifier \"a\") \n            (Identifier \"b\")) \n          (Variable \n            (Self \"self\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/misc.A.rb",
    "content": "foo(a) do\nend\n\nfoo.bar do |x, name: i, *args|\nend\n\nfoo(a) { |x| }\n\n__END__\nword\nx\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/misc.parseA.txt",
    "content": "(Program \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"a\")))))) \n      (DoBlock) \n      (Variable \n        (Identifier \"foo\")))) \n  (Statement \n    (MethodCall \n      (DoBlock \n        (BlockParameters \n          (Identifier \"x\") \n          (KeywordParameter \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"i\"))))) \n            (Identifier \"name\")) \n          (SplatParameter \n            (Identifier \"args\")))) \n      (Call \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"foo\")))) \n        (Identifier \"bar\")))) \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"a\")))))) \n      (Block \n        (BlockParameters \n          (Identifier \"x\"))) \n      (Variable \n        (Identifier \"foo\")))) \n  (Uninterpreted \"\\nword\\nx\\n\"))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/module.A.rb",
    "content": "module Foo\nend\n\nmodule A::B\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/module.B.rb",
    "content": "module Foo\n  def bar\n  end\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/module.diffA-B.txt",
    "content": "(Statements\n  (Module\n    (Identifier)\n  {+(Method\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(Statements)+})+})\n{-(Module\n  {-(ScopeResolution\n    {-(Identifier)-}\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/module.diffB-A.txt",
    "content": "(Statements\n  (Module\n    (Identifier)\n  {-(Method\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(Statements)-})-})\n{+(Module\n  {+(ScopeResolution\n    {+(Identifier)+}\n    {+(Identifier)+})+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/module.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Module \n          (Constant \"Foo\"))))) \n  (Statement \n    (Arg \n      (Primary \n        (Module \n          (ScopeResolution \n            (Constant \"B\") \n            (Primary \n              (Lhs \n                (Variable \n                  (Constant \"A\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/module.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Module \n          (Constant \"Foo\") \n          (Statement \n            (Arg \n              (Primary \n                (Method \n                  (MethodName \n                    (Identifier \"bar\")))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/multiple-assignments.A.rb",
    "content": "x, y, z = [10, 20, 30]\n\nx, y = [1, 2]\nx, * = [1, 2]\nx, *args = [1, 2]\nx, y = *foo\nself.foo, self.bar = target.a?, target.b\n(x, y) = foo\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/multiple-assignments.B.rb",
    "content": "x, *y = [10, 20, 30]\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/multiple-assignments.diffA-B.txt",
    "content": "(Statements\n  (Assignment\n    (Statements\n      (Identifier)\n      (Identifier)\n    {-(Identifier)-})\n    (Array\n      (Integer)\n      (Integer)\n      (Integer)))\n{-(Assignment\n  {-(Statements\n    {-(Identifier)-}\n    {-(Identifier)-})-}\n  {-(Array\n    {-(Integer)-}\n    {-(Integer)-})-})-}\n{-(Assignment\n  {-(Statements\n    {-(Identifier)-}\n    {-(Identifier)-})-}\n  {-(Array\n    {-(Integer)-}\n    {-(Integer)-})-})-}\n{-(Assignment\n  {-(Statements\n    {-(Identifier)-}\n    {-(Identifier)-})-}\n  {-(Array\n    {-(Integer)-}\n    {-(Integer)-})-})-}\n{-(Assignment\n  {-(Statements\n    {-(Identifier)-}\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-}\n{-(Assignment\n  {-(Statements\n    {-(Send\n      {-(This)-}\n      {-(Identifier)-})-}\n    {-(Send\n      {-(This)-}\n      {-(Identifier)-})-})-}\n  {-(Statements\n    {-(Send\n      {-(Send\n        {-(Identifier)-})-}\n      {-(Identifier)-})-}\n    {-(Send\n      {-(Send\n        {-(Identifier)-})-}\n      {-(Identifier)-})-})-})-}\n{-(Assignment\n  {-(Statements\n    {-(Statements\n      {-(Identifier)-}\n      {-(Identifier)-})-})-}\n  {-(Send\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/multiple-assignments.diffB-A.txt",
    "content": "(Statements\n  (Assignment\n    (Statements\n      (Identifier)\n      (Identifier)\n    {+(Identifier)+})\n    (Array\n      (Integer)\n      (Integer)\n      (Integer)))\n{+(Assignment\n  {+(Statements\n    {+(Identifier)+}\n    {+(Identifier)+})+}\n  {+(Array\n    {+(Integer)+}\n    {+(Integer)+})+})+}\n{+(Assignment\n  {+(Statements\n    {+(Identifier)+}\n    {+(Identifier)+})+}\n  {+(Array\n    {+(Integer)+}\n    {+(Integer)+})+})+}\n{+(Assignment\n  {+(Statements\n    {+(Identifier)+}\n    {+(Identifier)+})+}\n  {+(Array\n    {+(Integer)+}\n    {+(Integer)+})+})+}\n{+(Assignment\n  {+(Statements\n    {+(Identifier)+}\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n{+(Assignment\n  {+(Statements\n    {+(Send\n      {+(This)+}\n      {+(Identifier)+})+}\n    {+(Send\n      {+(This)+}\n      {+(Identifier)+})+})+}\n  {+(Statements\n    {+(Send\n      {+(Send\n        {+(Identifier)+})+}\n      {+(Identifier)+})+}\n    {+(Send\n      {+(Send\n        {+(Identifier)+})+}\n      {+(Identifier)+})+})+})+}\n{+(Assignment\n  {+(Statements\n    {+(Statements\n      {+(Identifier)+}\n      {+(Identifier)+})+})+}\n  {+(Send\n    {+(Identifier)+})+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/multiple-assignments.parseA.txt",
    "content": "(Program \n  (Statement \n    (Assignment \n      (LeftAssignmentList \n        (Lhs \n          (Variable \n            (Identifier \"x\"))) \n        (Lhs \n          (Variable \n            (Identifier \"y\"))) \n        (Lhs \n          (Variable \n            (Identifier \"z\")))) \n      (Arg \n        (Primary \n          (Array \n            (Arg \n              (Primary \n                (Integer \"10\"))) \n            (Arg \n              (Primary \n                (Integer \"20\"))) \n            (Arg \n              (Primary \n                (Integer \"30\")))))))) \n  (Statement \n    (Assignment \n      (LeftAssignmentList \n        (Lhs \n          (Variable \n            (Identifier \"x\"))) \n        (Lhs \n          (Variable \n            (Identifier \"y\")))) \n      (Arg \n        (Primary \n          (Array \n            (Arg \n              (Primary \n                (Integer \"1\"))) \n            (Arg \n              (Primary \n                (Integer \"2\")))))))) \n  (Statement \n    (Assignment \n      (LeftAssignmentList \n        (Lhs \n          (Variable \n            (Identifier \"x\"))) \n        (RestAssignment)) \n      (Arg \n        (Primary \n          (Array \n            (Arg \n              (Primary \n                (Integer \"1\"))) \n            (Arg \n              (Primary \n                (Integer \"2\")))))))) \n  (Statement \n    (Assignment \n      (LeftAssignmentList \n        (Lhs \n          (Variable \n            (Identifier \"x\"))) \n        (RestAssignment \n          (Lhs \n            (Variable \n              (Identifier \"args\"))))) \n      (Arg \n        (Primary \n          (Array \n            (Arg \n              (Primary \n                (Integer \"1\"))) \n            (Arg \n              (Primary \n                (Integer \"2\")))))))) \n  (Statement \n    (Assignment \n      (LeftAssignmentList \n        (Lhs \n          (Variable \n            (Identifier \"x\"))) \n        (Lhs \n          (Variable \n            (Identifier \"y\")))) \n      (SplatArgument \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"foo\")))))))) \n  (Statement \n    (Assignment \n      (LeftAssignmentList \n        (Lhs \n          (Call \n            (Primary \n              (Lhs \n                (Variable \n                  (Self \"self\")))) \n            (Identifier \"foo\"))) \n        (Lhs \n          (Call \n            (Primary \n              (Lhs \n                (Variable \n                  (Self \"self\")))) \n            (Identifier \"bar\")))) \n      (RightAssignmentList \n        (Arg \n          (Primary \n            (Lhs \n              (Call \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"target\")))) \n                (Identifier \"a?\"))))) \n        (Arg \n          (Primary \n            (Lhs \n              (Call \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"target\")))) \n                (Identifier \"b\")))))))) \n  (Statement \n    (Assignment \n      (LeftAssignmentList \n        (DestructuredLeftAssignment \n          (Lhs \n            (Variable \n              (Identifier \"x\"))) \n          (Lhs \n            (Variable \n              (Identifier \"y\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"foo\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/multiple-assignments.parseB.txt",
    "content": "(Program \n  (Statement \n    (Assignment \n      (LeftAssignmentList \n        (Lhs \n          (Variable \n            (Identifier \"x\"))) \n        (RestAssignment \n          (Lhs \n            (Variable \n              (Identifier \"y\"))))) \n      (Arg \n        (Primary \n          (Array \n            (Arg \n              (Primary \n                (Integer \"10\"))) \n            (Arg \n              (Primary \n                (Integer \"20\"))) \n            (Arg \n              (Primary \n                (Integer \"30\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/next.A.rb",
    "content": "for x in y\n  next\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/next.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (For \n          (Lhs \n            (Variable \n              (Identifier \"x\"))) \n          (Do \n            (Statement \n              (Next))) \n          (In \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"y\")))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/number.A.rb",
    "content": "1234\n1_234\n0d1_234\n0xa_bcd_ef0_123_456_789\n0o1234567\n0b1_0\n1.234_5e678_90\n\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/number.B.rb",
    "content": "1235\n1_235\n0d1_235\n0xa_bcd_ef0_123_456_788\n0o1234576\n0b1_1\n1.234_5e678_91\n\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/number.diffA-B.txt",
    "content": "(Statements\n{+(Integer)+}\n{+(Integer)+}\n{ (Integer)\n->(Integer) }\n{+(Integer)+}\n{+(Integer)+}\n{+(Integer)+}\n{+(Float)+}\n{-(Integer)-}\n{-(Integer)-}\n{-(Integer)-}\n{-(Integer)-}\n{-(Integer)-}\n{-(Float)-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/number.diffB-A.txt",
    "content": "(Statements\n{+(Integer)+}\n{+(Integer)+}\n{+(Integer)+}\n{+(Integer)+}\n{+(Integer)+}\n{+(Integer)+}\n{+(Float)+}\n{-(Integer)-}\n{-(Integer)-}\n{-(Integer)-}\n{-(Integer)-}\n{-(Integer)-}\n{-(Integer)-}\n{-(Float)-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/number.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Integer \"1234\")))) \n  (Statement \n    (Arg \n      (Primary \n        (Integer \"1_234\")))) \n  (Statement \n    (Arg \n      (Primary \n        (Integer \"0d1_234\")))) \n  (Statement \n    (Arg \n      (Primary \n        (Integer \"0xa_bcd_ef0_123_456_789\")))) \n  (Statement \n    (Arg \n      (Primary \n        (Integer \"0o1234567\")))) \n  (Statement \n    (Arg \n      (Primary \n        (Integer \"0b1_0\")))) \n  (Statement \n    (Arg \n      (Primary \n        (Float \"1.234_5e678_90\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/number.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Integer \"1235\")))) \n  (Statement \n    (Arg \n      (Primary \n        (Integer \"1_235\")))) \n  (Statement \n    (Arg \n      (Primary \n        (Integer \"0d1_235\")))) \n  (Statement \n    (Arg \n      (Primary \n        (Integer \"0xa_bcd_ef0_123_456_788\")))) \n  (Statement \n    (Arg \n      (Primary \n        (Integer \"0o1234576\")))) \n  (Statement \n    (Arg \n      (Primary \n        (Integer \"0b1_1\")))) \n  (Statement \n    (Arg \n      (Primary \n        (Float \"1.234_5e678_91\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/percent-array.A.rb",
    "content": "%w(one two)\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/percent-array.B.rb",
    "content": "%W(one #{b} three)\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/percent-array.diffA-B.txt",
    "content": "(Statements\n  (Array\n    (TextElement)\n  {+(String\n    {+(InterpolationElement\n      {+(Send\n        {+(Identifier)+})+})+})+}\n  { (TextElement)\n  ->(TextElement) }))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/percent-array.diffB-A.txt",
    "content": "(Statements\n  (Array\n    (TextElement)\n  {+(TextElement)+}\n  {-(String\n    {-(InterpolationElement\n      {-(Send\n        {-(Identifier)-})-})-})-}\n  {-(TextElement)-}))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/percent-array.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (StringArray \n          (BareString) \n          (BareString))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/percent-array.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (StringArray \n          (BareString) \n          (BareString \n            (Interpolation \n              (Statement \n                (Arg \n                  (Primary \n                    (Lhs \n                      (Variable \n                        (Identifier \"b\")))))))) \n          (BareString))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/pseudo-variables.A.rb",
    "content": "nil\nself\nfalse\ntrue\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/pseudo-variables.B.rb",
    "content": "self\nNIL\nTRUE\nFALSE\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/pseudo-variables.diffA-B.txt",
    "content": "(Statements\n{-(Null)-}\n  (This)\n{+(Null)+}\n{-(Boolean)-}\n  (Boolean)\n{+(Boolean)+})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/pseudo-variables.diffB-A.txt",
    "content": "(Statements\n{-(This)-}\n  (Null)\n{+(This)+}\n{-(Boolean)-}\n  (Boolean)\n{+(Boolean)+})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/pseudo-variables.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (Nil \"nil\"))))) \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (Variable \n            (Self \"self\")))))) \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (False \"false\"))))) \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (True \"true\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/pseudo-variables.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (Variable \n            (Self \"self\")))))) \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (Nil \"NIL\"))))) \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (True \"TRUE\"))))) \n  (Statement \n    (Arg \n      (Primary \n        (Lhs \n          (False \"FALSE\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/regex.A.rb",
    "content": "/^(foo|bar[^_])$/i\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/regex.B.rb",
    "content": "%r/a/\n%r<a<b>c>\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/regex.diffA-B.txt",
    "content": "(Statements\n{ (Regex)\n->(Regex) }\n{+(Regex)+})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/regex.diffB-A.txt",
    "content": "(Statements\n{ (Regex)\n->(Regex) }\n{-(Regex)-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/regex.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Regex)))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/regex.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Regex)))) \n  (Statement \n    (Arg \n      (Primary \n        (Regex)))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/relational-operator.A.rb",
    "content": "x == y\nx != y\nx === y\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/relational-operator.B.rb",
    "content": "x <=> y\nx =~ y\nx =! y\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/relational-operator.diffA-B.txt",
    "content": "(Statements\n{+(Comparison\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n{+(Matches\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n{+(Assignment\n  {+(Identifier)+}\n  {+(Not\n    {+(Send\n      {+(Identifier)+})+})+})+}\n{-(Equal\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-}\n{-(Not\n  {-(Equal\n    {-(Send\n      {-(Identifier)-})-}\n    {-(Send\n      {-(Identifier)-})-})-})-}\n{-(Equal\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/relational-operator.diffB-A.txt",
    "content": "(Statements\n{+(Equal\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n{+(Not\n  {+(Equal\n    {+(Send\n      {+(Identifier)+})+}\n    {+(Send\n      {+(Identifier)+})+})+})+}\n{+(Equal\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+}\n{-(Comparison\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-}\n{-(Matches\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-}\n{-(Assignment\n  {-(Identifier)-}\n  {-(Not\n    {-(Send\n      {-(Identifier)-})-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/relational-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"x\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"y\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"x\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"y\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"x\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"y\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/relational-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"x\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"y\"))))))) \n  (Statement \n    (Binary \n      (Token) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"x\"))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"y\"))))))) \n  (Statement \n    (Assignment \n      (Lhs \n        (Variable \n          (Identifier \"x\"))) \n      (Arg \n        (Unary \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"y\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/require.A.rb",
    "content": "require \"json\"\n\nfoo(a)\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/require.B.rb",
    "content": "require \"nokogiri\"\n\nautoload(:Bar, \"bar.rb\")\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/require.diffA-B.txt",
    "content": "(Statements\n  (Require\n  { (TextElement)\n  ->(TextElement) })\n  (Send\n  { (Identifier)\n  ->(Identifier) }\n  {+(SymbolElement)+}\n  {+(TextElement)+}\n  {-(Send\n    {-(Identifier)-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/require.diffB-A.txt",
    "content": "(Statements\n  (Require\n  { (TextElement)\n  ->(TextElement) })\n  (Send\n  { (Identifier)\n  ->(Identifier) }\n  {+(Send\n    {+(Identifier)+})+}\n  {-(SymbolElement)-}\n  {-(TextElement)-}))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/require.parseA.txt",
    "content": "(Program \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (Arg \n          (Primary \n            (String)))) \n      (Variable \n        (Identifier \"require\")))) \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"a\")))))) \n      (Variable \n        (Identifier \"foo\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/require.parseB.txt",
    "content": "(Program \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (Arg \n          (Primary \n            (String)))) \n      (Variable \n        (Identifier \"require\")))) \n  (Statement \n    (MethodCall \n      (ArgumentList \n        (Arg \n          (Primary \n            (Symbol))) \n        (Arg \n          (Primary \n            (String)))) \n      (Variable \n        (Identifier \"autoload\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-empty.A.rb",
    "content": "begin\n  foo\nrescue\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-empty.B.rb",
    "content": "begin\n  foo\nrescue\n  bar\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-empty.diffA-B.txt",
    "content": "(Statements\n  (Try\n    (Statements\n      (Send\n        (Identifier))\n      (Catch\n        (Statements)\n      { (Statements)\n      ->(Send\n        {+(Identifier)+}) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-empty.diffB-A.txt",
    "content": "(Statements\n  (Try\n    (Statements\n      (Send\n        (Identifier))\n      (Catch\n        (Statements)\n      { (Send\n        {-(Identifier)-})\n      ->(Statements) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-empty.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Begin \n          (Statement \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"foo\")))))) \n          (Rescue))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-empty.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Begin \n          (Statement \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"foo\")))))) \n          (Rescue \n            (Then \n              (Statement \n                (Arg \n                  (Primary \n                    (Lhs \n                      (Variable \n                        (Identifier \"bar\")))))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-last-ex.A.rb",
    "content": "begin\n  foo\nrescue Error => x\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-last-ex.B.rb",
    "content": "begin\n  foo\nrescue Error => x\n  bar\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-last-ex.diffA-B.txt",
    "content": "(Statements\n  (Try\n    (Statements\n      (Send\n        (Identifier))\n      (Catch\n        (Statements\n          (Statements\n            (Identifier))\n          (Statements\n            (Send\n              (Identifier))))\n      { (Statements)\n      ->(Send\n        {+(Identifier)+}) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-last-ex.diffB-A.txt",
    "content": "(Statements\n  (Try\n    (Statements\n      (Send\n        (Identifier))\n      (Catch\n        (Statements\n          (Statements\n            (Identifier))\n          (Statements\n            (Send\n              (Identifier))))\n      { (Send\n        {-(Identifier)-})\n      ->(Statements) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-last-ex.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Begin \n          (Statement \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"foo\")))))) \n          (Rescue \n            (Exceptions \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Constant \"Error\")))))) \n            (ExceptionVariable \n              (Lhs \n                (Variable \n                  (Identifier \"x\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-last-ex.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Begin \n          (Statement \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"foo\")))))) \n          (Rescue \n            (Exceptions \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Constant \"Error\")))))) \n            (Then \n              (Statement \n                (Arg \n                  (Primary \n                    (Lhs \n                      (Variable \n                        (Identifier \"bar\"))))))) \n            (ExceptionVariable \n              (Lhs \n                (Variable \n                  (Identifier \"x\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-modifier.A.rb",
    "content": "foo rescue nil\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-modifier.B.rb",
    "content": "foo rescue false\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-modifier.diffA-B.txt",
    "content": "(Statements\n  (Try\n    (Send\n      (Identifier))\n    (Catch\n    { (Null)\n    ->(Boolean) }\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-modifier.diffB-A.txt",
    "content": "(Statements\n  (Try\n    (Send\n      (Identifier))\n    (Catch\n    { (Boolean)\n    ->(Null) }\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-modifier.parseA.txt",
    "content": "(Program \n  (Statement \n    (RescueModifier \n      (Statement \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"foo\")))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Nil \"nil\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-modifier.parseB.txt",
    "content": "(Program \n  (Statement \n    (RescueModifier \n      (Statement \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"foo\")))))) \n      (Arg \n        (Primary \n          (Lhs \n            (False \"false\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-modifier2.A.rb",
    "content": "foo rescue nil\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-modifier2.B.rb",
    "content": "bar rescue nil\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-modifier2.diffA-B.txt",
    "content": "(Statements\n  (Try\n    (Send\n    { (Identifier)\n    ->(Identifier) })\n    (Catch\n      (Null)\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-modifier2.diffB-A.txt",
    "content": "(Statements\n  (Try\n    (Send\n    { (Identifier)\n    ->(Identifier) })\n    (Catch\n      (Null)\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-modifier2.parseA.txt",
    "content": "(Program \n  (Statement \n    (RescueModifier \n      (Statement \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"foo\")))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Nil \"nil\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue-modifier2.parseB.txt",
    "content": "(Program \n  (Statement \n    (RescueModifier \n      (Statement \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"bar\")))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Nil \"nil\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue.A.rb",
    "content": "begin\n  foo\nrescue Error\nrescue StandardError, TimeoutError => x\n  x\nelse\n  z\nensure\n  y\nend\n\ndef foo\nrescue Error\nrescue StandardError, TimeoutError => x\nelse\nensure\nend\n\nbar rescue nil\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue.B.rb",
    "content": "begin\n  foo\nrescue x\n  bar\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue.diffA-B.txt",
    "content": "(Statements\n{+(Try\n  {+(Statements\n    {+(Send\n      {+(Identifier)+})+}\n    {+(Catch\n      {+(Statements\n        {+(Statements\n          {+(Send\n            {+(Identifier)+})+})+})+}\n      {+(Send\n        {+(Identifier)+})+})+})+})+}\n{-(Try\n  {-(Statements\n    {-(Send\n      {-(Identifier)-})-}\n    {-(Catch\n      {-(Statements\n        {-(Statements\n          {-(Identifier)-})-})-}\n      {-(Statements)-})-}\n    {-(Catch\n      {-(Statements\n        {-(Statements\n          {-(Identifier)-}\n          {-(Identifier)-})-}\n        {-(Statements\n          {-(Send\n            {-(Identifier)-})-})-})-}\n      {-(Send\n        {-(Identifier)-})-})-}\n    {-(Else\n      {-(Empty)-}\n      {-(Send\n        {-(Identifier)-})-})-}\n    {-(Finally\n      {-(Send\n        {-(Identifier)-})-})-})-})-}\n{-(Method\n  {-(Empty)-}\n  {-(Identifier)-}\n  {-(Statements\n    {-(Catch\n      {-(Statements\n        {-(Statements\n          {-(Identifier)-})-})-}\n      {-(Statements)-})-}\n    {-(Catch\n      {-(Statements\n        {-(Statements\n          {-(Identifier)-}\n          {-(Identifier)-})-}\n        {-(Statements\n          {-(Send\n            {-(Identifier)-})-})-})-}\n      {-(Statements)-})-}\n    {-(Else\n      {-(Empty)-}\n      {-(Statements)-})-}\n    {-(Finally\n      {-(Statements)-})-})-})-}\n{-(Try\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Catch\n    {-(Null)-}\n    {-(Empty)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue.diffB-A.txt",
    "content": "(Statements\n{+(Try\n  {+(Statements\n    {+(Send\n      {+(Identifier)+})+}\n    {+(Catch\n      {+(Statements\n        {+(Statements\n          {+(Identifier)+})+})+}\n      {+(Statements)+})+}\n    {+(Catch\n      {+(Statements\n        {+(Statements\n          {+(Identifier)+}\n          {+(Identifier)+})+}\n        {+(Statements\n          {+(Send\n            {+(Identifier)+})+})+})+}\n      {+(Send\n        {+(Identifier)+})+})+}\n    {+(Else\n      {+(Empty)+}\n      {+(Send\n        {+(Identifier)+})+})+}\n    {+(Finally\n      {+(Send\n        {+(Identifier)+})+})+})+})+}\n{+(Method\n  {+(Empty)+}\n  {+(Identifier)+}\n  {+(Statements\n    {+(Catch\n      {+(Statements\n        {+(Statements\n          {+(Identifier)+})+})+}\n      {+(Statements)+})+}\n    {+(Catch\n      {+(Statements\n        {+(Statements\n          {+(Identifier)+}\n          {+(Identifier)+})+}\n        {+(Statements\n          {+(Send\n            {+(Identifier)+})+})+})+}\n      {+(Statements)+})+}\n    {+(Else\n      {+(Empty)+}\n      {+(Statements)+})+}\n    {+(Finally\n      {+(Statements)+})+})+})+}\n  (Try\n  { (Statements\n    {-(Send\n      {-(Identifier)-})-}\n    {-(Catch\n      {-(Statements\n        {-(Statements\n          {-(Send\n            {-(Identifier)-})-})-})-}\n      {-(Send\n        {-(Identifier)-})-})-})\n  ->(Send\n    {+(Identifier)+}) }\n  {+(Catch\n    {+(Null)+}\n    {+(Empty)+})+}))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Begin \n          (Statement \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"foo\")))))) \n          (Rescue \n            (Exceptions \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Constant \"Error\"))))))) \n          (Rescue \n            (Exceptions \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Constant \"StandardError\"))))) \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Constant \"TimeoutError\")))))) \n            (Then \n              (Statement \n                (Arg \n                  (Primary \n                    (Lhs \n                      (Variable \n                        (Identifier \"x\"))))))) \n            (ExceptionVariable \n              (Lhs \n                (Variable \n                  (Identifier \"x\"))))) \n          (Else \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"z\"))))))) \n          (Ensure \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"y\"))))))))))) \n  (Statement \n    (Arg \n      (Primary \n        (Method \n          (MethodName \n            (Identifier \"foo\")) \n          (Rescue \n            (Exceptions \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Constant \"Error\"))))))) \n          (Rescue \n            (Exceptions \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Constant \"StandardError\"))))) \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Constant \"TimeoutError\")))))) \n            (ExceptionVariable \n              (Lhs \n                (Variable \n                  (Identifier \"x\"))))) \n          (Else) \n          (Ensure))))) \n  (Statement \n    (RescueModifier \n      (Statement \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"bar\")))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Nil \"nil\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/rescue.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Begin \n          (Statement \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"foo\")))))) \n          (Rescue \n            (Exceptions \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"x\")))))) \n            (Then \n              (Statement \n                (Arg \n                  (Primary \n                    (Lhs \n                      (Variable \n                        (Identifier \"bar\")))))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/return.A.rb",
    "content": "return foo\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/return.B.rb",
    "content": "return\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/return.diffA-B.txt",
    "content": "(Statements\n  (Return\n  { (Send\n    {-(Identifier)-})\n  ->(Empty) }))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/return.diffB-A.txt",
    "content": "(Statements\n  (Return\n  { (Empty)\n  ->(Send\n    {+(Identifier)+}) }))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/return.parseA.txt",
    "content": "(Program \n  (Statement \n    (Return \n      (ArgumentList \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"foo\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/return.parseB.txt",
    "content": "(Program \n  (Statement \n    (Return)))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/singleton-class.A.rb",
    "content": "class << self\nend\n\nclass << Foo::Bar\n  att_reader :hi\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/singleton-class.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (SingletonClass \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Self \"self\"))))))))) \n  (Statement \n    (Arg \n      (Primary \n        (SingletonClass \n          (Arg \n            (Primary \n              (Lhs \n                (ScopeResolution \n                  (Constant \"Bar\") \n                  (Primary \n                    (Lhs \n                      (Variable \n                        (Constant \"Foo\")))))))) \n          (Statement \n            (MethodCall \n              (ArgumentList \n                (Arg \n                  (Primary \n                    (Symbol)))) \n              (Variable \n                (Identifier \"att_reader\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/string.A.rb",
    "content": "''\n'foo with \"bar\"'\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/string.B.rb",
    "content": "\"\"\n\"bar with 'foo'\"\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/string.diffA-B.txt",
    "content": "(Statements\n{ (TextElement)\n->(TextElement) }\n{ (TextElement)\n->(TextElement) })\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/string.diffB-A.txt",
    "content": "(Statements\n{ (TextElement)\n->(TextElement) }\n{ (TextElement)\n->(TextElement) })\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/string.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (String)))) \n  (Statement \n    (Arg \n      (Primary \n        (String)))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/string.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (String)))) \n  (Statement \n    (Arg \n      (Primary \n        (String)))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/subshell.A.rb",
    "content": "`ls -la`\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/subshell.B.rb",
    "content": "`git status`\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/subshell.diffA-B.txt",
    "content": "(Statements\n{ (TextElement)\n->(TextElement) })\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/subshell.diffB-A.txt",
    "content": "(Statements\n{ (TextElement)\n->(TextElement) })\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/subshell.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Subshell)))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/subshell.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Subshell)))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/symbol.A.rb",
    "content": ":foo\n:'foo'\n:\"foo\"\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/symbol.B.rb",
    "content": ":bar\n:'bar'\n:\"bar\"\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/symbol.diffA-B.txt",
    "content": "(Statements\n{+(SymbolElement)+}\n{+(SymbolElement)+}\n{ (SymbolElement)\n->(SymbolElement) }\n{-(SymbolElement)-}\n{-(SymbolElement)-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/symbol.diffB-A.txt",
    "content": "(Statements\n{+(SymbolElement)+}\n{ (SymbolElement)\n->(SymbolElement) }\n{ (SymbolElement)\n->(SymbolElement) }\n{-(SymbolElement)-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/symbol.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Symbol)))) \n  (Statement \n    (Arg \n      (Primary \n        (Symbol)))) \n  (Statement \n    (Arg \n      (Primary \n        (Symbol)))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/symbol.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Symbol)))) \n  (Statement \n    (Arg \n      (Primary \n        (Symbol)))) \n  (Statement \n    (Arg \n      (Primary \n        (Symbol)))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/ternary.A.rb",
    "content": "foo ? case1 : case2\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/ternary.B.rb",
    "content": "bar ? a : b\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/ternary.diffA-B.txt",
    "content": "(Statements\n  (If\n    (Send\n    { (Identifier)\n    ->(Identifier) })\n    (Send\n    { (Identifier)\n    ->(Identifier) })\n    (Send\n    { (Identifier)\n    ->(Identifier) })))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/ternary.diffB-A.txt",
    "content": "(Statements\n  (If\n    (Send\n    { (Identifier)\n    ->(Identifier) })\n    (Send\n    { (Identifier)\n    ->(Identifier) })\n    (Send\n    { (Identifier)\n    ->(Identifier) })))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/ternary.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Conditional \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"case2\"))))) \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"case1\"))))) \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"foo\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/ternary.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Conditional \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"b\"))))) \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"a\"))))) \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"bar\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/unary.A.rb",
    "content": "~a\n!a\n-a\n+a\nnot foo\ndefined? foo\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/unary.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Unary \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"a\")))))))) \n  (Statement \n    (Arg \n      (Unary \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"a\")))))))) \n  (Statement \n    (Arg \n      (Unary \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"a\")))))))) \n  (Statement \n    (Arg \n      (Unary \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"a\")))))))) \n  (Statement \n    (Arg \n      (Unary \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"foo\")))))))) \n  (Statement \n    (Arg \n      (Unary \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"foo\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/undef.A.rb",
    "content": "undef :foo\nundef foo\nundef foo=\nundef +\nundef $FOO\nundef :foo, :bar\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/undef.parseA.txt",
    "content": "(Program \n  (Statement \n    (Undef \n      (MethodName \n        (Symbol)))) \n  (Statement \n    (Undef \n      (MethodName \n        (Identifier \"foo\")))) \n  (Statement \n    (Undef \n      (MethodName \n        (Setter \n          (Identifier \"foo\"))))) \n  (Statement \n    (Undef \n      (MethodName \n        (Operator \"+\")))) \n  (Statement \n    (Undef \n      (MethodName \n        (GlobalVariable \"$FOO\")))) \n  (Statement \n    (Undef \n      (MethodName \n        (Symbol)) \n      (MethodName \n        (Symbol)))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/unless.A.rb",
    "content": "unless foo\n  bar\nelse\n  bat\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/unless.B.rb",
    "content": "unless x\nend\nunless y then\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/unless.diffA-B.txt",
    "content": "(Statements\n  (If\n    (Not\n      (Send\n      { (Identifier)\n      ->(Identifier) }))\n    (Statements\n    {-(Send\n      {-(Identifier)-})-})\n  { (Send\n    {-(Identifier)-})\n  ->(Empty) })\n{+(If\n  {+(Not\n    {+(Send\n      {+(Identifier)+})+})+}\n  {+(Statements\n    {+(Statements)+})+}\n  {+(Empty)+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/unless.diffB-A.txt",
    "content": "(Statements\n  (If\n    (Not\n      (Send\n      { (Identifier)\n      ->(Identifier) }))\n    (Statements\n    {+(Send\n      {+(Identifier)+})+})\n  { (Empty)\n  ->(Send\n    {+(Identifier)+}) })\n{-(If\n  {-(Not\n    {-(Send\n      {-(Identifier)-})-})-}\n  {-(Statements\n    {-(Statements)-})-}\n  {-(Empty)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/unless.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Unless \n          (Else \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"bat\"))))))) \n          (Then \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"bar\"))))))) \n          (Statement \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"foo\")))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/unless.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Unless \n          (Statement \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"x\")))))))))) \n  (Statement \n    (Arg \n      (Primary \n        (Unless \n          (Then) \n          (Statement \n            (Arg \n              (Primary \n                (Lhs \n                  (Variable \n                    (Identifier \"y\")))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/until.A.rb",
    "content": "until foo do\nend\nfoo until done\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/until.B.rb",
    "content": "until foo\n  bar\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/until.diffA-B.txt",
    "content": "(Statements\n  (While\n    (Not\n      (Send\n        (Identifier)))\n  { (Statements)\n  ->(Send\n    {+(Identifier)+}) })\n{-(While\n  {-(Not\n    {-(Send\n      {-(Identifier)-})-})-}\n  {-(Send\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/until.diffB-A.txt",
    "content": "(Statements\n  (While\n    (Not\n      (Send\n        (Identifier)))\n  { (Send\n    {-(Identifier)-})\n  ->(Statements) })\n{+(While\n  {+(Not\n    {+(Send\n      {+(Identifier)+})+})+}\n  {+(Send\n    {+(Identifier)+})+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/until.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Until \n          (Do) \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"foo\"))))))))) \n  (Statement \n    (UntilModifier \n      (Statement \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"foo\")))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"done\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/until.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Until \n          (Do \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"bar\"))))))) \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"foo\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/when-else.A.rb",
    "content": "case foo\nwhen qux\nwhen bar, *a\n  baz\nelse\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/when-else.B.rb",
    "content": "case foo\nwhen bar\n  baz\nwhen x\nwhen y\nelse\n  qoz\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/when-else.diffA-B.txt",
    "content": "(Statements\n  (Match\n    (Send\n      (Identifier))\n    (Statements\n    {+(Pattern\n      {+(Statements\n        {+(Send\n          {+(Identifier)+})+})+}\n      {+(Statements\n        {+(Send\n          {+(Identifier)+})+})+})+}\n      (Pattern\n        (Statements\n          (Send\n          { (Identifier)\n          ->(Identifier) }))\n        (Statements))\n    {+(Pattern\n      {+(Statements\n        {+(Send\n          {+(Identifier)+})+})+}\n      {+(Statements)+})+}\n    {+(Send\n      {+(Identifier)+})+}\n    {-(Pattern\n      {-(Statements\n        {-(Send\n          {-(Identifier)-})-}\n        {-(Send\n          {-(Identifier)-})-})-}\n      {-(Statements\n        {-(Send\n          {-(Identifier)-})-})-})-}\n    {-(Statements)-})))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/when-else.diffB-A.txt",
    "content": "(Statements\n  (Match\n    (Send\n      (Identifier))\n    (Statements\n    {+(Pattern\n      {+(Statements\n        {+(Send\n          {+(Identifier)+})+})+}\n      {+(Statements)+})+}\n      (Pattern\n        (Statements\n          (Send\n            (Identifier))\n        {+(Send\n          {+(Identifier)+})+})\n        (Statements\n          (Send\n            (Identifier))))\n    {+(Statements)+}\n    {-(Pattern\n      {-(Statements\n        {-(Send\n          {-(Identifier)-})-})-}\n      {-(Statements)-})-}\n    {-(Pattern\n      {-(Statements\n        {-(Send\n          {-(Identifier)-})-})-}\n      {-(Statements)-})-}\n    {-(Send\n      {-(Identifier)-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/when-else.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Case \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"foo\"))))) \n          (When \n            (Pattern \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"qux\"))))))) \n          (When \n            (Pattern \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"bar\")))))) \n            (Token) \n            (Pattern \n              (SplatArgument \n                (Arg \n                  (Primary \n                    (Lhs \n                      (Variable \n                        (Identifier \"a\"))))))) \n            (Then \n              (Statement \n                (Arg \n                  (Primary \n                    (Lhs \n                      (Variable \n                        (Identifier \"baz\")))))))) \n          (Else))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/when-else.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Case \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"foo\"))))) \n          (When \n            (Pattern \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"bar\")))))) \n            (Then \n              (Statement \n                (Arg \n                  (Primary \n                    (Lhs \n                      (Variable \n                        (Identifier \"baz\")))))))) \n          (When \n            (Pattern \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"x\"))))))) \n          (When \n            (Pattern \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"y\"))))))) \n          (Else \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"qoz\"))))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/when.A.rb",
    "content": "case foo\nwhen bar\nend\n\ncase\nwhen true; 'foo'\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/when.B.rb",
    "content": "case foo\nwhen bar\n  baz\nwhen a, b\nelse\n  bat\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/when.diffA-B.txt",
    "content": "(Statements\n  (Match\n    (Send\n      (Identifier))\n    (Statements\n      (Pattern\n        (Statements\n          (Send\n            (Identifier)))\n        (Statements\n        {+(Send\n          {+(Identifier)+})+}))\n    {+(Pattern\n      {+(Statements\n        {+(Send\n          {+(Identifier)+})+}\n        {+(Send\n          {+(Identifier)+})+})+}\n      {+(Statements)+})+}\n    {+(Send\n      {+(Identifier)+})+}))\n{-(Match\n  {-(Empty)-}\n  {-(Statements\n    {-(Pattern\n      {-(Statements\n        {-(Boolean)-})-}\n      {-(Statements\n        {-(TextElement)-})-})-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/when.diffB-A.txt",
    "content": "(Statements\n  (Match\n    (Send\n      (Identifier))\n    (Statements\n      (Pattern\n        (Statements\n          (Send\n            (Identifier)))\n        (Statements\n        {-(Send\n          {-(Identifier)-})-}))\n    {-(Pattern\n      {-(Statements\n        {-(Send\n          {-(Identifier)-})-}\n        {-(Send\n          {-(Identifier)-})-})-}\n      {-(Statements)-})-}\n    {-(Send\n      {-(Identifier)-})-}))\n{+(Match\n  {+(Empty)+}\n  {+(Statements\n    {+(Pattern\n      {+(Statements\n        {+(Boolean)+})+}\n      {+(Statements\n        {+(TextElement)+})+})+})+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/when.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Case \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"foo\"))))) \n          (When \n            (Pattern \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"bar\"))))))))))) \n  (Statement \n    (Arg \n      (Primary \n        (Case \n          (When \n            (Pattern \n              (Arg \n                (Primary \n                  (Lhs \n                    (True \"true\"))))) \n            (Then \n              (Statement \n                (Arg \n                  (Primary \n                    (String)))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/when.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (Case \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"foo\"))))) \n          (When \n            (Pattern \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"bar\")))))) \n            (Then \n              (Statement \n                (Arg \n                  (Primary \n                    (Lhs \n                      (Variable \n                        (Identifier \"baz\")))))))) \n          (When \n            (Pattern \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"a\")))))) \n            (Token) \n            (Pattern \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"b\"))))))) \n          (Else \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"bat\"))))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/while.A.rb",
    "content": "while foo do\nend\nfoo while run\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/while.B.rb",
    "content": "while foo\n  bar\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/while.diffA-B.txt",
    "content": "(Statements\n  (While\n    (Send\n      (Identifier))\n  { (Statements)\n  ->(Send\n    {+(Identifier)+}) })\n{-(While\n  {-(Send\n    {-(Identifier)-})-}\n  {-(Send\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/while.diffB-A.txt",
    "content": "(Statements\n  (While\n    (Send\n      (Identifier))\n  { (Send\n    {-(Identifier)-})\n  ->(Statements) })\n{+(While\n  {+(Send\n    {+(Identifier)+})+}\n  {+(Send\n    {+(Identifier)+})+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/while.parseA.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (While \n          (Do) \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"foo\"))))))))) \n  (Statement \n    (WhileModifier \n      (Statement \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"foo\")))))) \n      (Arg \n        (Primary \n          (Lhs \n            (Variable \n              (Identifier \"run\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/while.parseB.txt",
    "content": "(Program \n  (Statement \n    (Arg \n      (Primary \n        (While \n          (Do \n            (Statement \n              (Arg \n                (Primary \n                  (Lhs \n                    (Variable \n                      (Identifier \"bar\"))))))) \n          (Arg \n            (Primary \n              (Lhs \n                (Variable \n                  (Identifier \"foo\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/yield.A.rb",
    "content": "yield foo\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/yield.B.rb",
    "content": "yield\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/yield.diffA-B.txt",
    "content": "(Statements\n  (Yield\n  { (Send\n    {-(Identifier)-})\n  ->(Empty) }))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/yield.diffB-A.txt",
    "content": "(Statements\n  (Yield\n  { (Empty)\n  ->(Send\n    {+(Identifier)+}) }))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/yield.parseA.txt",
    "content": "(Program \n  (Statement \n    (Yield \n      (ArgumentList \n        (Arg \n          (Primary \n            (Lhs \n              (Variable \n                (Identifier \"foo\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/corpus/yield.parseB.txt",
    "content": "(Program \n  (Statement \n    (Yield)))\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/import-graph/app.json",
    "content": "{\n  \"modules\": {\n    \"app\": {\n      \"imports\": [\n        {\n          \"span\": {\n            \"start\": [\n              1,\n              1\n            ],\n            \"end\": [\n              1,\n              15\n            ]\n          },\n          \"path\": \"json\",\n          \"symbols\": [],\n          \"alias\": \"\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              2,\n              1\n            ],\n            \"end\": [\n              2,\n              21\n            ]\n          },\n          \"path\": \"a\",\n          \"symbols\": [],\n          \"alias\": \"\"\n        }\n      ],\n      \"name\": \"app\",\n      \"language\": \"Ruby\",\n      \"declarations\": [\n        {\n          \"span\": {\n            \"start\": [\n              4,\n              1\n            ],\n            \"end\": [\n              6,\n              4\n            ]\n          },\n          \"kind\": \"Method\",\n          \"name\": \"foo\",\n          \"module\": \"app\"\n        }\n      ],\n      \"paths\": [\n        \"test/fixtures/ruby/import-graph/app.rb\"\n      ],\n      \"calls\": [\n        {\n          \"span\": {\n            \"start\": [\n              5,\n              3\n            ],\n            \"end\": [\n              5,\n              9\n            ]\n          },\n          \"symbol\": \"puts\",\n          \"targets\": []\n        },\n        {\n          \"span\": {\n            \"start\": [\n              8,\n              1\n            ],\n            \"end\": [\n              8,\n              7\n            ]\n          },\n          \"symbol\": \"foo\",\n          \"targets\": []\n        }\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/import-graph/app.rb",
    "content": "require \"json\"\nrequire_relative \"a\"\n\ndef foo(x)\n  puts x\nend\n\nfoo(1)\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/reprinting/function.out.rb",
    "content": "def foo(x)\n  x\nend\n5.times() do |i|\n  puts(i)\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/reprinting/function.rb",
    "content": "def foo(x)\n  x\nend\n\n5.times do |i|\n  puts i\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/reprinting/infix.rb",
    "content": "3 - 4 + 10\n1 * 2 + 3\n(1 * 2) + 3\n1 * (2 + 3)\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/tags/class_module.rb",
    "content": "# Public: Foo\nmodule Foo\n\n  # Public: Bar\n  class Bar\n\n    # Public: baz\n    def baz(a)\n      a * 10\n    end\n  end\nend\n\nclass A::B::C\n  def foo\n    puts \"hi\"\n  end\n  def self.foo\n  end\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/tags/simple_method.rb",
    "content": "def foo\n  puts \"hi\"\n  a.bar\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/tags/simple_method_with_docs.rb",
    "content": "# Public: foo\ndef foo\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/tags/unicode_identifiers.rb",
    "content": "# coding: utf-8\ndef 日本語\n  \"hello\"\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/toc/classes.A.rb",
    "content": "class Baz\nend\n\nclass Foo\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/toc/classes.B.rb",
    "content": "class Foo\n  FOO = 1\nend\n\nclass Bar\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/toc/lambda.A.rb",
    "content": "-> { foo }\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/toc/lambda.B.rb",
    "content": "lambda { bar }\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/toc/method-starts-with-two-identifiers.A.rb",
    "content": "def foo\n  bar\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/toc/method-starts-with-two-identifiers.B.rb",
    "content": "def foo\n  bar\n  baz\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/toc/methods.A.rb",
    "content": "def bar\nend\n\ndef baz(x, y, z)\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/toc/methods.B.rb",
    "content": "def self.foo(a, *)\nend\n\ndef bar\n  puts \"hello\"\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/toc/methods.X.rb",
    "content": "def bar\nend\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/toc/unicode.A.rb",
    "content": "# ’\n# RIGHT SINGLE QUOTATION MARK\n# Unicode: U+2019, UTF-8: E2 80 99\n\"’\"\n"
  },
  {
    "path": "semantic/test/fixtures/ruby/toc/unicode.B.rb",
    "content": "# ’\n# RIGHT SINGLE QUOTATION MARK\n# Unicode: U+2019, UTF-8: E2 80 99\n\"’\"\n\ndef foo(a, b, c)\nend\n"
  },
  {
    "path": "semantic/test/fixtures/tsx/corpus/jsx-elements.A.tsx",
    "content": "var a = <Text {...css(styles.titleText)}>{children}</Text>\nvar b = <Foo.Text></Foo.Text>\nvar c = <Foo.Text foo bar=\"zed\" />\n"
  },
  {
    "path": "semantic/test/fixtures/tsx/corpus/jsx-elements.B.tsx",
    "content": "var a = <Text bar = {styles.titleText}>{children}</Text>\n"
  },
  {
    "path": "semantic/test/fixtures/tsx/corpus/jsx-elements.diffA-B.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Empty)\n      (Identifier)\n      (JsxElement\n        (JsxOpeningElement\n          (Identifier)\n          (Empty)\n        {+(JsxAttribute\n          {+(Identifier)+}\n          {+(JsxExpression\n            {+(MemberAccess\n              {+(Identifier)+}\n              {+(Identifier)+})+})+})+}\n        {-(JsxExpression\n          {-(Call\n            {-(Identifier)-}\n            {-(MemberAccess\n              {-(Identifier)-}\n              {-(Identifier)-})-}\n            {-(Empty)-})-})-})\n        (JsxExpression\n          (Identifier))\n        (JsxClosingElement\n          (Identifier)))))\n{-(VariableDeclaration\n  {-(Assignment\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(JsxElement\n      {-(JsxOpeningElement\n        {-(NestedIdentifier\n          {-(Identifier)-}\n          {-(Identifier)-})-}\n        {-(Empty)-})-}\n      {-(JsxClosingElement\n        {-(NestedIdentifier\n          {-(Identifier)-}\n          {-(Identifier)-})-})-})-})-})-}\n{-(VariableDeclaration\n  {-(Assignment\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(JsxSelfClosingElement\n      {-(NestedIdentifier\n        {-(Identifier)-}\n        {-(Identifier)-})-}\n      {-(JsxAttribute\n        {-(Identifier)-}\n        {-(Empty)-})-}\n      {-(JsxAttribute\n        {-(Identifier)-}\n        {-(TextElement)-})-})-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/tsx/corpus/jsx-elements.diffB-A.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Empty)\n      (Identifier)\n      (JsxElement\n        (JsxOpeningElement\n          (Identifier)\n          (Empty)\n        {+(JsxExpression\n          {+(Call\n            {+(Identifier)+}\n            {+(MemberAccess\n              {+(Identifier)+}\n              {+(Identifier)+})+}\n            {+(Empty)+})+})+}\n        {-(JsxAttribute\n          {-(Identifier)-}\n          {-(JsxExpression\n            {-(MemberAccess\n              {-(Identifier)-}\n              {-(Identifier)-})-})-})-})\n        (JsxExpression\n          (Identifier))\n        (JsxClosingElement\n          (Identifier)))))\n{+(VariableDeclaration\n  {+(Assignment\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(JsxElement\n      {+(JsxOpeningElement\n        {+(NestedIdentifier\n          {+(Identifier)+}\n          {+(Identifier)+})+}\n        {+(Empty)+})+}\n      {+(JsxClosingElement\n        {+(NestedIdentifier\n          {+(Identifier)+}\n          {+(Identifier)+})+})+})+})+})+}\n{+(VariableDeclaration\n  {+(Assignment\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(JsxSelfClosingElement\n      {+(NestedIdentifier\n        {+(Identifier)+}\n        {+(Identifier)+})+}\n      {+(JsxAttribute\n        {+(Identifier)+}\n        {+(Empty)+})+}\n      {+(JsxAttribute\n        {+(Identifier)+}\n        {+(TextElement)+})+})+})+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/tsx/corpus/jsx-elements.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (VariableDeclaration \n        (VariableDeclarator \n          (Expression \n            (JsxElement \n              (JsxClosingElement \n                (Identifier \"Text\")) \n              (JsxOpeningElement \n                (JsxExpression \n                  (SpreadElement \n                    (Expression \n                      (CallExpression \n                        (Expression \n                          (Identifier \"css\")) \n                        (Arguments \n                          (Expression \n                            (MemberExpression \n                              (PropertyIdentifier \"titleText\") \n                              (Expression \n                                (Identifier \"styles\"))))))))) \n                (Identifier \"Text\")) \n              (JsxExpression \n                (Expression \n                  (Identifier \"children\"))))) \n          (Identifier \"a\"))))) \n  (Statement \n    (Declaration \n      (VariableDeclaration \n        (VariableDeclarator \n          (Expression \n            (JsxElement \n              (JsxClosingElement \n                (NestedIdentifier \n                  (Identifier \"Foo\") \n                  (Identifier \"Text\"))) \n              (JsxOpeningElement \n                (NestedIdentifier \n                  (Identifier \"Foo\") \n                  (Identifier \"Text\"))))) \n          (Identifier \"b\"))))) \n  (Statement \n    (Declaration \n      (VariableDeclaration \n        (VariableDeclarator \n          (Expression \n            (JsxSelfClosingElement \n              (JsxAttribute \n                (PropertyIdentifier \"foo\")) \n              (JsxAttribute \n                (PropertyIdentifier \"bar\") \n                (String)) \n              (NestedIdentifier \n                (Identifier \"Foo\") \n                (Identifier \"Text\")))) \n          (Identifier \"c\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/tsx/corpus/jsx-elements.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (VariableDeclaration \n        (VariableDeclarator \n          (Expression \n            (JsxElement \n              (JsxClosingElement \n                (Identifier \"Text\")) \n              (JsxOpeningElement \n                (JsxAttribute \n                  (PropertyIdentifier \"bar\") \n                  (JsxExpression \n                    (Expression \n                      (MemberExpression \n                        (PropertyIdentifier \"titleText\") \n                        (Expression \n                          (Identifier \"styles\")))))) \n                (Identifier \"Text\")) \n              (JsxExpression \n                (Expression \n                  (Identifier \"children\"))))) \n          (Identifier \"a\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/.gitignore",
    "content": "*.js\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/a.ts",
    "content": "function baz() {\n  return \"this is the baz function\"\n}\n\nexport { baz }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/access_control/adder.ts",
    "content": "class Adder {\n    public  x: number;\n    private y: number;\n    public static w: number;\n    private static z: number;\n\n    private private_add() {}\n\n    constructor(x, y) {\n      this.x = x;\n      this.y = y;\n    }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/access_control/private_field_definition.ts",
    "content": "import { Adder } from \"./adder\"\n\nvar foo = new Adder(1, 2)\nfoo.y;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/access_control/private_method.ts",
    "content": "import { Adder } from \"./adder\"\n\nvar foo = new Adder(1, 2)\nfoo.private_add()\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/access_control/private_static_field_definition.ts",
    "content": "import { Adder } from \"./adder\"\n\nAdder.z\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/await.ts",
    "content": "async function f2() {\n  var y = await 20;\n  return y;\n}\nf2();\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/bad-export.ts",
    "content": "export { pip } from \"./pip\"\nexport { pip } from \"./foo\"\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/band.ts",
    "content": "1 & 2;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/baz.ts",
    "content": "export { foo } from \"./foo\"\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/bor.ts",
    "content": "1 | 2;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/bxor.ts",
    "content": "1 ^ 2;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/class1.ts",
    "content": "import { Adder } from \"./class2\"\n\nvar foo = new Adder(5)\nfoo.add()\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/class2.ts",
    "content": "class Adder {\n    summand: number;\n    constructor(summand: number) {\n        this.summand = summand;\n    }\n    add() {\n        return 4 + this.summand;\n    }\n}\n\nexport { Adder }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/complement.ts",
    "content": "~1;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/delete.ts",
    "content": "let x = 3;\ndelete x;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/early-return.ts",
    "content": "function foo() {\n    return 123;\n    return 456;\n}\n\nfoo()\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/foo/b.ts",
    "content": "function quz() {\n  return \"this is the quz function\"\n}\n\nexport { quz }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/foo.ts",
    "content": "function foo() {\n  return \"this is the foo function\";\n}\n\nfunction baz() {\n  return \"this is the baz function\";\n}\n\nexport { foo, baz }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/foo2.ts",
    "content": "function foo(x) {\n    return x;\n}\n\nexport { foo }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/lshift.ts",
    "content": "1 << 2;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/main.ts",
    "content": "// Use `tsc main.ts && node main.js` to test evaluation\n\nimport { baz as bar } from \"./foo\";\nimport { quz } from \"./foo/b\";\n\nquz()\nbar()\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/main1.ts",
    "content": "import * as b from \"./foo\"\nimport z = require(\"./foo\")\n\nb.baz()\nz.foo()\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/main2.ts",
    "content": "import \"./foo\"\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/main3.ts",
    "content": "import \"./a\";\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/main4.ts",
    "content": "import { foo } from \"./foo\"\n\nfoo()\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/main5.ts",
    "content": "import { foo } from \"./foo\"\n\nfoo(\"hello\")\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/main6.ts",
    "content": "import { foo } from \"./baz\"\n\nfoo()\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/main7.ts",
    "content": "import default from \"./default\"\n\ndefault()\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/pip.ts",
    "content": "export { pip }\n\nfunction pip() {\n  return \"this is the pip function\"\n}\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/rshift.ts",
    "content": "1 >> 2;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/sequence-expression.ts",
    "content": "let x = (2,3);\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/unsignedrshift.ts",
    "content": "1 >>> 2;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/analysis/void.ts",
    "content": "function foo() {\n  return \"hi\";\n}\n\nvoid foo();\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ambient-declarations.A.ts",
    "content": "declare class Error {\n  constructor: Function\n}\n\ndeclare var foo: number;\n\ndeclare function greet(greeting: string): void;\n\ndeclare namespace myLib {\n    function makeGreeting(s: string): string;\n    let numberOfGreetings: number;\n\n    interface LogOptions {\n      verbose?: boolean;\n    }\n    interface AlertOptions {\n      modal: boolean;\n      title?: string;\n      color?: string;\n    }\n}\n\ndeclare class Greeter {\n  constructor(greeting: string);\n\n  greeting: string;\n  showGreeting(): void;\n}\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ambient-declarations.B.ts",
    "content": "declare namespace Erro {\n}\n\ndeclare class Bar {\n}\n\ndeclare interface LogOptions {\n}\n\n\ndeclare class Greeter {\n  constructor(greeting: string);\n\n  greeting: string;\n  showGreeting(): void;\n}\n\ndeclare function foo(): Bar;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ambient-declarations.diffA-B.txt",
    "content": "(Statements\n{+(AmbientDeclaration\n  {+(InternalModule\n    {+(Identifier)+})+})+}\n  (AmbientDeclaration\n    (Class\n    { (TypeIdentifier)\n    ->(TypeIdentifier) }\n    { (PublicFieldDefinition\n      {-(Empty)-}\n      {-(Annotation\n        {-(TypeIdentifier)-})-}\n      {-(Identifier)-}\n      {-(Empty)-})\n    ->(Statements) }))\n  (AmbientDeclaration\n  { (VariableDeclaration\n    {-(Assignment\n      {-(Annotation\n        {-(PredefinedType)-})-}\n      {-(Identifier)-}\n      {-(Empty)-})-})\n  ->(InterfaceDeclaration\n    {+(Empty)+}\n    {+(TypeIdentifier)+}\n    {+(ObjectType)+}) })\n{-(AmbientDeclaration\n  {-(AmbientFunction\n    {-(Empty)-}\n    {-(Annotation\n      {-(PredefinedType)-})-}\n    {-(Identifier)-}\n    {-(RequiredParameter\n      {-(Empty)-}\n      {-(Annotation\n        {-(PredefinedType)-})-}\n      {-(Identifier)-}\n      {-(Empty)-})-})-})-}\n{-(AmbientDeclaration\n  {-(InternalModule\n    {-(Identifier)-}\n    {-(AmbientFunction\n      {-(Empty)-}\n      {-(Annotation\n        {-(PredefinedType)-})-}\n      {-(Identifier)-}\n      {-(RequiredParameter\n        {-(Empty)-}\n        {-(Annotation\n          {-(PredefinedType)-})-}\n        {-(Identifier)-}\n        {-(Empty)-})-})-}\n    {-(VariableDeclaration\n      {-(Assignment\n        {-(Annotation\n          {-(PredefinedType)-})-}\n        {-(Identifier)-}\n        {-(Empty)-})-})-}\n    {-(InterfaceDeclaration\n      {-(Empty)-}\n      {-(TypeIdentifier)-}\n      {-(ObjectType\n        {-(PropertySignature\n          {-(Empty)-}\n          {-(Annotation\n            {-(PredefinedType)-})-}\n          {-(Identifier)-})-})-})-}\n    {-(InterfaceDeclaration\n      {-(Empty)-}\n      {-(TypeIdentifier)-}\n      {-(ObjectType\n        {-(PropertySignature\n          {-(Empty)-}\n          {-(Annotation\n            {-(PredefinedType)-})-}\n          {-(Identifier)-})-}\n        {-(PropertySignature\n          {-(Empty)-}\n          {-(Annotation\n            {-(PredefinedType)-})-}\n          {-(Identifier)-})-}\n        {-(PropertySignature\n          {-(Empty)-}\n          {-(Annotation\n            {-(PredefinedType)-})-}\n          {-(Identifier)-})-})-})-})-})-}\n  (AmbientDeclaration\n    (Class\n      (TypeIdentifier)\n      (Statements\n        (MethodSignature\n          (Empty)\n          (Empty)\n          (Empty)\n          (Identifier)\n          (RequiredParameter\n            (Empty)\n            (Annotation\n              (PredefinedType))\n            (Identifier)\n            (Empty)))\n        (PublicFieldDefinition\n          (Empty)\n          (Annotation\n            (PredefinedType))\n          (Identifier)\n          (Empty))\n        (MethodSignature\n          (Empty)\n          (Empty)\n          (Annotation\n            (PredefinedType))\n          (Identifier)))))\n{+(AmbientDeclaration\n  {+(AmbientFunction\n    {+(Empty)+}\n    {+(Annotation\n      {+(TypeIdentifier)+})+}\n    {+(Identifier)+})+})+})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ambient-declarations.diffB-A.txt",
    "content": "(Statements\n{+(AmbientDeclaration\n  {+(Class\n    {+(TypeIdentifier)+}\n    {+(PublicFieldDefinition\n      {+(Empty)+}\n      {+(Annotation\n        {+(TypeIdentifier)+})+}\n      {+(Identifier)+}\n      {+(Empty)+})+})+})+}\n{+(AmbientDeclaration\n  {+(VariableDeclaration\n    {+(Assignment\n      {+(Annotation\n        {+(PredefinedType)+})+}\n      {+(Identifier)+}\n      {+(Empty)+})+})+})+}\n{+(AmbientDeclaration\n  {+(AmbientFunction\n    {+(Empty)+}\n    {+(Annotation\n      {+(PredefinedType)+})+}\n    {+(Identifier)+}\n    {+(RequiredParameter\n      {+(Empty)+}\n      {+(Annotation\n        {+(PredefinedType)+})+}\n      {+(Identifier)+}\n      {+(Empty)+})+})+})+}\n{+(AmbientDeclaration\n  {+(InternalModule\n    {+(Identifier)+}\n    {+(AmbientFunction\n      {+(Empty)+}\n      {+(Annotation\n        {+(PredefinedType)+})+}\n      {+(Identifier)+}\n      {+(RequiredParameter\n        {+(Empty)+}\n        {+(Annotation\n          {+(PredefinedType)+})+}\n        {+(Identifier)+}\n        {+(Empty)+})+})+}\n    {+(VariableDeclaration\n      {+(Assignment\n        {+(Annotation\n          {+(PredefinedType)+})+}\n        {+(Identifier)+}\n        {+(Empty)+})+})+}\n    {+(InterfaceDeclaration\n      {+(Empty)+}\n      {+(TypeIdentifier)+}\n      {+(ObjectType\n        {+(PropertySignature\n          {+(Empty)+}\n          {+(Annotation\n            {+(PredefinedType)+})+}\n          {+(Identifier)+})+})+})+}\n    {+(InterfaceDeclaration\n      {+(Empty)+}\n      {+(TypeIdentifier)+}\n      {+(ObjectType\n        {+(PropertySignature\n          {+(Empty)+}\n          {+(Annotation\n            {+(PredefinedType)+})+}\n          {+(Identifier)+})+}\n        {+(PropertySignature\n          {+(Empty)+}\n          {+(Annotation\n            {+(PredefinedType)+})+}\n          {+(Identifier)+})+}\n        {+(PropertySignature\n          {+(Empty)+}\n          {+(Annotation\n            {+(PredefinedType)+})+}\n          {+(Identifier)+})+})+})+})+})+}\n{-(AmbientDeclaration\n  {-(InternalModule\n    {-(Identifier)-})-})-}\n{-(AmbientDeclaration\n  {-(Class\n    {-(TypeIdentifier)-}\n    {-(Statements)-})-})-}\n{-(AmbientDeclaration\n  {-(InterfaceDeclaration\n    {-(Empty)-}\n    {-(TypeIdentifier)-}\n    {-(ObjectType)-})-})-}\n  (AmbientDeclaration\n    (Class\n      (TypeIdentifier)\n      (Statements\n        (MethodSignature\n          (Empty)\n          (Empty)\n          (Empty)\n          (Identifier)\n          (RequiredParameter\n            (Empty)\n            (Annotation\n              (PredefinedType))\n            (Identifier)\n            (Empty)))\n        (PublicFieldDefinition\n          (Empty)\n          (Annotation\n            (PredefinedType))\n          (Identifier)\n          (Empty))\n        (MethodSignature\n          (Empty)\n          (Empty)\n          (Annotation\n            (PredefinedType))\n          (Identifier)))))\n{-(AmbientDeclaration\n  {-(AmbientFunction\n    {-(Empty)-}\n    {-(Annotation\n      {-(TypeIdentifier)-})-}\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ambient-declarations.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (AmbientDeclaration \n        (Declaration \n          (ClassDeclaration \n            (ClassBody \n              (PublicFieldDefinition \n                (PropertyIdentifier \"constructor\") \n                (TypeAnnotation \n                  (TypeIdentifier \"Function\")))) \n            (TypeIdentifier \"Error\")))))) \n  (Statement \n    (Declaration \n      (AmbientDeclaration \n        (Declaration \n          (VariableDeclaration \n            (VariableDeclarator \n              (Identifier \"foo\") \n              (TypeAnnotation \n                (PredefinedType \"number\")))))))) \n  (Statement \n    (Declaration \n      (AmbientDeclaration \n        (Declaration \n          (FunctionSignature \n            (TypeAnnotation \n              (PredefinedType \"void\")) \n            (Identifier \"greet\") \n            (FormalParameters \n              (RequiredParameter \n                (Identifier \"greeting\") \n                (TypeAnnotation \n                  (PredefinedType \"string\"))))))))) \n  (Statement \n    (Declaration \n      (AmbientDeclaration \n        (Declaration \n          (InternalModule \n            (StatementBlock \n              (Statement \n                (Declaration \n                  (FunctionSignature \n                    (TypeAnnotation \n                      (PredefinedType \"string\")) \n                    (Identifier \"makeGreeting\") \n                    (FormalParameters \n                      (RequiredParameter \n                        (Identifier \"s\") \n                        (TypeAnnotation \n                          (PredefinedType \"string\"))))))) \n              (Statement \n                (Declaration \n                  (LexicalDeclaration \n                    (VariableDeclarator \n                      (Identifier \"numberOfGreetings\") \n                      (TypeAnnotation \n                        (PredefinedType \"number\")))))) \n              (Statement \n                (Declaration \n                  (InterfaceDeclaration \n                    (ObjectType \n                      (PropertySignature \n                        (PropertyIdentifier \"verbose\") \n                        (TypeAnnotation \n                          (PredefinedType \"boolean\")))) \n                    (TypeIdentifier \"LogOptions\")))) \n              (Statement \n                (Declaration \n                  (InterfaceDeclaration \n                    (ObjectType \n                      (PropertySignature \n                        (PropertyIdentifier \"modal\") \n                        (TypeAnnotation \n                          (PredefinedType \"boolean\"))) \n                      (PropertySignature \n                        (PropertyIdentifier \"title\") \n                        (TypeAnnotation \n                          (PredefinedType \"string\"))) \n                      (PropertySignature \n                        (PropertyIdentifier \"color\") \n                        (TypeAnnotation \n                          (PredefinedType \"string\")))) \n                    (TypeIdentifier \"AlertOptions\"))))) \n            (Identifier \"myLib\")))))) \n  (Statement \n    (Declaration \n      (AmbientDeclaration \n        (Declaration \n          (ClassDeclaration \n            (ClassBody \n              (MethodSignature \n                (PropertyIdentifier \"constructor\") \n                (FormalParameters \n                  (RequiredParameter \n                    (Identifier \"greeting\") \n                    (TypeAnnotation \n                      (PredefinedType \"string\"))))) \n              (PublicFieldDefinition \n                (PropertyIdentifier \"greeting\") \n                (TypeAnnotation \n                  (PredefinedType \"string\"))) \n              (MethodSignature \n                (TypeAnnotation \n                  (PredefinedType \"void\")) \n                (PropertyIdentifier \"showGreeting\") \n                (FormalParameters))) \n            (TypeIdentifier \"Greeter\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ambient-declarations.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (AmbientDeclaration \n        (Declaration \n          (InternalModule \n            (StatementBlock) \n            (Identifier \"Erro\")))))) \n  (Statement \n    (Declaration \n      (AmbientDeclaration \n        (Declaration \n          (ClassDeclaration \n            (ClassBody) \n            (TypeIdentifier \"Bar\")))))) \n  (Statement \n    (Declaration \n      (AmbientDeclaration \n        (Declaration \n          (InterfaceDeclaration \n            (ObjectType) \n            (TypeIdentifier \"LogOptions\")))))) \n  (Statement \n    (Declaration \n      (AmbientDeclaration \n        (Declaration \n          (ClassDeclaration \n            (ClassBody \n              (MethodSignature \n                (PropertyIdentifier \"constructor\") \n                (FormalParameters \n                  (RequiredParameter \n                    (Identifier \"greeting\") \n                    (TypeAnnotation \n                      (PredefinedType \"string\"))))) \n              (PublicFieldDefinition \n                (PropertyIdentifier \"greeting\") \n                (TypeAnnotation \n                  (PredefinedType \"string\"))) \n              (MethodSignature \n                (TypeAnnotation \n                  (PredefinedType \"void\")) \n                (PropertyIdentifier \"showGreeting\") \n                (FormalParameters))) \n            (TypeIdentifier \"Greeter\")))))) \n  (Statement \n    (Declaration \n      (AmbientDeclaration \n        (Declaration \n          (FunctionSignature \n            (TypeAnnotation \n              (TypeIdentifier \"Bar\")) \n            (Identifier \"foo\") \n            (FormalParameters)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ambient-exports.A.ts",
    "content": "export default class Foo{}\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ambient-exports.B.ts",
    "content": "export default function bar(x: number, y: number) {\n    return { x, y };\n}\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ambient-exports.diffA-B.txt",
    "content": "(Statements\n  (DefaultExport\n  { (Class\n    {-(TypeIdentifier)-}\n    {-(Statements)-})\n  ->(Function\n    {+(Empty)+}\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(RequiredParameter\n      {+(Empty)+}\n      {+(Annotation\n        {+(PredefinedType)+})+}\n      {+(Identifier)+}\n      {+(Empty)+})+}\n    {+(RequiredParameter\n      {+(Empty)+}\n      {+(Annotation\n        {+(PredefinedType)+})+}\n      {+(Identifier)+}\n      {+(Empty)+})+}\n    {+(StatementBlock\n      {+(Return\n        {+(Hash\n          {+(ShorthandPropertyIdentifier)+}\n          {+(ShorthandPropertyIdentifier)+})+})+})+}) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ambient-exports.diffB-A.txt",
    "content": "(Statements\n  (DefaultExport\n  { (Function\n    {-(Empty)-}\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(RequiredParameter\n      {-(Empty)-}\n      {-(Annotation\n        {-(PredefinedType)-})-}\n      {-(Identifier)-}\n      {-(Empty)-})-}\n    {-(RequiredParameter\n      {-(Empty)-}\n      {-(Annotation\n        {-(PredefinedType)-})-}\n      {-(Identifier)-}\n      {-(Empty)-})-}\n    {-(StatementBlock\n      {-(Return\n        {-(Hash\n          {-(ShorthandPropertyIdentifier)-}\n          {-(ShorthandPropertyIdentifier)-})-})-})-})\n  ->(Class\n    {+(TypeIdentifier)+}\n    {+(Statements)+}) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ambient-exports.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExportStatement \n      (Expression \n        (Class \n          (ClassBody) \n          (TypeIdentifier \"Foo\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ambient-exports.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExportStatement \n      (Expression \n        (Function \n          (StatementBlock \n            (Statement \n              (ReturnStatement \n                (Expression \n                  (Object \n                    (ShorthandPropertyIdentifier \"x\") \n                    (ShorthandPropertyIdentifier \"y\")))))) \n          (Identifier \"bar\") \n          (FormalParameters \n            (RequiredParameter \n              (Identifier \"x\") \n              (TypeAnnotation \n                (PredefinedType \"number\"))) \n            (RequiredParameter \n              (Identifier \"y\") \n              (TypeAnnotation \n                (PredefinedType \"number\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ambient-type-declarations.A.ts",
    "content": "declare type IndexableType = string | number | Date | Array<string | number | Date>;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ambient-type-declarations.B.ts",
    "content": "type IndexableType = string | number | Date | Array<string | number | Date>;"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ambient-type-declarations.diffA-B.txt",
    "content": "(Statements\n{+(TypeAlias\n  {+(Empty)+}\n  {+(TypeIdentifier)+}\n  {+(Union\n    {+(Union\n      {+(Union\n        {+(PredefinedType)+}\n        {+(PredefinedType)+})+}\n      {+(TypeIdentifier)+})+}\n    {+(GenericType\n      {+(TypeIdentifier)+}\n      {+(TypeArguments\n        {+(Union\n          {+(Union\n            {+(PredefinedType)+}\n            {+(PredefinedType)+})+}\n          {+(TypeIdentifier)+})+})+})+})+})+}\n{-(AmbientDeclaration\n  {-(TypeAlias\n    {-(Empty)-}\n    {-(TypeIdentifier)-}\n    {-(Union\n      {-(Union\n        {-(Union\n          {-(PredefinedType)-}\n          {-(PredefinedType)-})-}\n        {-(TypeIdentifier)-})-}\n      {-(GenericType\n        {-(TypeIdentifier)-}\n        {-(TypeArguments\n          {-(Union\n            {-(Union\n              {-(PredefinedType)-}\n              {-(PredefinedType)-})-}\n            {-(TypeIdentifier)-})-})-})-})-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ambient-type-declarations.diffB-A.txt",
    "content": "(Statements\n{+(AmbientDeclaration\n  {+(TypeAlias\n    {+(Empty)+}\n    {+(TypeIdentifier)+}\n    {+(Union\n      {+(Union\n        {+(Union\n          {+(PredefinedType)+}\n          {+(PredefinedType)+})+}\n        {+(TypeIdentifier)+})+}\n      {+(GenericType\n        {+(TypeIdentifier)+}\n        {+(TypeArguments\n          {+(Union\n            {+(Union\n              {+(PredefinedType)+}\n              {+(PredefinedType)+})+}\n            {+(TypeIdentifier)+})+})+})+})+})+})+}\n{-(TypeAlias\n  {-(Empty)-}\n  {-(TypeIdentifier)-}\n  {-(Union\n    {-(Union\n      {-(Union\n        {-(PredefinedType)-}\n        {-(PredefinedType)-})-}\n      {-(TypeIdentifier)-})-}\n    {-(GenericType\n      {-(TypeIdentifier)-}\n      {-(TypeArguments\n        {-(Union\n          {-(Union\n            {-(PredefinedType)-}\n            {-(PredefinedType)-})-}\n          {-(TypeIdentifier)-})-})-})-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ambient-type-declarations.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (AmbientDeclaration \n        (Declaration \n          (TypeAliasDeclaration \n            (UnionType \n              (UnionType \n                (UnionType \n                  (PredefinedType \"string\") \n                  (PredefinedType \"number\")) \n                (TypeIdentifier \"Date\")) \n              (GenericType \n                (TypeIdentifier \"Array\") \n                (TypeArguments \n                  (UnionType \n                    (UnionType \n                      (PredefinedType \"string\") \n                      (PredefinedType \"number\")) \n                    (TypeIdentifier \"Date\"))))) \n            (TypeIdentifier \"IndexableType\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ambient-type-declarations.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (TypeAliasDeclaration \n        (UnionType \n          (UnionType \n            (UnionType \n              (PredefinedType \"string\") \n              (PredefinedType \"number\")) \n            (TypeIdentifier \"Date\")) \n          (GenericType \n            (TypeIdentifier \"Array\") \n            (TypeArguments \n              (UnionType \n                (UnionType \n                  (PredefinedType \"string\") \n                  (PredefinedType \"number\")) \n                (TypeIdentifier \"Date\"))))) \n        (TypeIdentifier \"IndexableType\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/anonymous-function.A.ts",
    "content": "function(a,b) { return a + b; }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/anonymous-function.B.ts",
    "content": "function(b,c) { return b * c; }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/anonymous-function.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Empty)\n  {-(RequiredParameter\n    {-(Empty)-}\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(Empty)-})-}\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n  {+(RequiredParameter\n    {+(Empty)+}\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(Empty)+})+}\n    (StatementBlock\n      (Return\n      { (Plus\n        {-(Identifier)-}\n        {-(Identifier)-})\n      ->(Times\n        {+(Identifier)+}\n        {+(Identifier)+}) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/anonymous-function.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Empty)\n  {+(RequiredParameter\n    {+(Empty)+}\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(Empty)+})+}\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n  {-(RequiredParameter\n    {-(Empty)-}\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(Empty)-})-}\n    (StatementBlock\n      (Return\n      { (Times\n        {-(Identifier)-}\n        {-(Identifier)-})\n      ->(Plus\n        {+(Identifier)+}\n        {+(Identifier)+}) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/anonymous-function.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Function \n          (StatementBlock \n            (Statement \n              (ReturnStatement \n                (Expression \n                  (BinaryExpression \n                    (Token) \n                    (Expression \n                      (Identifier \"a\")) \n                    (Expression \n                      (Identifier \"b\"))))))) \n          (FormalParameters \n            (RequiredParameter \n              (Identifier \"a\")) \n            (RequiredParameter \n              (Identifier \"b\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/anonymous-function.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Function \n          (StatementBlock \n            (Statement \n              (ReturnStatement \n                (Expression \n                  (BinaryExpression \n                    (Token) \n                    (Expression \n                      (Identifier \"b\")) \n                    (Expression \n                      (Identifier \"c\"))))))) \n          (FormalParameters \n            (RequiredParameter \n              (Identifier \"b\")) \n            (RequiredParameter \n              (Identifier \"c\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/anonymous-parameterless-function.A.ts",
    "content": "function() { return 'hi'; }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/anonymous-parameterless-function.B.ts",
    "content": "function() { return 'hello'; }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/anonymous-parameterless-function.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Empty)\n    (StatementBlock\n      (Return\n      { (TextElement)\n      ->(TextElement) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/anonymous-parameterless-function.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Empty)\n    (StatementBlock\n      (Return\n      { (TextElement)\n      ->(TextElement) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/anonymous-parameterless-function.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Function \n          (StatementBlock \n            (Statement \n              (ReturnStatement \n                (Expression \n                  (String))))) \n          (FormalParameters))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/anonymous-parameterless-function.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Function \n          (StatementBlock \n            (Statement \n              (ReturnStatement \n                (Expression \n                  (String))))) \n          (FormalParameters))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/array-type.A.ts",
    "content": "let x: A[];"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/array-type.B.ts",
    "content": "let x: [A,B];\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/array-type.diffA-B.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Annotation\n      { (ArrayType\n        {-(TypeIdentifier)-})\n      ->(Tuple\n        {+(TypeIdentifier)+}\n        {+(TypeIdentifier)+}) })\n      (Identifier)\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/array-type.diffB-A.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Annotation\n      { (Tuple\n        {-(TypeIdentifier)-}\n        {-(TypeIdentifier)-})\n      ->(ArrayType\n        {+(TypeIdentifier)+}) })\n      (Identifier)\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/array-type.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (LexicalDeclaration \n        (VariableDeclarator \n          (Identifier \"x\") \n          (TypeAnnotation \n            (ArrayType \n              (TypeIdentifier \"A\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/array-type.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (LexicalDeclaration \n        (VariableDeclarator \n          (Identifier \"x\") \n          (TypeAnnotation \n            (TupleType \n              (TypeIdentifier \"A\") \n              (TypeIdentifier \"B\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/array.A.ts",
    "content": "[ \"item1\" ];\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/array.B.ts",
    "content": "[ \"item1\", \"item2\" ];\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/array.diffA-B.txt",
    "content": "(Statements\n  (Array\n    (TextElement)\n  {+(TextElement)+}))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/array.diffB-A.txt",
    "content": "(Statements\n  (Array\n    (TextElement)\n  {-(TextElement)-}))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/array.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Array \n          (Expression \n            (String)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/array.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Array \n          (Expression \n            (String)) \n          (Expression \n            (String)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/arrow-function.A.ts",
    "content": "(f, g) => { return h; };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/arrow-function.B.ts",
    "content": "(f, g) => { return g; };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/arrow-function.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Empty)\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n      (Return\n      { (Identifier)\n      ->(Identifier) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/arrow-function.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Empty)\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n      (Return\n      { (Identifier)\n      ->(Identifier) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/arrow-function.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (ArrowFunction \n          (StatementBlock \n            (Statement \n              (ReturnStatement \n                (Expression \n                  (Identifier \"h\"))))) \n          (FormalParameters \n            (RequiredParameter \n              (Identifier \"f\")) \n            (RequiredParameter \n              (Identifier \"g\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/arrow-function.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (ArrowFunction \n          (StatementBlock \n            (Statement \n              (ReturnStatement \n                (Expression \n                  (Identifier \"g\"))))) \n          (FormalParameters \n            (RequiredParameter \n              (Identifier \"f\")) \n            (RequiredParameter \n              (Identifier \"g\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/assignment-pattern.A.ts",
    "content": "var { x = 0 } = foo;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/assignment-pattern.B.ts",
    "content": "var { y = 1 } = foo;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/assignment-pattern.diffA-B.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Empty)\n      (Hash\n        (Assignment\n        { (ShorthandPropertyIdentifier)\n        ->(ShorthandPropertyIdentifier) }\n        { (Float)\n        ->(Float) }))\n      (Identifier))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/assignment-pattern.diffB-A.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Empty)\n      (Hash\n        (Assignment\n        { (ShorthandPropertyIdentifier)\n        ->(ShorthandPropertyIdentifier) }\n        { (Float)\n        ->(Float) }))\n      (Identifier))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/assignment-pattern.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (VariableDeclaration \n        (VariableDeclarator \n          (Expression \n            (Identifier \"foo\")) \n          (DestructuringPattern \n            (ObjectPattern \n              (AssignmentPattern \n                (ShorthandPropertyIdentifier \"x\") \n                (Expression \n                  (Number \"0\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/assignment-pattern.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (VariableDeclaration \n        (VariableDeclarator \n          (Expression \n            (Identifier \"foo\")) \n          (DestructuringPattern \n            (ObjectPattern \n              (AssignmentPattern \n                (ShorthandPropertyIdentifier \"y\") \n                (Expression \n                  (Number \"1\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/assignment.A.ts",
    "content": "x = 0;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/assignment.B.ts",
    "content": "x = 1;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/assignment.diffA-B.txt",
    "content": "(Statements\n  (Assignment\n    (Identifier)\n  { (Float)\n  ->(Float) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/assignment.diffB-A.txt",
    "content": "(Statements\n  (Assignment\n    (Identifier)\n  { (Float)\n  ->(Float) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/assignment.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AssignmentExpression \n          (Identifier \"x\") \n          (Expression \n            (Number \"0\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/assignment.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AssignmentExpression \n          (Identifier \"x\") \n          (Expression \n            (Number \"1\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/bitwise-operator.A.ts",
    "content": "i >> j;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/bitwise-operator.B.ts",
    "content": "i >> k;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/bitwise-operator.diffA-B.txt",
    "content": "(Statements\n  (RShift\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/bitwise-operator.diffB-A.txt",
    "content": "(Statements\n  (RShift\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/bitwise-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (BinaryExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")) \n          (Expression \n            (Identifier \"j\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/bitwise-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (BinaryExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")) \n          (Expression \n            (Identifier \"k\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/boolean-operator.A.ts",
    "content": "i || j;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/boolean-operator.B.ts",
    "content": "i && j;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/boolean-operator.diffA-B.txt",
    "content": "(Statements\n{+(And\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(Or\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/boolean-operator.diffB-A.txt",
    "content": "(Statements\n{+(Or\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(And\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/boolean-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (BinaryExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")) \n          (Expression \n            (Identifier \"j\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/boolean-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (BinaryExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")) \n          (Expression \n            (Identifier \"j\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/break.A.ts",
    "content": "for (i = 0; i < 10; i++) { if (i === 4) { break; }; i }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/break.B.ts",
    "content": "for (i = 0; i < 10; i++) { if (i === 4) { continue; }; i }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/break.diffA-B.txt",
    "content": "(Statements\n  (For\n    (Assignment\n      (Identifier)\n      (Float))\n    (LessThan\n      (Identifier)\n      (Float))\n    (Update\n      (Identifier))\n    (Statements\n      (If\n        (StrictEqual\n          (Identifier)\n          (Float))\n        (Statements\n        {+(Continue\n          {+(Empty)+})+}\n        {-(Break\n          {-(Empty)-})-})\n        (Empty))\n      (Empty)\n      (Identifier))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/break.diffB-A.txt",
    "content": "(Statements\n  (For\n    (Assignment\n      (Identifier)\n      (Float))\n    (LessThan\n      (Identifier)\n      (Float))\n    (Update\n      (Identifier))\n    (Statements\n      (If\n        (StrictEqual\n          (Identifier)\n          (Float))\n        (Statements\n        {+(Break\n          {+(Empty)+})+}\n        {-(Continue\n          {-(Empty)-})-})\n        (Empty))\n      (Empty)\n      (Identifier))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/break.parseA.txt",
    "content": "(Program \n  (Statement \n    (ForStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (IfStatement \n              (Statement \n                (StatementBlock \n                  (Statement \n                    (BreakStatement)))) \n              (ParenthesizedExpression \n                (Expression \n                  (BinaryExpression \n                    (Token) \n                    (Expression \n                      (Identifier \"i\")) \n                    (Expression \n                      (Number \"4\"))))))) \n          (Statement \n            (EmptyStatement \";\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"i\")))))) \n      (ExpressionStatement \n        (Expression \n          (AssignmentExpression \n            (Identifier \"i\") \n            (Expression \n              (Number \"0\"))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (Identifier \"i\")) \n            (Expression \n              (Number \"10\"))))) \n      (Expression \n        (UpdateExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/break.parseB.txt",
    "content": "(Program \n  (Statement \n    (ForStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (IfStatement \n              (Statement \n                (StatementBlock \n                  (Statement \n                    (ContinueStatement)))) \n              (ParenthesizedExpression \n                (Expression \n                  (BinaryExpression \n                    (Token) \n                    (Expression \n                      (Identifier \"i\")) \n                    (Expression \n                      (Number \"4\"))))))) \n          (Statement \n            (EmptyStatement \";\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"i\")))))) \n      (ExpressionStatement \n        (Expression \n          (AssignmentExpression \n            (Identifier \"i\") \n            (Expression \n              (Number \"0\"))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (Identifier \"i\")) \n            (Expression \n              (Number \"10\"))))) \n      (Expression \n        (UpdateExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/chained-callbacks.A.ts",
    "content": "this.map(function (a) { return a.b; })\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/chained-callbacks.B.ts",
    "content": "this.reduce(function (a) { return b.a; })\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/chained-callbacks.diffA-B.txt",
    "content": "(Statements\n  (Call\n    (MemberAccess\n      (This)\n    { (Identifier)\n    ->(Identifier) })\n    (Function\n      (Empty)\n      (Empty)\n      (Empty)\n      (RequiredParameter\n        (Empty)\n        (Empty)\n        (Identifier)\n        (Empty))\n      (StatementBlock\n        (Return\n          (MemberAccess\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) }))))\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/chained-callbacks.diffB-A.txt",
    "content": "(Statements\n  (Call\n    (MemberAccess\n      (This)\n    { (Identifier)\n    ->(Identifier) })\n    (Function\n      (Empty)\n      (Empty)\n      (Empty)\n      (RequiredParameter\n        (Empty)\n        (Empty)\n        (Identifier)\n        (Empty))\n      (StatementBlock\n        (Return\n          (MemberAccess\n          { (Identifier)\n          ->(Identifier) }\n          { (Identifier)\n          ->(Identifier) }))))\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/chained-callbacks.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (MemberExpression \n              (PropertyIdentifier \"map\") \n              (Expression \n                (This \"this\")))) \n          (Arguments \n            (Expression \n              (Function \n                (StatementBlock \n                  (Statement \n                    (ReturnStatement \n                      (Expression \n                        (MemberExpression \n                          (PropertyIdentifier \"b\") \n                          (Expression \n                            (Identifier \"a\"))))))) \n                (FormalParameters \n                  (RequiredParameter \n                    (Identifier \"a\")))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/chained-callbacks.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (MemberExpression \n              (PropertyIdentifier \"reduce\") \n              (Expression \n                (This \"this\")))) \n          (Arguments \n            (Expression \n              (Function \n                (StatementBlock \n                  (Statement \n                    (ReturnStatement \n                      (Expression \n                        (MemberExpression \n                          (PropertyIdentifier \"a\") \n                          (Expression \n                            (Identifier \"b\"))))))) \n                (FormalParameters \n                  (RequiredParameter \n                    (Identifier \"a\")))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/chained-property-access.A.ts",
    "content": "return returned.promise().done( newDefer.resolve ).fail( newDefer.reject )\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/chained-property-access.B.ts",
    "content": "return returned.promise().done( otherDefer.resolve ).fail( otherDefer.reject )\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/chained-property-access.diffA-B.txt",
    "content": "(Statements\n  (Return\n    (Call\n      (MemberAccess\n        (Call\n          (MemberAccess\n            (Call\n              (MemberAccess\n                (Identifier)\n                (Identifier))\n              (Empty))\n            (Identifier))\n          (MemberAccess\n          { (Identifier)\n          ->(Identifier) }\n            (Identifier))\n          (Empty))\n        (Identifier))\n      (MemberAccess\n      { (Identifier)\n      ->(Identifier) }\n        (Identifier))\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/chained-property-access.diffB-A.txt",
    "content": "(Statements\n  (Return\n    (Call\n      (MemberAccess\n        (Call\n          (MemberAccess\n            (Call\n              (MemberAccess\n                (Identifier)\n                (Identifier))\n              (Empty))\n            (Identifier))\n          (MemberAccess\n          { (Identifier)\n          ->(Identifier) }\n            (Identifier))\n          (Empty))\n        (Identifier))\n      (MemberAccess\n      { (Identifier)\n      ->(Identifier) }\n        (Identifier))\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/chained-property-access.parseA.txt",
    "content": "(Program \n  (Statement \n    (ReturnStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (MemberExpression \n              (PropertyIdentifier \"fail\") \n              (Expression \n                (CallExpression \n                  (Expression \n                    (MemberExpression \n                      (PropertyIdentifier \"done\") \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (MemberExpression \n                              (PropertyIdentifier \"promise\") \n                              (Expression \n                                (Identifier \"returned\")))) \n                          (Arguments))))) \n                  (Arguments \n                    (Expression \n                      (MemberExpression \n                        (PropertyIdentifier \"resolve\") \n                        (Expression \n                          (Identifier \"newDefer\"))))))))) \n          (Arguments \n            (Expression \n              (MemberExpression \n                (PropertyIdentifier \"reject\") \n                (Expression \n                  (Identifier \"newDefer\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/chained-property-access.parseB.txt",
    "content": "(Program \n  (Statement \n    (ReturnStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (MemberExpression \n              (PropertyIdentifier \"fail\") \n              (Expression \n                (CallExpression \n                  (Expression \n                    (MemberExpression \n                      (PropertyIdentifier \"done\") \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (MemberExpression \n                              (PropertyIdentifier \"promise\") \n                              (Expression \n                                (Identifier \"returned\")))) \n                          (Arguments))))) \n                  (Arguments \n                    (Expression \n                      (MemberExpression \n                        (PropertyIdentifier \"resolve\") \n                        (Expression \n                          (Identifier \"otherDefer\"))))))))) \n          (Arguments \n            (Expression \n              (MemberExpression \n                (PropertyIdentifier \"reject\") \n                (Expression \n                  (Identifier \"otherDefer\"))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/class.A.ts",
    "content": "class Foo<Bar> extends Baz { bar = 5; static one(a) { return a; }; two(b) { return b; } three(c) { return c; } }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/class.B.ts",
    "content": "class Bar<Z> extends A { static foo(a) { return a; }; bar(b) { return b; } baz(c) { return c; } }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/class.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (TypeParameter\n    { (TypeIdentifier)\n    ->(TypeIdentifier) }\n      (Empty)\n      (Empty))\n  { (TypeIdentifier)\n  ->(TypeIdentifier) }\n    (ExtendsClause\n    { (TypeIdentifier)\n    ->(TypeIdentifier) })\n    (Statements\n    {+(Method\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(RequiredParameter\n        {+(Empty)+}\n        {+(Empty)+}\n        {+(Identifier)+}\n        {+(Empty)+})+}\n      {+(StatementBlock\n        {+(Return\n          {+(Identifier)+})+})+})+}\n    {+(Method\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(RequiredParameter\n        {+(Empty)+}\n        {+(Empty)+}\n        {+(Identifier)+}\n        {+(Empty)+})+}\n      {+(StatementBlock\n        {+(Return\n          {+(Identifier)+})+})+})+}\n    {+(Method\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(RequiredParameter\n        {+(Empty)+}\n        {+(Empty)+}\n        {+(Identifier)+}\n        {+(Empty)+})+}\n      {+(StatementBlock\n        {+(Return\n          {+(Identifier)+})+})+})+}\n    {-(PublicFieldDefinition\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(Float)-})-}\n    {-(Method\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(RequiredParameter\n        {-(Empty)-}\n        {-(Empty)-}\n        {-(Identifier)-}\n        {-(Empty)-})-}\n      {-(StatementBlock\n        {-(Return\n          {-(Identifier)-})-})-})-}\n    {-(Method\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(RequiredParameter\n        {-(Empty)-}\n        {-(Empty)-}\n        {-(Identifier)-}\n        {-(Empty)-})-}\n      {-(StatementBlock\n        {-(Return\n          {-(Identifier)-})-})-})-}\n    {-(Method\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(RequiredParameter\n        {-(Empty)-}\n        {-(Empty)-}\n        {-(Identifier)-}\n        {-(Empty)-})-}\n      {-(StatementBlock\n        {-(Return\n          {-(Identifier)-})-})-})-})))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/class.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (TypeParameter\n    { (TypeIdentifier)\n    ->(TypeIdentifier) }\n      (Empty)\n      (Empty))\n  { (TypeIdentifier)\n  ->(TypeIdentifier) }\n    (ExtendsClause\n    { (TypeIdentifier)\n    ->(TypeIdentifier) })\n    (Statements\n    {+(PublicFieldDefinition\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(Float)+})+}\n      (Method\n        (Empty)\n        (Empty)\n        (Empty)\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (RequiredParameter\n          (Empty)\n          (Empty)\n          (Identifier)\n          (Empty))\n        (StatementBlock\n          (Return\n            (Identifier))))\n      (Method\n        (Empty)\n        (Empty)\n        (Empty)\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (RequiredParameter\n          (Empty)\n          (Empty)\n          (Identifier)\n          (Empty))\n        (StatementBlock\n          (Return\n            (Identifier))))\n      (Method\n        (Empty)\n        (Empty)\n        (Empty)\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (RequiredParameter\n          (Empty)\n          (Empty)\n          (Identifier)\n          (Empty))\n        (StatementBlock\n          (Return\n            (Identifier)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/class.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (ClassDeclaration \n        (ClassBody \n          (PublicFieldDefinition \n            (Expression \n              (Number \"5\")) \n            (PropertyIdentifier \"bar\")) \n          (MethodDefinition \n            (StatementBlock \n              (Statement \n                (ReturnStatement \n                  (Expression \n                    (Identifier \"a\"))))) \n            (PropertyIdentifier \"one\") \n            (FormalParameters \n              (RequiredParameter \n                (Identifier \"a\")))) \n          (MethodDefinition \n            (StatementBlock \n              (Statement \n                (ReturnStatement \n                  (Expression \n                    (Identifier \"b\"))))) \n            (PropertyIdentifier \"two\") \n            (FormalParameters \n              (RequiredParameter \n                (Identifier \"b\")))) \n          (MethodDefinition \n            (StatementBlock \n              (Statement \n                (ReturnStatement \n                  (Expression \n                    (Identifier \"c\"))))) \n            (PropertyIdentifier \"three\") \n            (FormalParameters \n              (RequiredParameter \n                (Identifier \"c\"))))) \n        (TypeIdentifier \"Foo\") \n        (TypeParameters \n          (TypeParameter \n            (TypeIdentifier \"Bar\"))) \n        (ClassHeritage \n          (ExtendsClause \n            (TypeIdentifier \"Baz\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/class.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (ClassDeclaration \n        (ClassBody \n          (MethodDefinition \n            (StatementBlock \n              (Statement \n                (ReturnStatement \n                  (Expression \n                    (Identifier \"a\"))))) \n            (PropertyIdentifier \"foo\") \n            (FormalParameters \n              (RequiredParameter \n                (Identifier \"a\")))) \n          (MethodDefinition \n            (StatementBlock \n              (Statement \n                (ReturnStatement \n                  (Expression \n                    (Identifier \"b\"))))) \n            (PropertyIdentifier \"bar\") \n            (FormalParameters \n              (RequiredParameter \n                (Identifier \"b\")))) \n          (MethodDefinition \n            (StatementBlock \n              (Statement \n                (ReturnStatement \n                  (Expression \n                    (Identifier \"c\"))))) \n            (PropertyIdentifier \"baz\") \n            (FormalParameters \n              (RequiredParameter \n                (Identifier \"c\"))))) \n        (TypeIdentifier \"Bar\") \n        (TypeParameters \n          (TypeParameter \n            (TypeIdentifier \"Z\"))) \n        (ClassHeritage \n          (ExtendsClause \n            (TypeIdentifier \"A\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/comma-operator.A.ts",
    "content": "a = 1, b = 2;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/comma-operator.B.ts",
    "content": "c = {d: (3, 4 + 5, 6)};\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/comma-operator.diffA-B.txt",
    "content": "(Statements\n{+(Assignment\n  {+(Identifier)+}\n  {+(Hash\n    {+(KeyValue\n      {+(Identifier)+}\n      {+(SequenceExpression\n        {+(Float)+}\n        {+(SequenceExpression\n          {+(Plus\n            {+(Float)+}\n            {+(Float)+})+}\n          {+(Float)+})+})+})+})+})+}\n{-(SequenceExpression\n  {-(Assignment\n    {-(Identifier)-}\n    {-(Float)-})-}\n  {-(Assignment\n    {-(Identifier)-}\n    {-(Float)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/comma-operator.diffB-A.txt",
    "content": "(Statements\n{+(SequenceExpression\n  {+(Assignment\n    {+(Identifier)+}\n    {+(Float)+})+}\n  {+(Assignment\n    {+(Identifier)+}\n    {+(Float)+})+})+}\n{-(Assignment\n  {-(Identifier)-}\n  {-(Hash\n    {-(KeyValue\n      {-(Identifier)-}\n      {-(SequenceExpression\n        {-(Float)-}\n        {-(SequenceExpression\n          {-(Plus\n            {-(Float)-}\n            {-(Float)-})-}\n          {-(Float)-})-})-})-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/comma-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (SequenceExpression \n        (Expression \n          (AssignmentExpression \n            (Identifier \"a\") \n            (Expression \n              (Number \"1\")))) \n        (Expression \n          (AssignmentExpression \n            (Identifier \"b\") \n            (Expression \n              (Number \"2\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/comma-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AssignmentExpression \n          (Identifier \"c\") \n          (Expression \n            (Object \n              (Pair \n                (Expression \n                  (ParenthesizedExpression \n                    (SequenceExpression \n                      (Expression \n                        (Number \"3\")) \n                      (SequenceExpression \n                        (Expression \n                          (BinaryExpression \n                            (Token) \n                            (Expression \n                              (Number \"4\")) \n                            (Expression \n                              (Number \"5\")))) \n                        (Expression \n                          (Number \"6\")))))) \n                (PropertyIdentifier \"d\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/comment.A.ts",
    "content": "// This is a property\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/comment.B.ts",
    "content": "/*\n * This is a method\n*/\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/comment.diffA-B.txt",
    "content": "(Statements\n  (Context\n  { (Comment)\n  ->(Comment) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/comment.diffB-A.txt",
    "content": "(Statements\n  (Context\n  { (Comment)\n  ->(Comment) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/comment.parseA.txt",
    "content": "(Program)\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/comment.parseB.txt",
    "content": "(Program)\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/constructor-call.A.ts",
    "content": "new module.Klass(1, \"two\");\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/constructor-call.B.ts",
    "content": "new module.Klass(1, \"three\");\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/constructor-call.diffA-B.txt",
    "content": "(Statements\n  (New\n    (MemberAccess\n      (Identifier)\n      (Identifier))\n    (Empty)\n    (Float)\n  { (TextElement)\n  ->(TextElement) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/constructor-call.diffB-A.txt",
    "content": "(Statements\n  (New\n    (MemberAccess\n      (Identifier)\n      (Identifier))\n    (Empty)\n    (Float)\n  { (TextElement)\n  ->(TextElement) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/constructor-call.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (NewExpression \n          (Arguments \n            (Expression \n              (Number \"1\")) \n            (Expression \n              (String))) \n          (MemberExpression \n            (PropertyIdentifier \"Klass\") \n            (Expression \n              (Identifier \"module\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/constructor-call.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (NewExpression \n          (Arguments \n            (Expression \n              (Number \"1\")) \n            (Expression \n              (String))) \n          (MemberExpression \n            (PropertyIdentifier \"Klass\") \n            (Expression \n              (Identifier \"module\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/continue.A.ts",
    "content": "for (i = 0; i < 10; i++) { if (i === 4) { continue; }; i }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/continue.B.ts",
    "content": "for (i = 0; i < 10; i++) { if (i === 4) { break; }; i }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/continue.diffA-B.txt",
    "content": "(Statements\n  (For\n    (Assignment\n      (Identifier)\n      (Float))\n    (LessThan\n      (Identifier)\n      (Float))\n    (Update\n      (Identifier))\n    (Statements\n      (If\n        (StrictEqual\n          (Identifier)\n          (Float))\n        (Statements\n        {+(Break\n          {+(Empty)+})+}\n        {-(Continue\n          {-(Empty)-})-})\n        (Empty))\n      (Empty)\n      (Identifier))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/continue.diffB-A.txt",
    "content": "(Statements\n  (For\n    (Assignment\n      (Identifier)\n      (Float))\n    (LessThan\n      (Identifier)\n      (Float))\n    (Update\n      (Identifier))\n    (Statements\n      (If\n        (StrictEqual\n          (Identifier)\n          (Float))\n        (Statements\n        {+(Continue\n          {+(Empty)+})+}\n        {-(Break\n          {-(Empty)-})-})\n        (Empty))\n      (Empty)\n      (Identifier))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/continue.parseA.txt",
    "content": "(Program \n  (Statement \n    (ForStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (IfStatement \n              (Statement \n                (StatementBlock \n                  (Statement \n                    (ContinueStatement)))) \n              (ParenthesizedExpression \n                (Expression \n                  (BinaryExpression \n                    (Token) \n                    (Expression \n                      (Identifier \"i\")) \n                    (Expression \n                      (Number \"4\"))))))) \n          (Statement \n            (EmptyStatement \";\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"i\")))))) \n      (ExpressionStatement \n        (Expression \n          (AssignmentExpression \n            (Identifier \"i\") \n            (Expression \n              (Number \"0\"))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (Identifier \"i\")) \n            (Expression \n              (Number \"10\"))))) \n      (Expression \n        (UpdateExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/continue.parseB.txt",
    "content": "(Program \n  (Statement \n    (ForStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (IfStatement \n              (Statement \n                (StatementBlock \n                  (Statement \n                    (BreakStatement)))) \n              (ParenthesizedExpression \n                (Expression \n                  (BinaryExpression \n                    (Token) \n                    (Expression \n                      (Identifier \"i\")) \n                    (Expression \n                      (Number \"4\"))))))) \n          (Statement \n            (EmptyStatement \";\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"i\")))))) \n      (ExpressionStatement \n        (Expression \n          (AssignmentExpression \n            (Identifier \"i\") \n            (Expression \n              (Number \"0\"))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (Identifier \"i\")) \n            (Expression \n              (Number \"10\"))))) \n      (Expression \n        (UpdateExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/delete-operator.A.ts",
    "content": "delete thing['prop'];\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/delete-operator.B.ts",
    "content": "delete thing.prop\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/delete-operator.diffA-B.txt",
    "content": "(Statements\n  (Delete\n  { (Subscript\n    {-(Identifier)-}\n    {-(TextElement)-})\n  ->(MemberAccess\n    {+(Identifier)+}\n    {+(Identifier)+}) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/delete-operator.diffB-A.txt",
    "content": "(Statements\n  (Delete\n  { (MemberAccess\n    {-(Identifier)-}\n    {-(Identifier)-})\n  ->(Subscript\n    {+(Identifier)+}\n    {+(TextElement)+}) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/delete-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (UnaryExpression \n          (Token) \n          (Expression \n            (SubscriptExpression \n              (Expression \n                (Identifier \"thing\")) \n              (Expression \n                (String)))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/delete-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (UnaryExpression \n          (Token) \n          (Expression \n            (MemberExpression \n              (PropertyIdentifier \"prop\") \n              (Expression \n                (Identifier \"thing\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/do-while-statement.A.ts",
    "content": "do { console.log(insert); } while (true);\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/do-while-statement.B.ts",
    "content": "do { console.log(replacement); } while (false);\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/do-while-statement.diffA-B.txt",
    "content": "(Statements\n  (DoWhile\n  { (Boolean)\n  ->(Boolean) }\n    (Statements\n      (Call\n        (MemberAccess\n          (Identifier)\n          (Identifier))\n      { (Identifier)\n      ->(Identifier) }\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/do-while-statement.diffB-A.txt",
    "content": "(Statements\n  (DoWhile\n  { (Boolean)\n  ->(Boolean) }\n    (Statements\n      (Call\n        (MemberAccess\n          (Identifier)\n          (Identifier))\n      { (Identifier)\n      ->(Identifier) }\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/do-while-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (DoStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (MemberExpression \n                      (PropertyIdentifier \"log\") \n                      (Expression \n                        (Identifier \"console\")))) \n                  (Arguments \n                    (Expression \n                      (Identifier \"insert\"))))))))) \n      (ParenthesizedExpression \n        (Expression \n          (True \"true\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/do-while-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (DoStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (MemberExpression \n                      (PropertyIdentifier \"log\") \n                      (Expression \n                        (Identifier \"console\")))) \n                  (Arguments \n                    (Expression \n                      (Identifier \"replacement\"))))))))) \n      (ParenthesizedExpression \n        (Expression \n          (False \"false\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/export-assignments.A.ts",
    "content": "export = Linter;"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/export-assignments.B.ts",
    "content": "return Foo;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/export-assignments.diffA-B.txt",
    "content": "(Statements\n{+(Return\n  {+(Identifier)+})+}\n{-(DefaultExport\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/export-assignments.diffB-A.txt",
    "content": "(Statements\n{+(DefaultExport\n  {+(Identifier)+})+}\n{-(Return\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/export-assignments.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExportStatement \n      (Identifier \"Linter\"))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/export-assignments.parseB.txt",
    "content": "(Program \n  (Statement \n    (ReturnStatement \n      (Expression \n        (Identifier \"Foo\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/export.A.ts",
    "content": "export { name1, name2, name3, nameN };\nexport { variable1 as name1, variable2 as name2, nameN };\nexport let name1, name2, nameN;\nexport let name1 = value1, name2 = value2, name3, nameN;\nexport default namedFunction;\nexport default function () { };\nexport default function name1() { };\nexport { name1 as default };\nexport * from 'foo';\nexport { name1, name2, nameN } from 'foo';\nexport { import1 as name1, import2 as name2, nameN } from 'bar';\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/export.B.ts",
    "content": "export { name4, name5, name6, nameZ };\nexport { variable2 as name2, variable3 as name3, nameY };\nexport let name3, name4, nameT;\nexport let name2 = value2, name3 = value3, name4, nameO;\nexport default otherNamedFunction;\nexport default function newName1() {};\nexport default function () {};\nexport { name2 as statement };\nexport * from 'baz';\nexport { name7, name8, nameP } from 'buzz';\nexport { import6 as name6, import7 as name7, nameB } from 'fizz';\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/export.diffA-B.txt",
    "content": "(Statements\n{ (QualifiedExport)\n->(QualifiedExport) }\n{ (QualifiedExport)\n->(QualifiedExport) }\n  (DefaultExport\n    (VariableDeclaration\n      (Assignment\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n      (Assignment\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n      (Assignment\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))))\n  (DefaultExport\n    (VariableDeclaration\n    {-(Assignment\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n      (Assignment\n        (Empty)\n        (Identifier)\n        (Identifier))\n      (Assignment\n        (Empty)\n        (Identifier)\n      { (Empty)\n      ->(Identifier) })\n      (Assignment\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n    {+(Assignment\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(Empty)+})+}))\n  (DefaultExport\n  { (Identifier)\n  ->(Identifier) })\n{+(DefaultExport\n  {+(Function\n    {+(Empty)+}\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(StatementBlock)+})+})+}\n  (DefaultExport\n    (Function\n      (Empty)\n      (Empty)\n      (Empty)\n      (StatementBlock)))\n{+(QualifiedExport)+}\n{+(DefaultExport\n  {+(TextElement)+})+}\n{+(QualifiedExportFrom)+}\n{+(QualifiedExportFrom)+}\n{-(DefaultExport\n  {-(Function\n    {-(Empty)-}\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(StatementBlock)-})-})-}\n{-(QualifiedExport)-}\n{-(DefaultExport\n  {-(TextElement)-})-}\n{-(QualifiedExportFrom)-}\n{-(QualifiedExportFrom)-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/export.diffB-A.txt",
    "content": "(Statements\n{ (QualifiedExport)\n->(QualifiedExport) }\n{ (QualifiedExport)\n->(QualifiedExport) }\n  (DefaultExport\n    (VariableDeclaration\n      (Assignment\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n      (Assignment\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n      (Assignment\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))))\n  (DefaultExport\n    (VariableDeclaration\n    {+(Assignment\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n      (Assignment\n        (Empty)\n        (Identifier)\n        (Identifier))\n      (Assignment\n        (Empty)\n        (Identifier)\n      { (Identifier)\n      ->(Empty) })\n      (Assignment\n        (Empty)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n    {-(Assignment\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(Empty)-})-}))\n  (DefaultExport\n  { (Identifier)\n  ->(Identifier) })\n{-(DefaultExport\n  {-(Function\n    {-(Empty)-}\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(StatementBlock)-})-})-}\n  (DefaultExport\n    (Function\n      (Empty)\n      (Empty)\n      (Empty)\n      (StatementBlock)))\n{+(DefaultExport\n  {+(Function\n    {+(Empty)+}\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(StatementBlock)+})+})+}\n{ (QualifiedExport)\n->(QualifiedExport) }\n  (DefaultExport\n  { (TextElement)\n  ->(TextElement) })\n{ (QualifiedExportFrom)\n->(QualifiedExportFrom) }\n{ (QualifiedExportFrom)\n->(QualifiedExportFrom) })\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/export.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExportStatement \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"name1\")) \n        (ExportSpecifier \n          (Identifier \"name2\")) \n        (ExportSpecifier \n          (Identifier \"name3\")) \n        (ExportSpecifier \n          (Identifier \"nameN\"))))) \n  (Statement \n    (ExportStatement \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"name1\") \n          (Identifier \"variable1\")) \n        (ExportSpecifier \n          (Identifier \"name2\") \n          (Identifier \"variable2\")) \n        (ExportSpecifier \n          (Identifier \"nameN\"))))) \n  (Statement \n    (ExportStatement \n      (Declaration \n        (LexicalDeclaration \n          (VariableDeclarator \n            (Identifier \"name1\")) \n          (VariableDeclarator \n            (Identifier \"name2\")) \n          (VariableDeclarator \n            (Identifier \"nameN\")))))) \n  (Statement \n    (ExportStatement \n      (Declaration \n        (LexicalDeclaration \n          (VariableDeclarator \n            (Expression \n              (Identifier \"value1\")) \n            (Identifier \"name1\")) \n          (VariableDeclarator \n            (Expression \n              (Identifier \"value2\")) \n            (Identifier \"name2\")) \n          (VariableDeclarator \n            (Identifier \"name3\")) \n          (VariableDeclarator \n            (Identifier \"nameN\")))))) \n  (Statement \n    (ExportStatement \n      (Expression \n        (Identifier \"namedFunction\")))) \n  (Statement \n    (ExportStatement \n      (Expression \n        (Function \n          (StatementBlock) \n          (FormalParameters))))) \n  (Statement \n    (ExportStatement \n      (Expression \n        (Function \n          (StatementBlock) \n          (Identifier \"name1\") \n          (FormalParameters))))) \n  (Statement \n    (ExportStatement \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"default\") \n          (Identifier \"name1\"))))) \n  (Statement \n    (ExportStatement \n      (String))) \n  (Statement \n    (ExportStatement \n      (String) \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"name1\")) \n        (ExportSpecifier \n          (Identifier \"name2\")) \n        (ExportSpecifier \n          (Identifier \"nameN\"))))) \n  (Statement \n    (ExportStatement \n      (String) \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"name1\") \n          (Identifier \"import1\")) \n        (ExportSpecifier \n          (Identifier \"name2\") \n          (Identifier \"import2\")) \n        (ExportSpecifier \n          (Identifier \"nameN\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/export.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExportStatement \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"name4\")) \n        (ExportSpecifier \n          (Identifier \"name5\")) \n        (ExportSpecifier \n          (Identifier \"name6\")) \n        (ExportSpecifier \n          (Identifier \"nameZ\"))))) \n  (Statement \n    (ExportStatement \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"name2\") \n          (Identifier \"variable2\")) \n        (ExportSpecifier \n          (Identifier \"name3\") \n          (Identifier \"variable3\")) \n        (ExportSpecifier \n          (Identifier \"nameY\"))))) \n  (Statement \n    (ExportStatement \n      (Declaration \n        (LexicalDeclaration \n          (VariableDeclarator \n            (Identifier \"name3\")) \n          (VariableDeclarator \n            (Identifier \"name4\")) \n          (VariableDeclarator \n            (Identifier \"nameT\")))))) \n  (Statement \n    (ExportStatement \n      (Declaration \n        (LexicalDeclaration \n          (VariableDeclarator \n            (Expression \n              (Identifier \"value2\")) \n            (Identifier \"name2\")) \n          (VariableDeclarator \n            (Expression \n              (Identifier \"value3\")) \n            (Identifier \"name3\")) \n          (VariableDeclarator \n            (Identifier \"name4\")) \n          (VariableDeclarator \n            (Identifier \"nameO\")))))) \n  (Statement \n    (ExportStatement \n      (Expression \n        (Identifier \"otherNamedFunction\")))) \n  (Statement \n    (ExportStatement \n      (Expression \n        (Function \n          (StatementBlock) \n          (Identifier \"newName1\") \n          (FormalParameters))))) \n  (Statement \n    (ExportStatement \n      (Expression \n        (Function \n          (StatementBlock) \n          (FormalParameters))))) \n  (Statement \n    (ExportStatement \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"statement\") \n          (Identifier \"name2\"))))) \n  (Statement \n    (ExportStatement \n      (String))) \n  (Statement \n    (ExportStatement \n      (String) \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"name7\")) \n        (ExportSpecifier \n          (Identifier \"name8\")) \n        (ExportSpecifier \n          (Identifier \"nameP\"))))) \n  (Statement \n    (ExportStatement \n      (String) \n      (ExportClause \n        (ExportSpecifier \n          (Identifier \"name6\") \n          (Identifier \"import6\")) \n        (ExportSpecifier \n          (Identifier \"name7\") \n          (Identifier \"import7\")) \n        (ExportSpecifier \n          (Identifier \"nameB\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/false.A.ts",
    "content": "false;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/false.B.ts",
    "content": "return false;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/false.diffA-B.txt",
    "content": "(Statements\n{+(Return\n  {+(Boolean)+})+}\n{-(Boolean)-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/false.diffB-A.txt",
    "content": "(Statements\n{+(Boolean)+}\n{-(Return\n  {-(Boolean)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/false.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (False \"false\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/false.parseB.txt",
    "content": "(Program \n  (Statement \n    (ReturnStatement \n      (Expression \n        (False \"false\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-in-statement.A.ts",
    "content": "for (thing in things) { thing(); }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-in-statement.B.ts",
    "content": "for (item in items) { item(); }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-in-statement.diffA-B.txt",
    "content": "(Statements\n  (ForEach\n  { (Identifier)\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Call\n      { (Identifier)\n      ->(Identifier) }\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-in-statement.diffB-A.txt",
    "content": "(Statements\n  (ForEach\n  { (Identifier)\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Call\n      { (Identifier)\n      ->(Identifier) }\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-in-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (ForInStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"thing\")) \n                  (Arguments))))))) \n      (Identifier \"thing\") \n      (Expression \n        (Identifier \"things\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-in-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (ForInStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"item\")) \n                  (Arguments))))))) \n      (Identifier \"item\") \n      (Expression \n        (Identifier \"items\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-loop-with-in-statement.A.ts",
    "content": "for (key in something && i = 0; i < n; i++) { doSomething(); }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-loop-with-in-statement.B.ts",
    "content": "for (otherKey in something && i = 0; i < n; i++) { doOtherSomething(); }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-loop-with-in-statement.diffA-B.txt",
    "content": "(Statements\n  (For\n    (And\n      (Member\n      { (Identifier)\n      ->(Identifier) }\n        (Identifier))\n      (Assignment\n        (Identifier)\n        (Float)))\n    (LessThan\n      (Identifier)\n      (Identifier))\n    (Update\n      (Identifier))\n    (Statements\n      (Call\n      { (Identifier)\n      ->(Identifier) }\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-loop-with-in-statement.diffB-A.txt",
    "content": "(Statements\n  (For\n    (And\n      (Member\n      { (Identifier)\n      ->(Identifier) }\n        (Identifier))\n      (Assignment\n        (Identifier)\n        (Float)))\n    (LessThan\n      (Identifier)\n      (Identifier))\n    (Update\n      (Identifier))\n    (Statements\n      (Call\n      { (Identifier)\n      ->(Identifier) }\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-loop-with-in-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (ForStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"doSomething\")) \n                  (Arguments))))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (BinaryExpression \n                (Token) \n                (Expression \n                  (Identifier \"key\")) \n                (Expression \n                  (Identifier \"something\")))) \n            (Expression \n              (AssignmentExpression \n                (Identifier \"i\") \n                (Expression \n                  (Number \"0\"))))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (Identifier \"i\")) \n            (Expression \n              (Identifier \"n\"))))) \n      (Expression \n        (UpdateExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-loop-with-in-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (ForStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"doOtherSomething\")) \n                  (Arguments))))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (BinaryExpression \n                (Token) \n                (Expression \n                  (Identifier \"otherKey\")) \n                (Expression \n                  (Identifier \"something\")))) \n            (Expression \n              (AssignmentExpression \n                (Identifier \"i\") \n                (Expression \n                  (Number \"0\"))))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (Identifier \"i\")) \n            (Expression \n              (Identifier \"n\"))))) \n      (Expression \n        (UpdateExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-of-statement.A.ts",
    "content": "for (let item of items) { process(item); };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-of-statement.B.ts",
    "content": "for (let thing of things) { process(thing); };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-of-statement.diffA-B.txt",
    "content": "(Statements\n  (ForEach\n  { (Identifier)\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Call\n        (Identifier)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-of-statement.diffB-A.txt",
    "content": "(Statements\n  (ForEach\n  { (Identifier)\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Call\n        (Identifier)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-of-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (ForInStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"process\")) \n                  (Arguments \n                    (Expression \n                      (Identifier \"item\"))))))))) \n      (Identifier \"item\") \n      (Expression \n        (Identifier \"items\")))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-of-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (ForInStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"process\")) \n                  (Arguments \n                    (Expression \n                      (Identifier \"thing\"))))))))) \n      (Identifier \"thing\") \n      (Expression \n        (Identifier \"things\")))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-statement.A.ts",
    "content": "for (i = 0, init(); i < 10; i++) { log(i); }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-statement.B.ts",
    "content": "for (i = 0, init(); i < 100; i++) { log(i); }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-statement.diffA-B.txt",
    "content": "(Statements\n  (For\n    (SequenceExpression\n      (Assignment\n        (Identifier)\n        (Float))\n      (Call\n        (Identifier)\n        (Empty)))\n    (LessThan\n      (Identifier)\n    { (Float)\n    ->(Float) })\n    (Update\n      (Identifier))\n    (Statements\n      (Call\n        (Identifier)\n        (Identifier)\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-statement.diffB-A.txt",
    "content": "(Statements\n  (For\n    (SequenceExpression\n      (Assignment\n        (Identifier)\n        (Float))\n      (Call\n        (Identifier)\n        (Empty)))\n    (LessThan\n      (Identifier)\n    { (Float)\n    ->(Float) })\n    (Update\n      (Identifier))\n    (Statements\n      (Call\n        (Identifier)\n        (Identifier)\n        (Empty)))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (ForStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"log\")) \n                  (Arguments \n                    (Expression \n                      (Identifier \"i\"))))))))) \n      (ExpressionStatement \n        (SequenceExpression \n          (Expression \n            (AssignmentExpression \n              (Identifier \"i\") \n              (Expression \n                (Number \"0\")))) \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"init\")) \n              (Arguments))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (Identifier \"i\")) \n            (Expression \n              (Number \"10\"))))) \n      (Expression \n        (UpdateExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/for-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (ForStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"log\")) \n                  (Arguments \n                    (Expression \n                      (Identifier \"i\"))))))))) \n      (ExpressionStatement \n        (SequenceExpression \n          (Expression \n            (AssignmentExpression \n              (Identifier \"i\") \n              (Expression \n                (Number \"0\")))) \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"init\")) \n              (Arguments))))) \n      (ExpressionStatement \n        (Expression \n          (BinaryExpression \n            (Token) \n            (Expression \n              (Identifier \"i\")) \n            (Expression \n              (Number \"100\"))))) \n      (Expression \n        (UpdateExpression \n          (Token) \n          (Expression \n            (Identifier \"i\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function-call-args.A.ts",
    "content": "someFunction(1, \"string\", function(a,b) { console.log(a); return b; }, true)\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function-call-args.B.ts",
    "content": "someFunction(1, \"otherString\", function(b,c) { console.log(b); return c; }, false)\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function-call-args.diffA-B.txt",
    "content": "(Statements\n  (Call\n    (Identifier)\n    (Float)\n  { (TextElement)\n  ->(TextElement) }\n    (Function\n      (Empty)\n      (Empty)\n      (Empty)\n    {-(RequiredParameter\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(Empty)-})-}\n      (RequiredParameter\n        (Empty)\n        (Empty)\n        (Identifier)\n        (Empty))\n    {+(RequiredParameter\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(Empty)+})+}\n      (StatementBlock\n        (Call\n          (MemberAccess\n            (Identifier)\n            (Identifier))\n        { (Identifier)\n        ->(Identifier) }\n          (Empty))\n        (Return\n        { (Identifier)\n        ->(Identifier) })))\n  { (Boolean)\n  ->(Boolean) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function-call-args.diffB-A.txt",
    "content": "(Statements\n  (Call\n    (Identifier)\n    (Float)\n  { (TextElement)\n  ->(TextElement) }\n    (Function\n      (Empty)\n      (Empty)\n      (Empty)\n    {+(RequiredParameter\n      {+(Empty)+}\n      {+(Empty)+}\n      {+(Identifier)+}\n      {+(Empty)+})+}\n      (RequiredParameter\n        (Empty)\n        (Empty)\n        (Identifier)\n        (Empty))\n    {-(RequiredParameter\n      {-(Empty)-}\n      {-(Empty)-}\n      {-(Identifier)-}\n      {-(Empty)-})-}\n      (StatementBlock\n        (Call\n          (MemberAccess\n            (Identifier)\n            (Identifier))\n        { (Identifier)\n        ->(Identifier) }\n          (Empty))\n        (Return\n        { (Identifier)\n        ->(Identifier) })))\n  { (Boolean)\n  ->(Boolean) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function-call-args.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (Identifier \"someFunction\")) \n          (Arguments \n            (Expression \n              (Number \"1\")) \n            (Expression \n              (String)) \n            (Expression \n              (Function \n                (StatementBlock \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (MemberExpression \n                              (PropertyIdentifier \"log\") \n                              (Expression \n                                (Identifier \"console\")))) \n                          (Arguments \n                            (Expression \n                              (Identifier \"a\"))))))) \n                  (Statement \n                    (ReturnStatement \n                      (Expression \n                        (Identifier \"b\"))))) \n                (FormalParameters \n                  (RequiredParameter \n                    (Identifier \"a\")) \n                  (RequiredParameter \n                    (Identifier \"b\"))))) \n            (Expression \n              (True \"true\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function-call-args.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (Identifier \"someFunction\")) \n          (Arguments \n            (Expression \n              (Number \"1\")) \n            (Expression \n              (String)) \n            (Expression \n              (Function \n                (StatementBlock \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (MemberExpression \n                              (PropertyIdentifier \"log\") \n                              (Expression \n                                (Identifier \"console\")))) \n                          (Arguments \n                            (Expression \n                              (Identifier \"b\"))))))) \n                  (Statement \n                    (ReturnStatement \n                      (Expression \n                        (Identifier \"c\"))))) \n                (FormalParameters \n                  (RequiredParameter \n                    (Identifier \"b\")) \n                  (RequiredParameter \n                    (Identifier \"c\"))))) \n            (Expression \n              (False \"false\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function-call.A.ts",
    "content": "someFunction<A>(arg1, \"arg2\");\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function-call.B.ts",
    "content": "someFunction<B>(arg1, \"arg3\");\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function-call.diffA-B.txt",
    "content": "(Statements\n  (Call\n  { (TypeIdentifier)\n  ->(TypeIdentifier) }\n    (Identifier)\n    (Identifier)\n  { (TextElement)\n  ->(TextElement) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function-call.diffB-A.txt",
    "content": "(Statements\n  (Call\n  { (TypeIdentifier)\n  ->(TypeIdentifier) }\n    (Identifier)\n    (Identifier)\n  { (TextElement)\n  ->(TextElement) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function-call.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (Identifier \"someFunction\")) \n          (Arguments \n            (Expression \n              (Identifier \"arg1\")) \n            (Expression \n              (String))) \n          (TypeArguments \n            (TypeIdentifier \"A\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function-call.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (Identifier \"someFunction\")) \n          (Arguments \n            (Expression \n              (Identifier \"arg1\")) \n            (Expression \n              (String))) \n          (TypeArguments \n            (TypeIdentifier \"B\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function-type.A.ts",
    "content": "let x: () => A;"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function-type.B.ts",
    "content": "let x: A[];"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function-type.diffA-B.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Annotation\n      { (FunctionType\n        {-(Empty)-}\n        {-(TypeIdentifier)-})\n      ->(ArrayType\n        {+(TypeIdentifier)+}) })\n      (Identifier)\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function-type.diffB-A.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Annotation\n      { (ArrayType\n        {-(TypeIdentifier)-})\n      ->(FunctionType\n        {+(Empty)+}\n        {+(TypeIdentifier)+}) })\n      (Identifier)\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function-type.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (LexicalDeclaration \n        (VariableDeclarator \n          (Identifier \"x\") \n          (TypeAnnotation \n            (FunctionType \n              (FormalParameters) \n              (TypeIdentifier \"A\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function-type.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (LexicalDeclaration \n        (VariableDeclarator \n          (Identifier \"x\") \n          (TypeAnnotation \n            (ArrayType \n              (TypeIdentifier \"A\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function.A.ts",
    "content": "function<A>(arg1, arg2): string { arg2; };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function.B.ts",
    "content": "function(arg1, arg2): int { arg1; };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function.diffA-B.txt",
    "content": "(Statements\n  (Function\n  {+(Empty)+}\n  {+(Annotation\n    {+(TypeIdentifier)+})+}\n  {-(TypeParameters\n    {-(TypeParameter\n      {-(TypeIdentifier)-}\n      {-(Empty)-}\n      {-(Empty)-})-})-}\n  {-(Annotation\n    {-(PredefinedType)-})-}\n    (Empty)\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n    { (Identifier)\n    ->(Identifier) })))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function.diffB-A.txt",
    "content": "(Statements\n  (Function\n  {+(TypeParameters\n    {+(TypeParameter\n      {+(TypeIdentifier)+}\n      {+(Empty)+}\n      {+(Empty)+})+})+}\n  {+(Annotation\n    {+(PredefinedType)+})+}\n  {-(Empty)-}\n  {-(Annotation\n    {-(TypeIdentifier)-})-}\n    (Empty)\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n    { (Identifier)\n    ->(Identifier) })))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Function \n          (TypeAnnotation \n            (PredefinedType \"string\")) \n          (StatementBlock \n            (Statement \n              (ExpressionStatement \n                (Expression \n                  (Identifier \"arg2\"))))) \n          (FormalParameters \n            (RequiredParameter \n              (Identifier \"arg1\")) \n            (RequiredParameter \n              (Identifier \"arg2\"))) \n          (TypeParameters \n            (TypeParameter \n              (TypeIdentifier \"A\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/function.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Function \n          (TypeAnnotation \n            (TypeIdentifier \"int\")) \n          (StatementBlock \n            (Statement \n              (ExpressionStatement \n                (Expression \n                  (Identifier \"arg1\"))))) \n          (FormalParameters \n            (RequiredParameter \n              (Identifier \"arg1\")) \n            (RequiredParameter \n              (Identifier \"arg2\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/generator-function.A.ts",
    "content": "function *generateStuff(arg1, arg2) { yield; yield arg2; };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/generator-function.B.ts",
    "content": "function *generateNewStuff(arg1, arg2) { yield; yield arg2; };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/generator-function.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n  { (Identifier)\n  ->(Identifier) }\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n      (Yield\n        (Empty))\n      (Yield\n        (Identifier))))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/generator-function.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n  { (Identifier)\n  ->(Identifier) }\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n      (Yield\n        (Empty))\n      (Yield\n        (Identifier))))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/generator-function.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (GeneratorFunctionDeclaration \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (YieldExpression)))) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (YieldExpression \n                  (Expression \n                    (Identifier \"arg2\"))))))) \n        (Identifier \"generateStuff\") \n        (FormalParameters \n          (RequiredParameter \n            (Identifier \"arg1\")) \n          (RequiredParameter \n            (Identifier \"arg2\")))))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/generator-function.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (GeneratorFunctionDeclaration \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (YieldExpression)))) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (YieldExpression \n                  (Expression \n                    (Identifier \"arg2\"))))))) \n        (Identifier \"generateNewStuff\") \n        (FormalParameters \n          (RequiredParameter \n            (Identifier \"arg1\")) \n          (RequiredParameter \n            (Identifier \"arg2\")))))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/identifier.A.ts",
    "content": "theVar;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/identifier.B.ts",
    "content": "theVar2\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/identifier.diffA-B.txt",
    "content": "(Statements\n{ (Identifier)\n->(Identifier) })\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/identifier.diffB-A.txt",
    "content": "(Statements\n{ (Identifier)\n->(Identifier) })\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/identifier.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Identifier \"theVar\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/identifier.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Identifier \"theVar2\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/if-else.A.ts",
    "content": "if (x) y; else if (a) b; else if (c) d; else if (e) f; else g\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/if-else.B.ts",
    "content": "if (g) h; else if (i) { j; } else if (k) l; else if (m) { n; } else o\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/if-else.diffA-B.txt",
    "content": "(Statements\n  (If\n  { (Identifier)\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) }\n    (If\n    { (Identifier)\n    ->(Identifier) }\n    { (Identifier)\n    ->(Statements\n      {+(Identifier)+}) }\n      (If\n      { (Identifier)\n      ->(Identifier) }\n      { (Identifier)\n      ->(Identifier) }\n        (If\n        { (Identifier)\n        ->(Identifier) }\n        { (Identifier)\n        ->(Statements\n          {+(Identifier)+}) }\n        { (Identifier)\n        ->(Identifier) })))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/if-else.diffB-A.txt",
    "content": "(Statements\n  (If\n  { (Identifier)\n  ->(Identifier) }\n  { (Identifier)\n  ->(Identifier) }\n    (If\n    { (Identifier)\n    ->(Identifier) }\n    { (Statements\n      {-(Identifier)-})\n    ->(Identifier) }\n      (If\n      { (Identifier)\n      ->(Identifier) }\n      { (Identifier)\n      ->(Identifier) }\n        (If\n        { (Identifier)\n        ->(Identifier) }\n        { (Statements\n          {-(Identifier)-})\n        ->(Identifier) }\n        { (Identifier)\n        ->(Identifier) })))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/if-else.parseA.txt",
    "content": "(Program \n  (Statement \n    (IfStatement \n      (Statement \n        (IfStatement \n          (Statement \n            (IfStatement \n              (Statement \n                (IfStatement \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (Identifier \"g\")))) \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (Identifier \"f\")))) \n                  (ParenthesizedExpression \n                    (Expression \n                      (Identifier \"e\"))))) \n              (Statement \n                (ExpressionStatement \n                  (Expression \n                    (Identifier \"d\")))) \n              (ParenthesizedExpression \n                (Expression \n                  (Identifier \"c\"))))) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"b\")))) \n          (ParenthesizedExpression \n            (Expression \n              (Identifier \"a\"))))) \n      (Statement \n        (ExpressionStatement \n          (Expression \n            (Identifier \"y\")))) \n      (ParenthesizedExpression \n        (Expression \n          (Identifier \"x\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/if-else.parseB.txt",
    "content": "(Program \n  (Statement \n    (IfStatement \n      (Statement \n        (IfStatement \n          (Statement \n            (IfStatement \n              (Statement \n                (IfStatement \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (Identifier \"o\")))) \n                  (Statement \n                    (StatementBlock \n                      (Statement \n                        (ExpressionStatement \n                          (Expression \n                            (Identifier \"n\")))))) \n                  (ParenthesizedExpression \n                    (Expression \n                      (Identifier \"m\"))))) \n              (Statement \n                (ExpressionStatement \n                  (Expression \n                    (Identifier \"l\")))) \n              (ParenthesizedExpression \n                (Expression \n                  (Identifier \"k\"))))) \n          (Statement \n            (StatementBlock \n              (Statement \n                (ExpressionStatement \n                  (Expression \n                    (Identifier \"j\")))))) \n          (ParenthesizedExpression \n            (Expression \n              (Identifier \"i\"))))) \n      (Statement \n        (ExpressionStatement \n          (Expression \n            (Identifier \"h\")))) \n      (ParenthesizedExpression \n        (Expression \n          (Identifier \"g\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/if.A.ts",
    "content": "if (x) { log(y); }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/if.B.ts",
    "content": "if (a.b) { log(c); d; }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/if.diffA-B.txt",
    "content": "(Statements\n  (If\n  { (Identifier)\n  ->(MemberAccess\n    {+(Identifier)+}\n    {+(Identifier)+}) }\n    (Statements\n      (Call\n        (Identifier)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n    {+(Identifier)+})\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/if.diffB-A.txt",
    "content": "(Statements\n  (If\n  { (MemberAccess\n    {-(Identifier)-}\n    {-(Identifier)-})\n  ->(Identifier) }\n    (Statements\n      (Call\n        (Identifier)\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))\n    {-(Identifier)-})\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/if.parseA.txt",
    "content": "(Program \n  (Statement \n    (IfStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"log\")) \n                  (Arguments \n                    (Expression \n                      (Identifier \"y\"))))))))) \n      (ParenthesizedExpression \n        (Expression \n          (Identifier \"x\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/if.parseB.txt",
    "content": "(Program \n  (Statement \n    (IfStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"log\")) \n                  (Arguments \n                    (Expression \n                      (Identifier \"c\"))))))) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"d\")))))) \n      (ParenthesizedExpression \n        (Expression \n          (MemberExpression \n            (PropertyIdentifier \"b\") \n            (Expression \n              (Identifier \"a\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/import.A.ts",
    "content": "import defaultMember from \"foo\";\nimport * as name from \"aardvark\";\nimport { member } from \"ant\";\nimport { member1 , member2 } from \"antelope\";\nimport { member1 , member2 as alias2 } from \"ant-eater\";\nimport defaultMember, { member1, member2 as alias2 } from \"anaconda\";\nimport defaultMember, * as name from \"alligator\";\nimport \"arctic-tern\";\nimport zip = require(\"../zip\");\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/import.B.ts",
    "content": "import defaultMember from \"babirusa\";\nimport * as otherName from \"baboon\";\nimport { element } from \"badger\";\nimport { element1 , element2 } from \"bald-eagle\";\nimport { element1 , element2 as elementAlias2 } from \"bandicoot\";\nimport defaultMember, { element1, element2 as elementAlias2 } from \"banteng\";\nimport defaultMember, * as element from \"barbet\";\nimport \"basilisk\";\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/import.diffA-B.txt",
    "content": "(Statements\n{+(Import)+}\n{+(QualifiedAliasedImport\n  {+(Identifier)+})+}\n{+(Import)+}\n{ (Import)\n->(Import) }\n{+(Import)+}\n{+(Statements\n  {+(Import)+}\n  {+(Import)+})+}\n{+(Statements\n  {+(Import)+}\n  {+(QualifiedAliasedImport\n    {+(Identifier)+})+})+}\n{+(SideEffectImport)+}\n{-(QualifiedAliasedImport\n  {-(Identifier)-})-}\n{-(Import)-}\n{-(Import)-}\n{-(Import)-}\n{-(Statements\n  {-(Import)-}\n  {-(Import)-})-}\n{-(Statements\n  {-(Import)-}\n  {-(QualifiedAliasedImport\n    {-(Identifier)-})-})-}\n{-(SideEffectImport)-}\n{-(QualifiedAliasedImport\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/import.diffB-A.txt",
    "content": "(Statements\n{+(Import)+}\n{+(QualifiedAliasedImport\n  {+(Identifier)+})+}\n{+(Import)+}\n{ (Import)\n->(Import) }\n{+(Import)+}\n{+(Statements\n  {+(Import)+}\n  {+(Import)+})+}\n{+(Statements\n  {+(Import)+}\n  {+(QualifiedAliasedImport\n    {+(Identifier)+})+})+}\n{+(SideEffectImport)+}\n{ (QualifiedAliasedImport\n  {-(Identifier)-})\n->(QualifiedAliasedImport\n  {+(Identifier)+}) }\n{-(Import)-}\n{-(Import)-}\n{-(Import)-}\n{-(Statements\n  {-(Import)-}\n  {-(Import)-})-}\n{-(Statements\n  {-(Import)-}\n  {-(QualifiedAliasedImport\n    {-(Identifier)-})-})-}\n{-(SideEffectImport)-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/import.parseA.txt",
    "content": "(Program \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (Identifier \"defaultMember\")))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (NamespaceImport \n          (Identifier \"name\"))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (NamedImports \n          (ImportSpecifier \n            (Identifier \"member\")))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (NamedImports \n          (ImportSpecifier \n            (Identifier \"member1\")) \n          (ImportSpecifier \n            (Identifier \"member2\")))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (NamedImports \n          (ImportSpecifier \n            (Identifier \"member1\")) \n          (ImportSpecifier \n            (Identifier \"alias2\") \n            (Identifier \"member2\")))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (Identifier \"defaultMember\") \n        (NamedImports \n          (ImportSpecifier \n            (Identifier \"member1\")) \n          (ImportSpecifier \n            (Identifier \"alias2\") \n            (Identifier \"member2\")))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (Identifier \"defaultMember\") \n        (NamespaceImport \n          (Identifier \"name\"))))) \n  (Statement \n    (ImportStatement \n      (String))) \n  (Statement \n    (ImportStatement \n      (ImportRequireClause \n        (Identifier \"zip\") \n        (String)))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/import.parseB.txt",
    "content": "(Program \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (Identifier \"defaultMember\")))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (NamespaceImport \n          (Identifier \"otherName\"))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (NamedImports \n          (ImportSpecifier \n            (Identifier \"element\")))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (NamedImports \n          (ImportSpecifier \n            (Identifier \"element1\")) \n          (ImportSpecifier \n            (Identifier \"element2\")))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (NamedImports \n          (ImportSpecifier \n            (Identifier \"element1\")) \n          (ImportSpecifier \n            (Identifier \"elementAlias2\") \n            (Identifier \"element2\")))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (Identifier \"defaultMember\") \n        (NamedImports \n          (ImportSpecifier \n            (Identifier \"element1\")) \n          (ImportSpecifier \n            (Identifier \"elementAlias2\") \n            (Identifier \"element2\")))))) \n  (Statement \n    (ImportStatement \n      (String) \n      (ImportClause \n        (Identifier \"defaultMember\") \n        (NamespaceImport \n          (Identifier \"element\"))))) \n  (Statement \n    (ImportStatement \n      (String))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/interface.A.ts",
    "content": "interface IResult<T> {\n  type: 'result'\n  readonly result: T\n}\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/interface.B.ts",
    "content": "interface IError {\n  type: 'error'\n  readonly error: Error\n}\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/interface.diffA-B.txt",
    "content": "(Statements\n  (InterfaceDeclaration\n  {+(Empty)+}\n  {-(TypeParameters\n    {-(TypeParameter\n      {-(TypeIdentifier)-}\n      {-(Empty)-}\n      {-(Empty)-})-})-}\n  { (TypeIdentifier)\n  ->(TypeIdentifier) }\n    (ObjectType\n      (PropertySignature\n        (Empty)\n        (Annotation\n          (LiteralType\n          { (TextElement)\n          ->(TextElement) }))\n        (Identifier))\n      (PropertySignature\n        (Readonly)\n        (Annotation\n        { (TypeIdentifier)\n        ->(TypeIdentifier) })\n      { (Identifier)\n      ->(Identifier) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/interface.diffB-A.txt",
    "content": "(Statements\n  (InterfaceDeclaration\n  {+(TypeParameters\n    {+(TypeParameter\n      {+(TypeIdentifier)+}\n      {+(Empty)+}\n      {+(Empty)+})+})+}\n  {-(Empty)-}\n  { (TypeIdentifier)\n  ->(TypeIdentifier) }\n    (ObjectType\n      (PropertySignature\n        (Empty)\n        (Annotation\n          (LiteralType\n          { (TextElement)\n          ->(TextElement) }))\n        (Identifier))\n      (PropertySignature\n        (Readonly)\n        (Annotation\n        { (TypeIdentifier)\n        ->(TypeIdentifier) })\n      { (Identifier)\n      ->(Identifier) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/interface.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (InterfaceDeclaration \n        (ObjectType \n          (PropertySignature \n            (PropertyIdentifier \"type\") \n            (TypeAnnotation \n              (LiteralType \n                (String)))) \n          (PropertySignature \n            (PropertyIdentifier \"result\") \n            (TypeAnnotation \n              (TypeIdentifier \"T\")) \n            (Readonly \"readonly\"))) \n        (TypeIdentifier \"IResult\") \n        (TypeParameters \n          (TypeParameter \n            (TypeIdentifier \"T\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/interface.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (InterfaceDeclaration \n        (ObjectType \n          (PropertySignature \n            (PropertyIdentifier \"type\") \n            (TypeAnnotation \n              (LiteralType \n                (String)))) \n          (PropertySignature \n            (PropertyIdentifier \"error\") \n            (TypeAnnotation \n              (TypeIdentifier \"Error\")) \n            (Readonly \"readonly\"))) \n        (TypeIdentifier \"IError\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/intersection-type.A.ts",
    "content": "let x: Foo | Bar;"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/intersection-type.B.ts",
    "content": "let x: A & B;"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/intersection-type.diffA-B.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Annotation\n      { (Union\n        {-(TypeIdentifier)-}\n        {-(TypeIdentifier)-})\n      ->(Intersection\n        {+(TypeIdentifier)+}\n        {+(TypeIdentifier)+}) })\n      (Identifier)\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/intersection-type.diffB-A.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Annotation\n      { (Intersection\n        {-(TypeIdentifier)-}\n        {-(TypeIdentifier)-})\n      ->(Union\n        {+(TypeIdentifier)+}\n        {+(TypeIdentifier)+}) })\n      (Identifier)\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/intersection-type.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (LexicalDeclaration \n        (VariableDeclarator \n          (Identifier \"x\") \n          (TypeAnnotation \n            (UnionType \n              (TypeIdentifier \"Foo\") \n              (TypeIdentifier \"Bar\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/intersection-type.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (LexicalDeclaration \n        (VariableDeclarator \n          (Identifier \"x\") \n          (TypeAnnotation \n            (IntersectionType \n              (TypeIdentifier \"A\") \n              (TypeIdentifier \"B\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/math-assignment-operator.A.ts",
    "content": "x += 1;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/math-assignment-operator.B.ts",
    "content": "x += 2;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/math-assignment-operator.diffA-B.txt",
    "content": "(Statements\n  (AugmentedAssignment\n    (Plus\n      (Identifier)\n    { (Float)\n    ->(Float) })))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/math-assignment-operator.diffB-A.txt",
    "content": "(Statements\n  (AugmentedAssignment\n    (Plus\n      (Identifier)\n    { (Float)\n    ->(Float) })))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/math-assignment-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AugmentedAssignmentExpression \n          (Identifier \"x\") \n          (Expression \n            (Number \"1\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/math-assignment-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AugmentedAssignmentExpression \n          (Identifier \"x\") \n          (Expression \n            (Number \"2\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/math-operator.A.ts",
    "content": "i + j * 3 - j % 5;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/math-operator.B.ts",
    "content": "i + j * 2 - j % 4;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/math-operator.diffA-B.txt",
    "content": "(Statements\n  (Minus\n    (Plus\n      (Identifier)\n      (Times\n        (Identifier)\n      { (Float)\n      ->(Float) }))\n    (Modulo\n      (Identifier)\n    { (Float)\n    ->(Float) })))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/math-operator.diffB-A.txt",
    "content": "(Statements\n  (Minus\n    (Plus\n      (Identifier)\n      (Times\n        (Identifier)\n      { (Float)\n      ->(Float) }))\n    (Modulo\n      (Identifier)\n    { (Float)\n    ->(Float) })))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/math-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (BinaryExpression \n          (Token) \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"i\")) \n              (Expression \n                (BinaryExpression \n                  (Token) \n                  (Expression \n                    (Identifier \"j\")) \n                  (Expression \n                    (Number \"3\")))))) \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"j\")) \n              (Expression \n                (Number \"5\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/math-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (BinaryExpression \n          (Token) \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"i\")) \n              (Expression \n                (BinaryExpression \n                  (Token) \n                  (Expression \n                    (Identifier \"j\")) \n                  (Expression \n                    (Number \"2\")))))) \n          (Expression \n            (BinaryExpression \n              (Token) \n              (Expression \n                (Identifier \"j\")) \n              (Expression \n                (Number \"4\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/member-access-assignment.A.ts",
    "content": "y.x = 0;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/member-access-assignment.B.ts",
    "content": "y.x = 1;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/member-access-assignment.diffA-B.txt",
    "content": "(Statements\n  (Assignment\n    (MemberAccess\n      (Identifier)\n      (Identifier))\n  { (Float)\n  ->(Float) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/member-access-assignment.diffB-A.txt",
    "content": "(Statements\n  (Assignment\n    (MemberAccess\n      (Identifier)\n      (Identifier))\n  { (Float)\n  ->(Float) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/member-access-assignment.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AssignmentExpression \n          (MemberExpression \n            (PropertyIdentifier \"x\") \n            (Expression \n              (Identifier \"y\"))) \n          (Expression \n            (Number \"0\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/member-access-assignment.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AssignmentExpression \n          (MemberExpression \n            (PropertyIdentifier \"x\") \n            (Expression \n              (Identifier \"y\"))) \n          (Expression \n            (Number \"1\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/member-access.A.ts",
    "content": "x.someProperty;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/member-access.B.ts",
    "content": "x.someOtherProperty\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/member-access.diffA-B.txt",
    "content": "(Statements\n  (MemberAccess\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/member-access.diffB-A.txt",
    "content": "(Statements\n  (MemberAccess\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/member-access.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (MemberExpression \n          (PropertyIdentifier \"someProperty\") \n          (Expression \n            (Identifier \"x\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/member-access.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (MemberExpression \n          (PropertyIdentifier \"someOtherProperty\") \n          (Expression \n            (Identifier \"x\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/method-call.A.ts",
    "content": "object.someMethod(arg1, \"arg2\");\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/method-call.B.ts",
    "content": "object.someMethod(arg1, \"arg3\");\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/method-call.diffA-B.txt",
    "content": "(Statements\n  (Call\n    (MemberAccess\n      (Identifier)\n      (Identifier))\n    (Identifier)\n  { (TextElement)\n  ->(TextElement) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/method-call.diffB-A.txt",
    "content": "(Statements\n  (Call\n    (MemberAccess\n      (Identifier)\n      (Identifier))\n    (Identifier)\n  { (TextElement)\n  ->(TextElement) }\n    (Empty)))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/method-call.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (MemberExpression \n              (PropertyIdentifier \"someMethod\") \n              (Expression \n                (Identifier \"object\")))) \n          (Arguments \n            (Expression \n              (Identifier \"arg1\")) \n            (Expression \n              (String))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/method-call.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (CallExpression \n          (Expression \n            (MemberExpression \n              (PropertyIdentifier \"someMethod\") \n              (Expression \n                (Identifier \"object\")))) \n          (Arguments \n            (Expression \n              (Identifier \"arg1\")) \n            (Expression \n              (String))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/method-definition.A.ts",
    "content": "class Foo {\n\tpublic foo(): Int {}\n\n}\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/method-definition.B.ts",
    "content": "class Foo {\n\tpublic static readonly async foo(): string {}\n\n}\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/method-definition.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (TypeIdentifier)\n    (Method\n    {+(Readonly)+}\n      (Empty)\n    {+(Annotation\n      {+(PredefinedType)+})+}\n    {-(Empty)-}\n    {-(Annotation\n      {-(TypeIdentifier)-})-}\n      (Empty)\n      (Identifier)\n      (StatementBlock))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/method-definition.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (TypeIdentifier)\n    (Method\n    {-(Readonly)-}\n      (Empty)\n    {+(Empty)+}\n      (Annotation\n      { (PredefinedType)\n      ->(TypeIdentifier) })\n      (Empty)\n      (Identifier)\n      (StatementBlock))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/method-definition.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (ClassDeclaration \n        (ClassBody \n          (MethodDefinition \n            (TypeAnnotation \n              (TypeIdentifier \"Int\")) \n            (StatementBlock) \n            (PropertyIdentifier \"foo\") \n            (FormalParameters) \n            (AccessibilityModifier \"public\"))) \n        (TypeIdentifier \"Foo\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/method-definition.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (ClassDeclaration \n        (ClassBody \n          (MethodDefinition \n            (TypeAnnotation \n              (PredefinedType \"string\")) \n            (StatementBlock) \n            (PropertyIdentifier \"foo\") \n            (FormalParameters) \n            (AccessibilityModifier \"public\") \n            (Readonly \"readonly\"))) \n        (TypeIdentifier \"Foo\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/module-declarations.A.ts",
    "content": "module Promise {\n}"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/module-declarations.B.ts",
    "content": "declare namespace Promise {\n}"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/module-declarations.diffA-B.txt",
    "content": "(Statements\n{+(AmbientDeclaration\n  {+(InternalModule\n    {+(Identifier)+})+})+}\n{-(Module\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/module-declarations.diffB-A.txt",
    "content": "(Statements\n{+(Module\n  {+(Identifier)+})+}\n{-(AmbientDeclaration\n  {-(InternalModule\n    {-(Identifier)-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/module-declarations.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (Module \n        (StatementBlock) \n        (Identifier \"Promise\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/module-declarations.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (AmbientDeclaration \n        (Declaration \n          (InternalModule \n            (StatementBlock) \n            (Identifier \"Promise\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/named-function.A.ts",
    "content": "function myFunction(arg1, arg2) { arg2; };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/named-function.B.ts",
    "content": "function anotherFunction() { return false; };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/named-function.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n  { (Identifier)\n  ->(Identifier) }\n  {-(RequiredParameter\n    {-(Empty)-}\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(Empty)-})-}\n  {-(RequiredParameter\n    {-(Empty)-}\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(Empty)-})-}\n    (StatementBlock\n    {+(Return\n      {+(Boolean)+})+}\n    {-(Identifier)-}))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/named-function.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n  { (Identifier)\n  ->(Identifier) }\n  {+(RequiredParameter\n    {+(Empty)+}\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(Empty)+})+}\n  {+(RequiredParameter\n    {+(Empty)+}\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(Empty)+})+}\n    (StatementBlock\n    {+(Identifier)+}\n    {-(Return\n      {-(Boolean)-})-}))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/named-function.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (FunctionDeclaration \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"arg2\"))))) \n        (Identifier \"myFunction\") \n        (FormalParameters \n          (RequiredParameter \n            (Identifier \"arg1\")) \n          (RequiredParameter \n            (Identifier \"arg2\")))))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/named-function.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (FunctionDeclaration \n        (StatementBlock \n          (Statement \n            (ReturnStatement \n              (Expression \n                (False \"false\"))))) \n        (Identifier \"anotherFunction\") \n        (FormalParameters)))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/nested-do-while-in-function.A.ts",
    "content": "function f(arg1, arg2) { do { something(arg1); } while (arg2); }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/nested-do-while-in-function.B.ts",
    "content": "function f(arg1, arg2) { do { something(arg2); } while (arg1); }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/nested-do-while-in-function.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Identifier)\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n      (DoWhile\n      { (Identifier)\n      ->(Identifier) }\n        (Statements\n          (Call\n            (Identifier)\n          { (Identifier)\n          ->(Identifier) }\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/nested-do-while-in-function.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Identifier)\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n      (DoWhile\n      { (Identifier)\n      ->(Identifier) }\n        (Statements\n          (Call\n            (Identifier)\n          { (Identifier)\n          ->(Identifier) }\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/nested-do-while-in-function.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (FunctionDeclaration \n        (StatementBlock \n          (Statement \n            (DoStatement \n              (Statement \n                (StatementBlock \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (Identifier \"something\")) \n                          (Arguments \n                            (Expression \n                              (Identifier \"arg1\"))))))))) \n              (ParenthesizedExpression \n                (Expression \n                  (Identifier \"arg2\")))))) \n        (Identifier \"f\") \n        (FormalParameters \n          (RequiredParameter \n            (Identifier \"arg1\")) \n          (RequiredParameter \n            (Identifier \"arg2\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/nested-do-while-in-function.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (FunctionDeclaration \n        (StatementBlock \n          (Statement \n            (DoStatement \n              (Statement \n                (StatementBlock \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (Identifier \"something\")) \n                          (Arguments \n                            (Expression \n                              (Identifier \"arg2\"))))))))) \n              (ParenthesizedExpression \n                (Expression \n                  (Identifier \"arg1\")))))) \n        (Identifier \"f\") \n        (FormalParameters \n          (RequiredParameter \n            (Identifier \"arg1\")) \n          (RequiredParameter \n            (Identifier \"arg2\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/nested-functions.A.ts",
    "content": "function parent (arg1, arg2) { function child (arg3, arg4) { console.log(arg3); console.log(arg4); } }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/nested-functions.B.ts",
    "content": "function parent (arg1, arg2) { function child (arg3, arg4) { console.log(arg1); console.log(arg2); } }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/nested-functions.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Identifier)\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n      (Function\n        (Empty)\n        (Empty)\n        (Identifier)\n        (RequiredParameter\n          (Empty)\n          (Empty)\n          (Identifier)\n          (Empty))\n        (RequiredParameter\n          (Empty)\n          (Empty)\n          (Identifier)\n          (Empty))\n        (StatementBlock\n          (Call\n            (MemberAccess\n              (Identifier)\n              (Identifier))\n          { (Identifier)\n          ->(Identifier) }\n            (Empty))\n          (Call\n            (MemberAccess\n              (Identifier)\n              (Identifier))\n          { (Identifier)\n          ->(Identifier) }\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/nested-functions.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Identifier)\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (RequiredParameter\n      (Empty)\n      (Empty)\n      (Identifier)\n      (Empty))\n    (StatementBlock\n      (Function\n        (Empty)\n        (Empty)\n        (Identifier)\n        (RequiredParameter\n          (Empty)\n          (Empty)\n          (Identifier)\n          (Empty))\n        (RequiredParameter\n          (Empty)\n          (Empty)\n          (Identifier)\n          (Empty))\n        (StatementBlock\n          (Call\n            (MemberAccess\n              (Identifier)\n              (Identifier))\n          { (Identifier)\n          ->(Identifier) }\n            (Empty))\n          (Call\n            (MemberAccess\n              (Identifier)\n              (Identifier))\n          { (Identifier)\n          ->(Identifier) }\n            (Empty)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/nested-functions.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (FunctionDeclaration \n        (StatementBlock \n          (Statement \n            (Declaration \n              (FunctionDeclaration \n                (StatementBlock \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (MemberExpression \n                              (PropertyIdentifier \"log\") \n                              (Expression \n                                (Identifier \"console\")))) \n                          (Arguments \n                            (Expression \n                              (Identifier \"arg3\"))))))) \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (MemberExpression \n                              (PropertyIdentifier \"log\") \n                              (Expression \n                                (Identifier \"console\")))) \n                          (Arguments \n                            (Expression \n                              (Identifier \"arg4\")))))))) \n                (Identifier \"child\") \n                (FormalParameters \n                  (RequiredParameter \n                    (Identifier \"arg3\")) \n                  (RequiredParameter \n                    (Identifier \"arg4\"))))))) \n        (Identifier \"parent\") \n        (FormalParameters \n          (RequiredParameter \n            (Identifier \"arg1\")) \n          (RequiredParameter \n            (Identifier \"arg2\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/nested-functions.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (FunctionDeclaration \n        (StatementBlock \n          (Statement \n            (Declaration \n              (FunctionDeclaration \n                (StatementBlock \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (MemberExpression \n                              (PropertyIdentifier \"log\") \n                              (Expression \n                                (Identifier \"console\")))) \n                          (Arguments \n                            (Expression \n                              (Identifier \"arg1\"))))))) \n                  (Statement \n                    (ExpressionStatement \n                      (Expression \n                        (CallExpression \n                          (Expression \n                            (MemberExpression \n                              (PropertyIdentifier \"log\") \n                              (Expression \n                                (Identifier \"console\")))) \n                          (Arguments \n                            (Expression \n                              (Identifier \"arg2\")))))))) \n                (Identifier \"child\") \n                (FormalParameters \n                  (RequiredParameter \n                    (Identifier \"arg3\")) \n                  (RequiredParameter \n                    (Identifier \"arg4\"))))))) \n        (Identifier \"parent\") \n        (FormalParameters \n          (RequiredParameter \n            (Identifier \"arg1\")) \n          (RequiredParameter \n            (Identifier \"arg2\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/null.A.ts",
    "content": "null;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/null.B.ts",
    "content": "return null;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/null.diffA-B.txt",
    "content": "(Statements\n{+(Return\n  {+(Null)+})+}\n{-(Null)-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/null.diffB-A.txt",
    "content": "(Statements\n{+(Null)+}\n{-(Return\n  {-(Null)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/null.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Null \"null\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/null.parseB.txt",
    "content": "(Program \n  (Statement \n    (ReturnStatement \n      (Expression \n        (Null \"null\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/number.A.ts",
    "content": "101\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/number.B.ts",
    "content": "102\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/number.diffA-B.txt",
    "content": "(Statements\n{ (Float)\n->(Float) })\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/number.diffB-A.txt",
    "content": "(Statements\n{ (Float)\n->(Float) })\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/number.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Number \"101\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/number.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Number \"102\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/object.A.ts",
    "content": "{ \"key1\": \"value1\" };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/object.B.ts",
    "content": "{ \"key1\": \"value1\", \"key2\": \"value2\", \"key3\": \"3.0\" };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/object.diffA-B.txt",
    "content": "(Statements\n  (Hash\n    (KeyValue\n      (TextElement)\n      (TextElement))\n  {+(KeyValue\n    {+(TextElement)+}\n    {+(TextElement)+})+}\n  {+(KeyValue\n    {+(TextElement)+}\n    {+(TextElement)+})+}))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/object.diffB-A.txt",
    "content": "(Statements\n  (Hash\n    (KeyValue\n      (TextElement)\n      (TextElement))\n  {-(KeyValue\n    {-(TextElement)-}\n    {-(TextElement)-})-}\n  {-(KeyValue\n    {-(TextElement)-}\n    {-(TextElement)-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/object.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Object \n          (Pair \n            (Expression \n              (String)) \n            (String)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/object.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Object \n          (Pair \n            (Expression \n              (String)) \n            (String)) \n          (Pair \n            (Expression \n              (String)) \n            (String)) \n          (Pair \n            (Expression \n              (String)) \n            (String)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/objects-with-methods.A.ts",
    "content": "{ add(a, b) { return a + b; } };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/objects-with-methods.B.ts",
    "content": "{ subtract(a, b) { return a - b; } };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/objects-with-methods.diffA-B.txt",
    "content": "(Statements\n  (Hash\n    (Method\n      (Empty)\n      (Empty)\n      (Empty)\n      (Empty)\n    { (Identifier)\n    ->(Identifier) }\n      (RequiredParameter\n        (Empty)\n        (Empty)\n        (Identifier)\n        (Empty))\n      (RequiredParameter\n        (Empty)\n        (Empty)\n        (Identifier)\n        (Empty))\n      (StatementBlock\n        (Return\n        { (Plus\n          {-(Identifier)-}\n          {-(Identifier)-})\n        ->(Minus\n          {+(Identifier)+}\n          {+(Identifier)+}) })))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/objects-with-methods.diffB-A.txt",
    "content": "(Statements\n  (Hash\n    (Method\n      (Empty)\n      (Empty)\n      (Empty)\n      (Empty)\n    { (Identifier)\n    ->(Identifier) }\n      (RequiredParameter\n        (Empty)\n        (Empty)\n        (Identifier)\n        (Empty))\n      (RequiredParameter\n        (Empty)\n        (Empty)\n        (Identifier)\n        (Empty))\n      (StatementBlock\n        (Return\n        { (Minus\n          {-(Identifier)-}\n          {-(Identifier)-})\n        ->(Plus\n          {+(Identifier)+}\n          {+(Identifier)+}) })))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/objects-with-methods.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Object \n          (MethodDefinition \n            (StatementBlock \n              (Statement \n                (ReturnStatement \n                  (Expression \n                    (BinaryExpression \n                      (Token) \n                      (Expression \n                        (Identifier \"a\")) \n                      (Expression \n                        (Identifier \"b\"))))))) \n            (PropertyIdentifier \"add\") \n            (FormalParameters \n              (RequiredParameter \n                (Identifier \"a\")) \n              (RequiredParameter \n                (Identifier \"b\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/objects-with-methods.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Object \n          (MethodDefinition \n            (StatementBlock \n              (Statement \n                (ReturnStatement \n                  (Expression \n                    (BinaryExpression \n                      (Token) \n                      (Expression \n                        (Identifier \"a\")) \n                      (Expression \n                        (Identifier \"b\"))))))) \n            (PropertyIdentifier \"subtract\") \n            (FormalParameters \n              (RequiredParameter \n                (Identifier \"a\")) \n              (RequiredParameter \n                (Identifier \"b\")))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/public-field-definition.A.ts",
    "content": "class Foo {\n  readonly foo;\n  static readonly foo1;\n  public static readonly foo2;\n  public static readonly foo3 = 1;\n  public static readonly foo4?: Number = 1;\n  foo5?: Number = 1;\n  foo6: Number = 1;\n  readonly foo7: Number = 1;\n  static readonly foo8: Number = 1;\n  static foo9: Number = 1;\n  foo10 = 1;\n}\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/public-field-definition.B.ts",
    "content": "class Foo {\n\treadonly foo;\n\tstatic readonly foo1;\n\tpublic readonly foo2;\n\tpublic static readonly foo3: Number = 1;\n\tprivate static foo4?: Number = 1;\n\tfoo5: Number = 1;\n\tfoo6?: Number = 1;\n\tpublic foo7: Number = 1;\n\tprotected static readonly foo8: String = \"hello\";\n\tstatic foo11: Number = 1;\n\tfoo10 = 2;\n}\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/public-field-definition.diffA-B.txt",
    "content": "(Statements\n  (Class\n    (TypeIdentifier)\n    (Statements\n      (PublicFieldDefinition\n        (Readonly)\n        (Empty)\n        (Identifier)\n        (Empty))\n      (PublicFieldDefinition\n        (Readonly)\n        (Empty)\n        (Identifier)\n        (Empty))\n      (PublicFieldDefinition\n        (Readonly)\n        (Empty)\n        (Identifier)\n        (Empty))\n      (PublicFieldDefinition\n        (Readonly)\n      {+(Annotation\n        {+(TypeIdentifier)+})+}\n      {-(Empty)-}\n        (Identifier)\n        (Float))\n    { (PublicFieldDefinition\n      {-(Readonly)-}\n      {-(Annotation\n        {-(TypeIdentifier)-})-}\n      {-(Identifier)-}\n      {-(Float)-})\n    ->(PublicFieldDefinition\n      {+(Empty)+}\n      {+(Annotation\n        {+(TypeIdentifier)+})+}\n      {+(Identifier)+}\n      {+(Float)+}) }\n      (PublicFieldDefinition\n        (Empty)\n        (Annotation\n          (TypeIdentifier))\n        (Identifier)\n        (Float))\n      (PublicFieldDefinition\n        (Empty)\n        (Annotation\n          (TypeIdentifier))\n        (Identifier)\n        (Float))\n      (PublicFieldDefinition\n      {+(Empty)+}\n      {-(Readonly)-}\n        (Annotation\n          (TypeIdentifier))\n        (Identifier)\n        (Float))\n    { (PublicFieldDefinition\n      {-(Readonly)-}\n      {-(Annotation\n        {-(TypeIdentifier)-})-}\n      {-(Identifier)-}\n      {-(Float)-})\n    ->(PublicFieldDefinition\n      {+(Readonly)+}\n      {+(Annotation\n        {+(TypeIdentifier)+})+}\n      {+(Identifier)+}\n      {+(TextElement)+}) }\n      (PublicFieldDefinition\n        (Empty)\n        (Annotation\n          (TypeIdentifier))\n      { (Identifier)\n      ->(Identifier) }\n        (Float))\n      (PublicFieldDefinition\n        (Empty)\n        (Empty)\n        (Identifier)\n      { (Float)\n      ->(Float) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/public-field-definition.diffB-A.txt",
    "content": "(Statements\n  (Class\n    (TypeIdentifier)\n    (Statements\n      (PublicFieldDefinition\n        (Readonly)\n        (Empty)\n        (Identifier)\n        (Empty))\n      (PublicFieldDefinition\n        (Readonly)\n        (Empty)\n        (Identifier)\n        (Empty))\n      (PublicFieldDefinition\n        (Readonly)\n        (Empty)\n        (Identifier)\n        (Empty))\n      (PublicFieldDefinition\n        (Readonly)\n      {+(Empty)+}\n      {-(Annotation\n        {-(TypeIdentifier)-})-}\n        (Identifier)\n        (Float))\n    { (PublicFieldDefinition\n      {-(Empty)-}\n      {-(Annotation\n        {-(TypeIdentifier)-})-}\n      {-(Identifier)-}\n      {-(Float)-})\n    ->(PublicFieldDefinition\n      {+(Readonly)+}\n      {+(Annotation\n        {+(TypeIdentifier)+})+}\n      {+(Identifier)+}\n      {+(Float)+}) }\n      (PublicFieldDefinition\n        (Empty)\n        (Annotation\n          (TypeIdentifier))\n        (Identifier)\n        (Float))\n      (PublicFieldDefinition\n        (Empty)\n        (Annotation\n          (TypeIdentifier))\n        (Identifier)\n        (Float))\n      (PublicFieldDefinition\n      {+(Readonly)+}\n      {-(Empty)-}\n        (Annotation\n          (TypeIdentifier))\n        (Identifier)\n        (Float))\n    { (PublicFieldDefinition\n      {-(Readonly)-}\n      {-(Annotation\n        {-(TypeIdentifier)-})-}\n      {-(Identifier)-}\n      {-(TextElement)-})\n    ->(PublicFieldDefinition\n      {+(Readonly)+}\n      {+(Annotation\n        {+(TypeIdentifier)+})+}\n      {+(Identifier)+}\n      {+(Float)+}) }\n      (PublicFieldDefinition\n        (Empty)\n        (Annotation\n          (TypeIdentifier))\n      { (Identifier)\n      ->(Identifier) }\n        (Float))\n      (PublicFieldDefinition\n        (Empty)\n        (Empty)\n        (Identifier)\n      { (Float)\n      ->(Float) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/public-field-definition.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (ClassDeclaration \n        (ClassBody \n          (PublicFieldDefinition \n            (PropertyIdentifier \"foo\") \n            (Readonly \"readonly\")) \n          (PublicFieldDefinition \n            (PropertyIdentifier \"foo1\") \n            (Readonly \"readonly\")) \n          (PublicFieldDefinition \n            (PropertyIdentifier \"foo2\") \n            (AccessibilityModifier \"public\") \n            (Readonly \"readonly\")) \n          (PublicFieldDefinition \n            (Expression \n              (Number \"1\")) \n            (PropertyIdentifier \"foo3\") \n            (AccessibilityModifier \"public\") \n            (Readonly \"readonly\")) \n          (PublicFieldDefinition \n            (Expression \n              (Number \"1\")) \n            (PropertyIdentifier \"foo4\") \n            (TypeAnnotation \n              (TypeIdentifier \"Number\")) \n            (AccessibilityModifier \"public\") \n            (Readonly \"readonly\")) \n          (PublicFieldDefinition \n            (Expression \n              (Number \"1\")) \n            (PropertyIdentifier \"foo5\") \n            (TypeAnnotation \n              (TypeIdentifier \"Number\"))) \n          (PublicFieldDefinition \n            (Expression \n              (Number \"1\")) \n            (PropertyIdentifier \"foo6\") \n            (TypeAnnotation \n              (TypeIdentifier \"Number\"))) \n          (PublicFieldDefinition \n            (Expression \n              (Number \"1\")) \n            (PropertyIdentifier \"foo7\") \n            (TypeAnnotation \n              (TypeIdentifier \"Number\")) \n            (Readonly \"readonly\")) \n          (PublicFieldDefinition \n            (Expression \n              (Number \"1\")) \n            (PropertyIdentifier \"foo8\") \n            (TypeAnnotation \n              (TypeIdentifier \"Number\")) \n            (Readonly \"readonly\")) \n          (PublicFieldDefinition \n            (Expression \n              (Number \"1\")) \n            (PropertyIdentifier \"foo9\") \n            (TypeAnnotation \n              (TypeIdentifier \"Number\"))) \n          (PublicFieldDefinition \n            (Expression \n              (Number \"1\")) \n            (PropertyIdentifier \"foo10\"))) \n        (TypeIdentifier \"Foo\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/public-field-definition.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (ClassDeclaration \n        (ClassBody \n          (PublicFieldDefinition \n            (PropertyIdentifier \"foo\") \n            (Readonly \"readonly\")) \n          (PublicFieldDefinition \n            (PropertyIdentifier \"foo1\") \n            (Readonly \"readonly\")) \n          (PublicFieldDefinition \n            (PropertyIdentifier \"foo2\") \n            (AccessibilityModifier \"public\") \n            (Readonly \"readonly\")) \n          (PublicFieldDefinition \n            (Expression \n              (Number \"1\")) \n            (PropertyIdentifier \"foo3\") \n            (TypeAnnotation \n              (TypeIdentifier \"Number\")) \n            (AccessibilityModifier \"public\") \n            (Readonly \"readonly\")) \n          (PublicFieldDefinition \n            (Expression \n              (Number \"1\")) \n            (PropertyIdentifier \"foo4\") \n            (TypeAnnotation \n              (TypeIdentifier \"Number\")) \n            (AccessibilityModifier \"private\")) \n          (PublicFieldDefinition \n            (Expression \n              (Number \"1\")) \n            (PropertyIdentifier \"foo5\") \n            (TypeAnnotation \n              (TypeIdentifier \"Number\"))) \n          (PublicFieldDefinition \n            (Expression \n              (Number \"1\")) \n            (PropertyIdentifier \"foo6\") \n            (TypeAnnotation \n              (TypeIdentifier \"Number\"))) \n          (PublicFieldDefinition \n            (Expression \n              (Number \"1\")) \n            (PropertyIdentifier \"foo7\") \n            (TypeAnnotation \n              (TypeIdentifier \"Number\")) \n            (AccessibilityModifier \"public\")) \n          (PublicFieldDefinition \n            (Expression \n              (String)) \n            (PropertyIdentifier \"foo8\") \n            (TypeAnnotation \n              (TypeIdentifier \"String\")) \n            (AccessibilityModifier \"protected\") \n            (Readonly \"readonly\")) \n          (PublicFieldDefinition \n            (Expression \n              (Number \"1\")) \n            (PropertyIdentifier \"foo11\") \n            (TypeAnnotation \n              (TypeIdentifier \"Number\"))) \n          (PublicFieldDefinition \n            (Expression \n              (Number \"2\")) \n            (PropertyIdentifier \"foo10\"))) \n        (TypeIdentifier \"Foo\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/regex.A.ts",
    "content": "/one/g;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/regex.B.ts",
    "content": "/on[^/]afe/gim;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/regex.diffA-B.txt",
    "content": "(Statements\n{ (Regex)\n->(Regex) })\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/regex.diffB-A.txt",
    "content": "(Statements\n{ (Regex)\n->(Regex) })\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/regex.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Regex \n          (RegexFlags \"g\") \n          (RegexPattern \"one\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/regex.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Regex \n          (RegexFlags \"gim\") \n          (RegexPattern \"on[^/]afe\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/relational-operator.A.ts",
    "content": "x < y;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/relational-operator.B.ts",
    "content": "x <= y;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/relational-operator.diffA-B.txt",
    "content": "(Statements\n{+(LessThanEqual\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(LessThan\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/relational-operator.diffB-A.txt",
    "content": "(Statements\n{+(LessThan\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(LessThanEqual\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/relational-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (BinaryExpression \n          (Token) \n          (Expression \n            (Identifier \"x\")) \n          (Expression \n            (Identifier \"y\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/relational-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (BinaryExpression \n          (Token) \n          (Expression \n            (Identifier \"x\")) \n          (Expression \n            (Identifier \"y\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/return-statement.A.ts",
    "content": "return 5;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/return-statement.B.ts",
    "content": "return;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/return-statement.diffA-B.txt",
    "content": "(Statements\n  (Return\n  { (Float)\n  ->(Empty) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/return-statement.diffB-A.txt",
    "content": "(Statements\n  (Return\n  { (Empty)\n  ->(Float) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/return-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (ReturnStatement \n      (Expression \n        (Number \"5\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/return-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (ReturnStatement)))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/string.A.ts",
    "content": "'A string with \"double\" quotes';\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/string.B.ts",
    "content": "'A different string with \"double\" quotes';\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/string.diffA-B.txt",
    "content": "(Statements\n{ (TextElement)\n->(TextElement) })\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/string.diffB-A.txt",
    "content": "(Statements\n{ (TextElement)\n->(TextElement) })\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/string.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (String)))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/string.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (String)))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/subscript-access-assignment.A.ts",
    "content": "y[\"x\"] = 0;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/subscript-access-assignment.B.ts",
    "content": "y[\"x\"] = 1;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/subscript-access-assignment.diffA-B.txt",
    "content": "(Statements\n  (Assignment\n    (Subscript\n      (Identifier)\n      (TextElement))\n  { (Float)\n  ->(Float) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/subscript-access-assignment.diffB-A.txt",
    "content": "(Statements\n  (Assignment\n    (Subscript\n      (Identifier)\n      (TextElement))\n  { (Float)\n  ->(Float) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/subscript-access-assignment.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AssignmentExpression \n          (SubscriptExpression \n            (Expression \n              (Identifier \"y\")) \n            (Expression \n              (String))) \n          (Expression \n            (Number \"0\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/subscript-access-assignment.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AssignmentExpression \n          (SubscriptExpression \n            (Expression \n              (Identifier \"y\")) \n            (Expression \n              (String))) \n          (Expression \n            (Number \"1\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/subscript-access-string.A.ts",
    "content": "x[\"some-string\"];\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/subscript-access-string.B.ts",
    "content": "x[\"some-other-string\"];\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/subscript-access-string.diffA-B.txt",
    "content": "(Statements\n  (Subscript\n    (Identifier)\n  { (TextElement)\n  ->(TextElement) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/subscript-access-string.diffB-A.txt",
    "content": "(Statements\n  (Subscript\n    (Identifier)\n  { (TextElement)\n  ->(TextElement) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/subscript-access-string.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (SubscriptExpression \n          (Expression \n            (Identifier \"x\")) \n          (Expression \n            (String)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/subscript-access-string.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (SubscriptExpression \n          (Expression \n            (Identifier \"x\")) \n          (Expression \n            (String)))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/subscript-access-variable.A.ts",
    "content": "x[someVariable];\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/subscript-access-variable.B.ts",
    "content": "x[someOtherVariable];\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/subscript-access-variable.diffA-B.txt",
    "content": "(Statements\n  (Subscript\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/subscript-access-variable.diffB-A.txt",
    "content": "(Statements\n  (Subscript\n    (Identifier)\n  { (Identifier)\n  ->(Identifier) }))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/subscript-access-variable.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (SubscriptExpression \n          (Expression \n            (Identifier \"x\")) \n          (Expression \n            (Identifier \"someVariable\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/subscript-access-variable.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (SubscriptExpression \n          (Expression \n            (Identifier \"x\")) \n          (Expression \n            (Identifier \"someOtherVariable\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/switch-statement.A.ts",
    "content": "switch (1) { case 1: 1; case 2: 1; case 3: 3; };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/switch-statement.B.ts",
    "content": "switch (2) { case 1: 1; case 2: 2; case 3: 3; };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/switch-statement.diffA-B.txt",
    "content": "(Statements\n  (Match\n  { (Float)\n  ->(Float) }\n    (Statements\n      (Pattern\n        (Float)\n        (Statements\n          (Float)))\n      (Pattern\n        (Float)\n        (Statements\n        { (Float)\n        ->(Float) }))\n      (Pattern\n        (Float)\n        (Statements\n          (Float)))))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/switch-statement.diffB-A.txt",
    "content": "(Statements\n  (Match\n  { (Float)\n  ->(Float) }\n    (Statements\n      (Pattern\n        (Float)\n        (Statements\n          (Float)))\n      (Pattern\n        (Float)\n        (Statements\n        { (Float)\n        ->(Float) }))\n      (Pattern\n        (Float)\n        (Statements\n          (Float)))))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/switch-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (SwitchStatement \n      (SwitchBody \n        (SwitchCase \n          (Expression \n            (Number \"1\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Number \"1\"))))) \n        (SwitchCase \n          (Expression \n            (Number \"2\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Number \"1\"))))) \n        (SwitchCase \n          (Expression \n            (Number \"3\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Number \"3\")))))) \n      (ParenthesizedExpression \n        (Expression \n          (Number \"1\"))))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/switch-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (SwitchStatement \n      (SwitchBody \n        (SwitchCase \n          (Expression \n            (Number \"1\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Number \"1\"))))) \n        (SwitchCase \n          (Expression \n            (Number \"2\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Number \"2\"))))) \n        (SwitchCase \n          (Expression \n            (Number \"3\")) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Number \"3\")))))) \n      (ParenthesizedExpression \n        (Expression \n          (Number \"2\"))))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/template-string.A.ts",
    "content": "`one line`\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/template-string.B.ts",
    "content": "`multi line`\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/template-string.diffA-B.txt",
    "content": "(Statements\n  (String))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/template-string.diffB-A.txt",
    "content": "(Statements\n  (String))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/template-string.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (TemplateString)))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/template-string.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (TemplateString)))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ternary.A.ts",
    "content": "condition ? case1 : case2;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ternary.B.ts",
    "content": "x.y = some.condition ? some.case : some.other.case;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ternary.diffA-B.txt",
    "content": "(Statements\n{+(Assignment\n  {+(MemberAccess\n    {+(Identifier)+}\n    {+(Identifier)+})+}\n  {+(If\n    {+(MemberAccess\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(MemberAccess\n      {+(Identifier)+}\n      {+(Identifier)+})+}\n    {+(MemberAccess\n      {+(MemberAccess\n        {+(Identifier)+}\n        {+(Identifier)+})+}\n      {+(Identifier)+})+})+})+}\n{-(If\n  {-(Identifier)-}\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ternary.diffB-A.txt",
    "content": "(Statements\n{+(If\n  {+(Identifier)+}\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(Assignment\n  {-(MemberAccess\n    {-(Identifier)-}\n    {-(Identifier)-})-}\n  {-(If\n    {-(MemberAccess\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(MemberAccess\n      {-(Identifier)-}\n      {-(Identifier)-})-}\n    {-(MemberAccess\n      {-(MemberAccess\n        {-(Identifier)-}\n        {-(Identifier)-})-}\n      {-(Identifier)-})-})-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ternary.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (TernaryExpression \n          (Expression \n            (Identifier \"case2\")) \n          (Expression \n            (Identifier \"case1\")) \n          (Expression \n            (Identifier \"condition\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/ternary.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AssignmentExpression \n          (MemberExpression \n            (PropertyIdentifier \"y\") \n            (Expression \n              (Identifier \"x\"))) \n          (Expression \n            (TernaryExpression \n              (Expression \n                (MemberExpression \n                  (PropertyIdentifier \"case\") \n                  (Expression \n                    (MemberExpression \n                      (PropertyIdentifier \"other\") \n                      (Expression \n                        (Identifier \"some\")))))) \n              (Expression \n                (MemberExpression \n                  (PropertyIdentifier \"case\") \n                  (Expression \n                    (Identifier \"some\")))) \n              (Expression \n                (MemberExpression \n                  (PropertyIdentifier \"condition\") \n                  (Expression \n                    (Identifier \"some\")))))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/this-expression.A.ts",
    "content": "this;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/this-expression.B.ts",
    "content": "return this;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/this-expression.diffA-B.txt",
    "content": "(Statements\n{+(Return\n  {+(This)+})+}\n{-(This)-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/this-expression.diffB-A.txt",
    "content": "(Statements\n{+(This)+}\n{-(Return\n  {-(This)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/this-expression.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (This \"this\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/this-expression.parseB.txt",
    "content": "(Program \n  (Statement \n    (ReturnStatement \n      (Expression \n        (This \"this\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/throw-statement.A.ts",
    "content": "throw new Error(\"uh oh\");\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/throw-statement.B.ts",
    "content": "throw new Error(\"oooooops\");\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/throw-statement.diffA-B.txt",
    "content": "(Statements\n  (Throw\n    (New\n      (Identifier)\n      (Empty)\n    { (TextElement)\n    ->(TextElement) })))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/throw-statement.diffB-A.txt",
    "content": "(Statements\n  (Throw\n    (New\n      (Identifier)\n      (Empty)\n    { (TextElement)\n    ->(TextElement) })))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/throw-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (ThrowStatement \n      (Expression \n        (NewExpression \n          (Arguments \n            (Expression \n              (String))) \n          (Identifier \"Error\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/throw-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (ThrowStatement \n      (Expression \n        (NewExpression \n          (Arguments \n            (Expression \n              (String))) \n          (Identifier \"Error\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/true.A.ts",
    "content": "true;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/true.B.ts",
    "content": "return true;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/true.diffA-B.txt",
    "content": "(Statements\n{+(Return\n  {+(Boolean)+})+}\n{-(Boolean)-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/true.diffB-A.txt",
    "content": "(Statements\n{+(Boolean)+}\n{-(Return\n  {-(Boolean)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/true.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (True \"true\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/true.parseB.txt",
    "content": "(Program \n  (Statement \n    (ReturnStatement \n      (Expression \n        (True \"true\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/try-statement.A.ts",
    "content": "try { f; } catch { g; } finally { h; };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/try-statement.B.ts",
    "content": "try { f; } catch { h; } finally { g; };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/try-statement.diffA-B.txt",
    "content": "(Statements\n  (Try\n    (Statements\n      (Identifier))\n    (Catch\n      (Empty)\n      (Statements\n      { (Identifier)\n      ->(Identifier) }))\n    (Finally\n      (Statements\n      { (Identifier)\n      ->(Identifier) })))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/try-statement.diffB-A.txt",
    "content": "(Statements\n  (Try\n    (Statements\n      (Identifier))\n    (Catch\n      (Empty)\n      (Statements\n      { (Identifier)\n      ->(Identifier) }))\n    (Finally\n      (Statements\n      { (Identifier)\n      ->(Identifier) })))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/try-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (TryStatement \n      (StatementBlock \n        (Statement \n          (ExpressionStatement \n            (Expression \n              (Identifier \"f\"))))) \n      (CatchClause \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"g\")))))) \n      (FinallyClause \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"h\")))))))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/try-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (TryStatement \n      (StatementBlock \n        (Statement \n          (ExpressionStatement \n            (Expression \n              (Identifier \"f\"))))) \n      (CatchClause \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"h\")))))) \n      (FinallyClause \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (Identifier \"g\")))))))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/tuple-type.A.ts",
    "content": "let x: [A,B];"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/tuple-type.B.ts",
    "content": "let x: A & B;"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/tuple-type.diffA-B.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Annotation\n      { (Tuple\n        {-(TypeIdentifier)-}\n        {-(TypeIdentifier)-})\n      ->(Intersection\n        {+(TypeIdentifier)+}\n        {+(TypeIdentifier)+}) })\n      (Identifier)\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/tuple-type.diffB-A.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Annotation\n      { (Intersection\n        {-(TypeIdentifier)-}\n        {-(TypeIdentifier)-})\n      ->(Tuple\n        {+(TypeIdentifier)+}\n        {+(TypeIdentifier)+}) })\n      (Identifier)\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/tuple-type.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (LexicalDeclaration \n        (VariableDeclarator \n          (Identifier \"x\") \n          (TypeAnnotation \n            (TupleType \n              (TypeIdentifier \"A\") \n              (TypeIdentifier \"B\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/tuple-type.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (LexicalDeclaration \n        (VariableDeclarator \n          (Identifier \"x\") \n          (TypeAnnotation \n            (IntersectionType \n              (TypeIdentifier \"A\") \n              (TypeIdentifier \"B\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/type-assertions.A.ts",
    "content": "<string>foo;"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/type-assertions.B.ts",
    "content": "foo as any;"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/type-assertions.diffA-B.txt",
    "content": "(Statements\n{+(Cast\n  {+(Identifier)+}\n  {+(PredefinedType)+})+}\n{-(TypeAssertion\n  {-(TypeArguments\n    {-(PredefinedType)-})-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/type-assertions.diffB-A.txt",
    "content": "(Statements\n{+(TypeAssertion\n  {+(TypeArguments\n    {+(PredefinedType)+})+}\n  {+(Identifier)+})+}\n{-(Cast\n  {-(Identifier)-}\n  {-(PredefinedType)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/type-assertions.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (TypeAssertion \n          (TypeArguments \n            (PredefinedType \"string\")) \n          (Expression \n            (Identifier \"foo\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/type-assertions.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (AsExpression \n          (Expression \n            (Identifier \"foo\")) \n          (PredefinedType \"any\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/type-operator.A.ts",
    "content": "typeof x;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/type-operator.B.ts",
    "content": "x instanceof String;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/type-operator.diffA-B.txt",
    "content": "(Statements\n{+(InstanceOf\n  {+(Identifier)+}\n  {+(Identifier)+})+}\n{-(Typeof\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/type-operator.diffB-A.txt",
    "content": "(Statements\n{+(Typeof\n  {+(Identifier)+})+}\n{-(InstanceOf\n  {-(Identifier)-}\n  {-(Identifier)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/type-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (UnaryExpression \n          (Token) \n          (Expression \n            (Identifier \"x\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/type-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (BinaryExpression \n          (Token) \n          (Expression \n            (Identifier \"x\")) \n          (Expression \n            (Identifier \"String\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/typeof-types.A.ts",
    "content": "let foo: Z;\nlet bar: typeof Foo;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/typeof-types.B.ts",
    "content": "let foo: typeof Bar;\nlet bar: G;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/typeof-types.diffA-B.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Annotation\n      { (TypeIdentifier)\n      ->(TypeQuery\n        {+(Identifier)+}) })\n      (Identifier)\n      (Empty)))\n  (VariableDeclaration\n    (Assignment\n      (Annotation\n      { (TypeQuery\n        {-(Identifier)-})\n      ->(TypeIdentifier) })\n      (Identifier)\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/typeof-types.diffB-A.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Annotation\n      { (TypeQuery\n        {-(Identifier)-})\n      ->(TypeIdentifier) })\n      (Identifier)\n      (Empty)))\n  (VariableDeclaration\n    (Assignment\n      (Annotation\n      { (TypeIdentifier)\n      ->(TypeQuery\n        {+(Identifier)+}) })\n      (Identifier)\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/typeof-types.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (LexicalDeclaration \n        (VariableDeclarator \n          (Identifier \"foo\") \n          (TypeAnnotation \n            (TypeIdentifier \"Z\")))))) \n  (Statement \n    (Declaration \n      (LexicalDeclaration \n        (VariableDeclarator \n          (Identifier \"bar\") \n          (TypeAnnotation \n            (TypeQuery \n              (Identifier \"Foo\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/typeof-types.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (LexicalDeclaration \n        (VariableDeclarator \n          (Identifier \"foo\") \n          (TypeAnnotation \n            (TypeQuery \n              (Identifier \"Bar\"))))))) \n  (Statement \n    (Declaration \n      (LexicalDeclaration \n        (VariableDeclarator \n          (Identifier \"bar\") \n          (TypeAnnotation \n            (TypeIdentifier \"G\")))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/undefined.A.ts",
    "content": "undefined;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/undefined.B.ts",
    "content": "return undefined;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/undefined.diffA-B.txt",
    "content": "(Statements\n{+(Return\n  {+(Undefined)+})+}\n{-(Undefined)-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/undefined.diffB-A.txt",
    "content": "(Statements\n{+(Undefined)+}\n{-(Return\n  {-(Undefined)-})-})\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/undefined.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Undefined \"undefined\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/undefined.parseB.txt",
    "content": "(Program \n  (Statement \n    (ReturnStatement \n      (Expression \n        (Undefined \"undefined\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/union-type.A.ts",
    "content": "let x: A & B;"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/union-type.B.ts",
    "content": "let x: typeof A;"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/union-type.diffA-B.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Annotation\n      { (Intersection\n        {-(TypeIdentifier)-}\n        {-(TypeIdentifier)-})\n      ->(TypeQuery\n        {+(Identifier)+}) })\n      (Identifier)\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/union-type.diffB-A.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Annotation\n      { (TypeQuery\n        {-(Identifier)-})\n      ->(Intersection\n        {+(TypeIdentifier)+}\n        {+(TypeIdentifier)+}) })\n      (Identifier)\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/union-type.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (LexicalDeclaration \n        (VariableDeclarator \n          (Identifier \"x\") \n          (TypeAnnotation \n            (IntersectionType \n              (TypeIdentifier \"A\") \n              (TypeIdentifier \"B\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/union-type.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (LexicalDeclaration \n        (VariableDeclarator \n          (Identifier \"x\") \n          (TypeAnnotation \n            (TypeQuery \n              (Identifier \"A\"))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/var-declaration.A.ts",
    "content": "var x = 1;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/var-declaration.B.ts",
    "content": "var x, y = {}, z;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/var-declaration.diffA-B.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Empty)\n      (Identifier)\n    { (Float)\n    ->(Empty) })\n  {+(Assignment\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(Hash)+})+}\n  {+(Assignment\n    {+(Empty)+}\n    {+(Identifier)+}\n    {+(Empty)+})+}))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/var-declaration.diffB-A.txt",
    "content": "(Statements\n  (VariableDeclaration\n    (Assignment\n      (Empty)\n      (Identifier)\n    { (Empty)\n    ->(Float) })\n  {-(Assignment\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(Hash)-})-}\n  {-(Assignment\n    {-(Empty)-}\n    {-(Identifier)-}\n    {-(Empty)-})-}))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/var-declaration.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (VariableDeclaration \n        (VariableDeclarator \n          (Expression \n            (Number \"1\")) \n          (Identifier \"x\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/var-declaration.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (VariableDeclaration \n        (VariableDeclarator \n          (Identifier \"x\")) \n        (VariableDeclarator \n          (Expression \n            (Object)) \n          (Identifier \"y\")) \n        (VariableDeclarator \n          (Identifier \"z\"))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/variable.A.ts",
    "content": "theVar;\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/variable.B.ts",
    "content": "theVar2\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/variable.diffA-B.txt",
    "content": "(Statements\n{ (Identifier)\n->(Identifier) })\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/variable.diffB-A.txt",
    "content": "(Statements\n{ (Identifier)\n->(Identifier) })\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/variable.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Identifier \"theVar\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/variable.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (Identifier \"theVar2\")))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/void-operator.A.ts",
    "content": "void b()\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/void-operator.B.ts",
    "content": "void c()\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/void-operator.diffA-B.txt",
    "content": "(Statements\n  (Void\n    (Call\n    { (Identifier)\n    ->(Identifier) }\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/void-operator.diffB-A.txt",
    "content": "(Statements\n  (Void\n    (Call\n    { (Identifier)\n    ->(Identifier) }\n      (Empty))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/void-operator.parseA.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (UnaryExpression \n          (Token) \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"b\")) \n              (Arguments))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/void-operator.parseB.txt",
    "content": "(Program \n  (Statement \n    (ExpressionStatement \n      (Expression \n        (UnaryExpression \n          (Token) \n          (Expression \n            (CallExpression \n              (Expression \n                (Identifier \"c\")) \n              (Arguments))))))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/while-statement.A.ts",
    "content": "while (a) { b(); };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/while-statement.B.ts",
    "content": "while (b) { a(); };\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/while-statement.diffA-B.txt",
    "content": "(Statements\n  (While\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Call\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/while-statement.diffB-A.txt",
    "content": "(Statements\n  (While\n  { (Identifier)\n  ->(Identifier) }\n    (Statements\n      (Call\n      { (Identifier)\n      ->(Identifier) }\n        (Empty))))\n  (Empty))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/while-statement.parseA.txt",
    "content": "(Program \n  (Statement \n    (WhileStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"b\")) \n                  (Arguments))))))) \n      (ParenthesizedExpression \n        (Expression \n          (Identifier \"a\"))))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/while-statement.parseB.txt",
    "content": "(Program \n  (Statement \n    (WhileStatement \n      (Statement \n        (StatementBlock \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (CallExpression \n                  (Expression \n                    (Identifier \"a\")) \n                  (Arguments))))))) \n      (ParenthesizedExpression \n        (Expression \n          (Identifier \"b\"))))) \n  (Statement \n    (EmptyStatement \";\")))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/yield.A.ts",
    "content": "function* foo(){ var index = 0; yield i; }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/yield.B.ts",
    "content": "function* foo(){ var index = 0; yield i++; }\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/yield.diffA-B.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Identifier)\n    (StatementBlock\n      (VariableDeclaration\n        (Assignment\n          (Empty)\n          (Identifier)\n          (Float)))\n      (Yield\n      { (Identifier)\n      ->(Update\n        {+(Identifier)+}) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/yield.diffB-A.txt",
    "content": "(Statements\n  (Function\n    (Empty)\n    (Empty)\n    (Identifier)\n    (StatementBlock\n      (VariableDeclaration\n        (Assignment\n          (Empty)\n          (Identifier)\n          (Float)))\n      (Yield\n      { (Update\n        {-(Identifier)-})\n      ->(Identifier) }))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/yield.parseA.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (GeneratorFunctionDeclaration \n        (StatementBlock \n          (Statement \n            (Declaration \n              (VariableDeclaration \n                (VariableDeclarator \n                  (Expression \n                    (Number \"0\")) \n                  (Identifier \"index\"))))) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (YieldExpression \n                  (Expression \n                    (Identifier \"i\"))))))) \n        (Identifier \"foo\") \n        (FormalParameters)))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/corpus/yield.parseB.txt",
    "content": "(Program \n  (Statement \n    (Declaration \n      (GeneratorFunctionDeclaration \n        (StatementBlock \n          (Statement \n            (Declaration \n              (VariableDeclaration \n                (VariableDeclarator \n                  (Expression \n                    (Number \"0\")) \n                  (Identifier \"index\"))))) \n          (Statement \n            (ExpressionStatement \n              (Expression \n                (YieldExpression \n                  (Expression \n                    (UpdateExpression \n                      (Token) \n                      (Expression \n                        (Identifier \"i\"))))))))) \n        (Identifier \"foo\") \n        (FormalParameters)))))\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/import-graph/app.json",
    "content": "{\n  \"modules\": {\n    \"app\": {\n      \"imports\": [\n        {\n          \"span\": {\n            \"start\": [\n              1,\n              1\n            ],\n            \"end\": [\n              1,\n              33\n            ]\n          },\n          \"path\": \"foo\",\n          \"symbols\": [\n            {\n              \"alias\": \"defaultMember\",\n              \"name\": \"defaultMember\"\n            }\n          ],\n          \"alias\": \"\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              2,\n              1\n            ],\n            \"end\": [\n              2,\n              34\n            ]\n          },\n          \"path\": \"aardvark\",\n          \"symbols\": [],\n          \"alias\": \"name\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              3,\n              1\n            ],\n            \"end\": [\n              3,\n              30\n            ]\n          },\n          \"path\": \"ant\",\n          \"symbols\": [\n            {\n              \"alias\": \"member\",\n              \"name\": \"member\"\n            }\n          ],\n          \"alias\": \"\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              4,\n              1\n            ],\n            \"end\": [\n              4,\n              46\n            ]\n          },\n          \"path\": \"antelope\",\n          \"symbols\": [\n            {\n              \"alias\": \"member1\",\n              \"name\": \"member1\"\n            },\n            {\n              \"alias\": \"member2\",\n              \"name\": \"member2\"\n            }\n          ],\n          \"alias\": \"\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              5,\n              1\n            ],\n            \"end\": [\n              5,\n              57\n            ]\n          },\n          \"path\": \"ant-eater\",\n          \"symbols\": [\n            {\n              \"alias\": \"member1\",\n              \"name\": \"member1\"\n            },\n            {\n              \"alias\": \"alias2\",\n              \"name\": \"member2\"\n            }\n          ],\n          \"alias\": \"\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              6,\n              1\n            ],\n            \"end\": [\n              6,\n              70\n            ]\n          },\n          \"path\": \"anaconda\",\n          \"symbols\": [\n            {\n              \"alias\": \"defaultMember\",\n              \"name\": \"defaultMember\"\n            }\n          ],\n          \"alias\": \"\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              6,\n              1\n            ],\n            \"end\": [\n              6,\n              70\n            ]\n          },\n          \"path\": \"anaconda\",\n          \"symbols\": [\n            {\n              \"alias\": \"member1\",\n              \"name\": \"member1\"\n            },\n            {\n              \"alias\": \"alias2\",\n              \"name\": \"member2\"\n            }\n          ],\n          \"alias\": \"\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              7,\n              1\n            ],\n            \"end\": [\n              7,\n              50\n            ]\n          },\n          \"path\": \"alligator\",\n          \"symbols\": [\n            {\n              \"alias\": \"defaultMember\",\n              \"name\": \"defaultMember\"\n            }\n          ],\n          \"alias\": \"\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              7,\n              1\n            ],\n            \"end\": [\n              7,\n              50\n            ]\n          },\n          \"path\": \"alligator\",\n          \"symbols\": [],\n          \"alias\": \"name\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              8,\n              1\n            ],\n            \"end\": [\n              8,\n              22\n            ]\n          },\n          \"path\": \"arctic-tern\",\n          \"symbols\": [],\n          \"alias\": \"\"\n        },\n        {\n          \"span\": {\n            \"start\": [\n              9,\n              1\n            ],\n            \"end\": [\n              9,\n              32\n            ]\n          },\n          \"path\": \"../zip\",\n          \"symbols\": [],\n          \"alias\": \"zip\"\n        }\n      ],\n      \"name\": \"app\",\n      \"language\": \"TypeScript\",\n      \"declarations\": [\n        {\n          \"span\": {\n            \"start\": [\n              11,\n              1\n            ],\n            \"end\": [\n              11,\n              52\n            ]\n          },\n          \"kind\": \"Function\",\n          \"name\": \"someFunction\",\n          \"module\": \"app\"\n        }\n      ],\n      \"paths\": [\n        \"test/fixtures/typescript/import-graph/app.ts\"\n      ],\n      \"calls\": [\n        {\n          \"span\": {\n            \"start\": [\n              13,\n              1\n            ],\n            \"end\": [\n              13,\n              27\n            ]\n          },\n          \"symbol\": \"someFunction\",\n          \"targets\": []\n        },\n        {\n          \"span\": {\n            \"start\": [\n              16,\n              1\n            ],\n            \"end\": [\n              16,\n              16\n            ]\n          },\n          \"symbol\": \"defaultMember\",\n          \"targets\": []\n        },\n        {\n          \"span\": {\n            \"start\": [\n              17,\n              1\n            ],\n            \"end\": [\n              17,\n              11\n            ]\n          },\n          \"symbol\": \"foo\",\n          \"targets\": [\n            \"name\"\n          ]\n        }\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/import-graph/app.ts",
    "content": "import defaultMember from \"foo\";\nimport * as name from \"aardvark\";\nimport { member } from \"ant\";\nimport { member1 , member2 } from \"antelope\";\nimport { member1 , member2 as alias2 } from \"ant-eater\";\nimport defaultMember, { member1, member2 as alias2 } from \"anaconda\";\nimport defaultMember, * as name from \"alligator\";\nimport \"arctic-tern\";\nimport zip = require(\"../zip\");\n\nfunction someFunction(arg1, arg2): string { arg2; };\n\nsomeFunction(arg1, \"arg2\");\n\n\ndefaultMember()\nname.foo()\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/tags/class.ts",
    "content": "class FooBar {}\n"
  },
  {
    "path": "semantic/test/fixtures/typescript/tags/module.ts",
    "content": "module APromise { }\n"
  },
  {
    "path": "semantic-analysis/.ghci.repl",
    "content": "-- GHCI settings, collected by running cabal repl -v and checking out the flags cabal passes to ghc.\n-- These live here instead of script/repl for ease of commenting.\n-- These live here instead of .ghci so cabal repl remains unaffected.\n-- These live here instead of script/ghci-flags so ghcide remains unaffected.\n\n-- Basic verbosity\n:set -v1\n\n-- Compile to object code, write interface files.\n:set -fwrite-interface -fobject-code\n\n-- Disable breaking on error since it hangs on uncaught exceptions when the sandbox is disabled: https://gitlab.haskell.org/ghc/ghc/issues/17743\n-- This was already disabled in .ghci, but it turns out that if your user-wide .ghci file sets -fbreak-on-error, it gets overriden, so we override it back again here.\n:set -fno-break-on-error\n\n-- Bonus: silence “add these modules to your .cabal file” warnings for files we :load\n:set -Wno-missing-home-modules\n\n-- Warnings for code written in the repl\n:seti -Weverything\n:seti -Wno-all-missed-specialisations\n:seti -Wno-implicit-prelude\n:seti -Wno-missed-specialisations\n:seti -Wno-missing-import-lists\n:seti -Wno-missing-local-signatures\n:seti -Wno-monomorphism-restriction\n:seti -Wno-name-shadowing\n:seti -Wno-safe\n:seti -Wno-unsafe\n-- 8.8+\n:seti -Wno-missing-deriving-strategies\n-- 8.10+\n:seti -Wno-missing-safe-haskell-mode\n:seti -Wno-prepositive-qualified-module\n-- 9.2+\n:seti -Wno-missing-kind-signatures\n:seti -Wno-missing-signatures\n\n-- We have this one on in the project but not in the REPL to reduce noise\n:seti -Wno-type-defaults\n:set -Wno-unused-packages\n\n:load Analysis.Analysis.Concrete Analysis.Analysis.Exception Analysis.Syntax Analysis.Analysis.Typecheck\n"
  },
  {
    "path": "semantic-analysis/.gitignore",
    "content": "*.json\n*.py\n"
  },
  {
    "path": "semantic-analysis/BUILD.bazel",
    "content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\n    \"@rules_haskell//haskell:defs.bzl\",\n    \"haskell_binary\",\n    \"haskell_library\",\n)\nload(\n    \"@rules_haskell//haskell:cabal.bzl\",\n    \"haskell_cabal_binary\",\n    \"haskell_cabal_library\",\n)\nload(\n    \"//:build/common.bzl\",\n    \"GHC_FLAGS\",\n)\n\nhaskell_library(\n    name = \"semantic-analysis\",\n    srcs = glob([\"src/**/*.hs\"]),\n    compiler_flags = GHC_FLAGS,\n    deps = [\n        \"//:base\",\n        \"//:bytestring\",\n        \"//:containers\",\n        \"//:filepath\",\n        \"//:text\",\n        \"//:transformers\",\n        \"//semantic-source\",\n        \"@stackage//:aeson\",\n        \"@stackage//:fused-effects\",\n        \"@stackage//:hashable\",\n        \"@stackage//:pathtype\",\n        \"@stackage//:vector\",\n    ],\n)\n"
  },
  {
    "path": "semantic-analysis/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 GitHub\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "semantic-analysis/README.md",
    "content": "# semantic-analysis\n\nPolyglot program analysis by means of abstract definitional interpretation.\n\n\n## Goals\n\nThe goal of this package is to provide\n\n1. general facilities for performing program analysis of programs via abstract (definitional) interpretation of an intermediate language,\n\n2. conveniences to aid in translating programs in arbitrary surface languages into said intermediate language,\n\n3. facilities for tailoring and tuning program analyses to vary performance, precision, and sensitivities, and\n\n4. a small variety of specific program analyses to serve both as examples and as useful tools in their own right.\n\n\n## Non-goals\n\nOn the other hand, this package will not provide\n\n1. support for specific surface languages, or\n\n2. facilities for dealing with the meta-structure of programs, i.e. where to find modules, how projects and their files are configured, etc.\n\n\n## Development\n\nThis project consists of a Haskell package named `semantic-analysis`. The library’s sources are in [`src`][].\n\nDevelopment of `semantic-analysis` is typically done using `cabal v2-build`:\n\n```shell\ncabal v2-build # build the library\ncabal v2-repl  # load the package into ghci\ncabal v2-test  # build and run the doctests\n```\n\n[`src`]: https://github.com/github/semantic/tree/master/semantic-analysis/src\n"
  },
  {
    "path": "semantic-analysis/Setup.hs",
    "content": "import Distribution.Simple\nmain = defaultMain\n"
  },
  {
    "path": "semantic-analysis/cabal.project",
    "content": "-- NB: This file exists solely for development of this single package. For cross-package development, cd to the root of the project and run `script/repl` from there.\n\n-- Local packages\npackages: .\n          ../semantic-source\n"
  },
  {
    "path": "semantic-analysis/hie.yaml",
    "content": "cradle:\n  cabal:\n    - path: \".\"\n      component: \"lib:semantic-analysis\"\n"
  },
  {
    "path": "semantic-analysis/python.tsg",
    "content": "; tree-sitter-graph definitions mapping Python ASTs to an analyzable IR.\n\n(module) @this\n{\n  node @this.node\n  attr (@this.node) type = \"module\"\n  attr (@this.node) start-line = (start-row    @this)\n  attr (@this.node) start-col  = (start-column @this)\n  attr (@this.node) end-line   = (end-row      @this)\n  attr (@this.node) end-col    = (end-column   @this)\n}\n\n(identifier) @this\n{\n  node @this.node\n  attr (@this.node) type = \"identifier\"\n  var @this.text = (source-text @this)\n  attr (@this.node) text = (source-text @this)\n}\n\n(import_statement) @this\n{\n  node @this.node\n  attr (@this.node) type = \"import\"\n}\n\n(import_statement name: (dotted_name (identifier) @id)) @this\n{\n  edge @this.node -> @id.node\n  attr (@id.node) role = \"module-name-fragment\"\n  attr (@this.node -> @id.node) index = (named-child-index @id)\n  attr (@this.node -> @id.node) text = @id.text\n}\n\n(string) @this\n{\n  node @this.node\n  attr (@this.node) type = \"string\"\n  attr (@this.node) text = (source-text @this)\n}\n\n(true) @this\n{\n  node @this.node\n  attr (@this.node) type = \"true\"\n}\n\n(false) @this\n{\n  node @this.node\n  attr (@this.node) type = \"false\"\n}\n\n(print_statement argument: (_) @arg) @this\n{\n  node @this.node\n  attr (@this.node) type = \"print\"\n  edge @this.node -> @arg.node\n  attr (@this.node) start-line = (start-row    @this)\n  attr (@this.node) start-col  = (start-column @this)\n  attr (@this.node) end-line   = (end-row      @this)\n  attr (@this.node) end-col    = (end-column   @this)\n}\n\n(raise_statement (_) @arg) @this\n{\n  node @this.node\n  attr (@this.node) type = \"throw\"\n  edge @this.node -> @arg.node\n  attr (@this.node) start-line = (start-row    @this)\n  attr (@this.node) start-col  = (start-column @this)\n  attr (@this.node) end-line   = (end-row      @this)\n  attr (@this.node) end-col    = (end-column   @this)\n}\n\n(call function: (_) @function arguments: (argument_list (_)* @args)) @this\n{\n  node @this.node\n  attr (@this.node) function = (source-text @function)\n  attr (@this.node) type = \"call\"\n  for arg in @args {\n    edge @this.node -> arg.node\n  }\n  attr (@this.node) start-line = (start-row    @this)\n  attr (@this.node) start-col  = (start-column @this)\n  attr (@this.node) end-line   = (end-row      @this)\n  attr (@this.node) end-col    = (end-column   @this)\n}\n\n(expression_statement (_) @child) @this\n{\n  let @this.node = @child.node\n}\n\n(pass_statement) @this\n{\n  node @this.node\n  attr (@this.node) type = \"noop\"\n}\n\n(block (_)* @children) @this\n{\n  node @this.node\n  attr (@this.node) type = \"block\"\n  for child in @children {\n    edge @this.node -> child.node\n    attr (@this.node -> child.node) index = (named-child-index child)\n  }\n  attr (@this.node) start-line = (start-row    @this)\n  attr (@this.node) start-col  = (start-column @this)\n  attr (@this.node) end-line   = (end-row      @this)\n  attr (@this.node) end-col    = (end-column   @this)\n}\n\n(else_clause body: (_) @body) @this\n{\n  let @this.node = @body.node\n}\n\n(if_statement (_)) @this {\n  node @this.node\n  attr (@this.node) type = \"if\"\n  attr (@this.node) start-line = (start-row    @this)\n  attr (@this.node) start-col  = (start-column @this)\n  attr (@this.node) end-line   = (end-row      @this)\n  attr (@this.node) end-col    = (end-column   @this)\n}\n\n(if_statement condition: (_) @cond consequence: (_) @then) @this {\n  edge @this.node -> @cond.node\n  attr (@this.node -> @cond.node) type = \"condition\"\n  edge @this.node -> @then.node\n  attr (@this.node -> @then.node) type = \"consequence\"\n}\n\n(if_statement alternative: (_) @else) @this\n{\n  edge @this.node -> @else.node\n  attr (@this.node -> @else.node) type = \"alternative\"\n}\n\n(function_definition name: (_) @name body: (_) @body) @this\n{\n  node @this.node\n  attr (@this.node) type = \"function\"\n  attr (@this.node) name = (source-text @name)\n  edge @this.node -> @body.node\n  attr (@this.node -> @body.node) type = \"body\"\n  attr (@this.node) start-line = (start-row    @this)\n  attr (@this.node) start-col  = (start-column @this)\n  attr (@this.node) end-line   = (end-row      @this)\n  attr (@this.node) end-col    = (end-column   @this)\n}\n\n(module (_) @child) @this\n{\n  edge @this.node -> @child.node\n  attr (@this.node -> @child.node) index = (named-child-index @child)\n}\n"
  },
  {
    "path": "semantic-analysis/script/ghci-flags",
    "content": "#!/bin/bash\n# Computes the flags for ghcide to pass to ghci. You probably won’t be running this yourself, but rather ghcide will via configuration in hie.yaml.\n\nset -e\n\ncd \"$(dirname \"$0\")/..\"\n\nghc_version=\"$(ghc --numeric-version)\"\n\n# recent hie-bios requires us to output to the file at $HIE_BIOS_OUTPUT, but older builds & script/repl don’t set that var, so we default it to stdout\noutput_file=\"${HIE_BIOS_OUTPUT:-/dev/stdout}\"\n\nbuild_dir=\"dist-newstyle/build/x86_64-osx/ghc-$ghc_version\"\nbuild_products_dir=\"$build_dir/build-repl\"\n\ncores=$(sysctl -n machdep.cpu.core_count || echo 4)\n\nfunction flags {\n  # disable optimizations for faster loading\n  echo \"-O0\"\n  # don’t load .ghci files (for ghcide)\n  echo \"-ignore-dot-ghci\"\n\n  # use as many jobs as there are physical cores\n  echo \"-j$((cores + 1))\"\n\n  # where to put build products\n  echo \"-outputdir $build_products_dir\"\n  echo \"-odir $build_products_dir\"\n  echo \"-hidir $build_products_dir\"\n  echo \"-stubdir $build_products_dir\"\n\n  # preprocessor options, for -XCPP\n  echo \"-optP-include\"\n  echo \"-optP$build_dir/semantic-analysis-0.0.0.0/build/autogen/cabal_macros.h\"\n\n  # autogenerated sources, both .hs and .h (e.g. Foo_paths.hs)\n  echo \"-i$build_dir/semantic-analysis-0.0.0.0/build/autogen\"\n  echo \"-I$build_dir/semantic-analysis-0.0.0.0/build/autogen\"\n\n  # .hs source dirs\n  echo \"-isrc\"\n\n  # disable automatic selection of packages\n  echo \"-hide-all-packages\"\n\n  # run cabal and emit package flags from the environment file, removing comments & prefixing with -\n  cabal v2-exec -v0 bash -- -c 'cat \"$GHC_ENVIRONMENT\"' | grep -v '^--' | sed -e 's/^/-/'\n\n  # default language extensions\n  echo \"-XHaskell2010\"\n\n  # treat warnings as warnings\n  echo \"-Wwarn\"\n\n  # default warning flags\n  echo \"-Weverything\"\n  echo \"-Wno-all-missed-specialisations\"\n  echo \"-Wno-implicit-prelude\"\n  echo \"-Wno-missed-specialisations\"\n  echo \"-Wno-missing-import-lists\"\n  echo \"-Wno-missing-local-signatures\"\n  echo \"-Wno-monomorphism-restriction\"\n  echo \"-Wno-name-shadowing\"\n  echo \"-Wno-safe\"\n  echo \"-Wno-unsafe\"\n  [[ \"$ghc_version\" = 9.4.* ]] || [[ \"$ghc_version\" = 8.8.* ]] || [[ \"$ghc_version\" = 8.10.* ]] || [[ \"$ghc_version\" = 9.2.* ]] && echo \"-Wno-missing-deriving-strategies\" || true\n  [[ \"$ghc_version\" = 9.4.* ]] || [[ \"$ghc_version\" = 8.10.* ]] || [[ \"$ghc_version\" = 9.2.* ]] && echo \"-Wno-missing-safe-haskell-mode\" && echo \"-Wno-prepositive-qualified-module\" && echo \"-Wno-unused-packages\" || true\n  [[ \"$ghc_version\" = 9.4.* ]] || [[ \"$ghc_version\" = 9.2.* ]] && echo \"-Wno-missing-kind-signatures\" || true\n}\n\nflags > \"$output_file\"\n"
  },
  {
    "path": "semantic-analysis/script/repl",
    "content": "#!/bin/bash\n# Usage: script/repl [ARGS...]\n# Run a repl session capable of loading all of the components. Any passed arguments, e.g. module names or flags, will be passed to ghci.\n\nset -e\n\ncd \"$(dirname \"$0\")/..\"\n\n# cabal v2-build all --only-dependencies\n\ncores=$(sysctl -n machdep.cpu.core_count || echo 4)\ncabal v2-exec env -- -u GHC_ENVIRONMENT ghci +RTS -N$((cores + 1)) -RTS -ghci-script=.ghci.repl $(script/ghci-flags) -no-ignore-dot-ghci $@\n"
  },
  {
    "path": "semantic-analysis/semantic-analysis.cabal",
    "content": "cabal-version:       2.4\n\nname:                semantic-analysis\nversion:             0.0.0.0\nsynopsis:            Program analysis by abstract definitional interpretation.\ndescription:         Program analysis abstractions and implementations by abstract definitional interpretation.\nhomepage:            https://github.com/github/semantic/tree/master/semantic-analysis#readme\nbug-reports:         https://github.com/github/semantic/issues\nlicense:             MIT\nlicense-file:        LICENSE\nauthor:              The Semantic authors\nmaintainer:          opensource+semantic@github.com\ncopyright:           (c) 2019 GitHub, Inc.\ncategory:            Language\nbuild-type:          Simple\nstability:           alpha\nextra-source-files:  README.md\n\ntested-with:\n  GHC == 8.6.5\n\ncommon common\n  default-language: Haskell2010\n  ghc-options:\n    -Weverything\n    -Wno-missing-local-signatures\n    -Wno-missing-import-lists\n    -Wno-implicit-prelude\n    -Wno-safe\n    -Wno-unsafe\n    -Wno-name-shadowing\n    -Wno-monomorphism-restriction\n    -Wno-missed-specialisations\n    -Wno-all-missed-specialisations\n    -Wno-star-is-type\n  if (impl(ghc >= 8.8))\n    ghc-options: -Wno-missing-deriving-strategies\n  if (impl(ghc >= 8.10))\n    ghc-options:\n      -Wno-missing-safe-haskell-mode\n      -Wno-prepositive-qualified-module\n  if (impl(ghc >= 9.2))\n    ghc-options:\n      -Wno-missing-kind-signatures\n\nlibrary\n  import: common\n  hs-source-dirs: src\n  exposed-modules:\n    Analysis.Analysis.Concrete\n    Analysis.Analysis.DeadCode\n    Analysis.Analysis.Exception\n    Analysis.Analysis.Typecheck\n    Analysis.Blob\n    Analysis.Carrier.Fail.WithLoc\n    Analysis.Carrier.Statement.State\n    Analysis.Carrier.Store.Monovariant\n    Analysis.Carrier.Store.Precise\n    Analysis.Data.Snoc\n    Analysis.Effect.Domain\n    Analysis.Effect.Env\n    Analysis.Effect.Statement\n    Analysis.Effect.Store\n    Analysis.File\n    Analysis.FlowInsensitive\n    Analysis.Functor.Named\n    Analysis.Module\n    Analysis.Name\n    Analysis.Project\n    Analysis.Reference\n    Analysis.Syntax\n    Analysis.Syntax.Python\n    Analysis.VM\n  build-depends:\n    , aeson                        >= 1.4 && < 3\n    , base                         >= 4.13 && < 5\n    , containers                  ^>= 0.6\n    , filepath\n    , fused-effects               ^>= 1.1\n    , hashable\n    , language-python\n    , semantic-source             ^>= 0.2\n    , text                        ^>= 1.2.3.1\n    , transformers                ^>= 0.5\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Analysis/Concrete.hs",
    "content": "{-# LANGUAGE DeriveTraversable #-}\n{-# LANGUAGE DerivingVia #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE LambdaCase #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE QuantifiedConstraints #-}\n{-# LANGUAGE RankNTypes #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\nmodule Analysis.Analysis.Concrete\n( Concrete(..)\n, concrete\n) where\n\nimport           Analysis.Carrier.Fail.WithLoc\nimport qualified Analysis.Carrier.Store.Precise as A\nimport           Analysis.Data.Snoc\nimport           Analysis.Effect.Domain as A\nimport           Analysis.File\nimport           Analysis.Functor.Named\nimport           Analysis.Reference\nimport           Control.Algebra\nimport           Control.Carrier.Fresh.Strict\nimport           Control.Carrier.Reader hiding (Local)\nimport           Control.Effect.Labelled\nimport           Control.Monad.Trans.Class (MonadTrans (..))\nimport           Data.Foldable (foldl')\nimport           Data.Function (fix, on)\nimport           Data.Semigroup (Last (..))\nimport           Data.Text as Text (Text)\nimport           Prelude hiding (fail)\n\ndata Concrete\n  = Closure Reference [Name] ([Concrete] -> Concrete)\n  | Unit\n  | Bool Bool\n  | Int Int\n  | String Text\n  -- | A neutral value, consisting of a variable at the head, followed by a “spine” of eliminations.\n  --\n  -- This constructor is key to hereditary substitution, whereby a value in 'Concrete' is a normal form by virtue of either being a value (i.e. one of the other constructors) or 'Neutral', somewhere inside a 'Closure'. In the latter case, when the surrounding closure is eliminated, if it substitutes out the variable at the head, the eliminations are applied, immediately reducing it. Since eliminations can’t be applied to any of the other constructors, there’s no way to represent redexes, so we’re left with a new term which is itself either already a value, or else is a neutral term underneath a closure.\n  --\n  -- This is essential for parametric modular analysis, as it allows us to obtain the same benefits not just for variables inside closures, but also variables which aren’t known from the surrounding (local) context (e.g. as-yet-unresolved imports). That in turn allows analysis to be performed 1. before we’ve computed an import graph, which is particularly difficult in some languages, 2. completely in parallel, and 3. incrementally.\n  | Neutral Name (Snoc (Elim Concrete))\n  -- NB: We derive the 'Semigroup' instance for 'Concrete' to take the second argument. This is equivalent to stating that the return value of an imperative sequence of statements is the value of its final statement.\n  deriving Semigroup via Last Concrete\n\ninstance Eq Concrete where\n  (==) = (==) `on` quote\n\ninstance Ord Concrete where\n  compare = compare `on` quote\n\ninstance Show Concrete where\n  showsPrec p = showsPrec p . quote\n\n\nnewtype Elim a = EApp [a]\n  deriving (Eq, Foldable, Functor, Ord, Show, Traversable)\n\nvvar :: Name -> Concrete\nvvar n = Neutral n Nil\n\nvelim :: Concrete -> Elim Concrete -> Concrete\nvelim (Closure _ _ f) (EApp a) = f a\nvelim (Neutral h as)  a        = Neutral h (as :> a)\nvelim _               _        = error \"velim: cannot eliminate\" -- FIXME: fail in the monad instead\n\n-- FIXME: so why use HOAS at all then?\n-- FIXME: construct in de Bruijn-indexed rep & simple eval instead of substituting.\nvsubst :: Name -> Concrete -> Concrete -> Concrete\nvsubst n v = go\n  where\n  go = \\case\n    Neutral n' as\n      | n == n'   -> foldl' velim v as'\n      | otherwise -> Neutral n'     as'\n      where\n      as' = fmap go <$> as\n    Closure r n b -> Closure r n (go . b) -- NB: Shadowing can’t happen because n' can’t occur inside b\n    Unit          -> Unit\n    Bool b        -> Bool b\n    Int i         -> Int i\n    String s      -> String s\n\n\ndata FO\n  = FOVar Name\n  | FOClosure Reference [Name] FO\n  | FOUnit\n  | FOBool Bool\n  | FOInt Int\n  | FOString Text\n  | FOApp FO [FO]\n  deriving (Eq, Ord, Show)\n\n\nquote :: Concrete -> FO\nquote = \\case\n-- FIXME: should quote take a Level incremented under binders?\n  Closure r n body -> FOClosure r n (quote (body (map vvar n)))\n  Unit             -> FOUnit\n  Bool b           -> FOBool b\n  Int i            -> FOInt i\n  String s         -> FOString s\n  Neutral n sp     -> foldl' (\\ f (EApp a) -> FOApp f (map quote a)) (FOVar n) sp\n\n\ntype Eval term m value = (term -> m value) -> (term -> m value)\n\n\nconcrete\n  :: (forall sig m\n     .  (Has (A.Dom Concrete :+: A.Env A.PAddr :+: Reader Reference) sig m, HasLabelled A.Store (A.Store A.PAddr Concrete) sig m, MonadFail m)\n     => Eval term m Concrete\n     )\n  -> [File term]\n  -> (A.PStore Concrete, [File (Either (Reference, String) Concrete)])\nconcrete eval\n  = run\n  . evalFresh 0\n  . A.runStore\n  . traverse (runFile eval)\n\nrunFile\n  :: HasLabelled A.Store (A.Store A.PAddr Concrete) sig m\n  => (forall sig m\n     .  (Has (A.Dom Concrete :+: A.Env A.PAddr :+: Reader Reference) sig m, HasLabelled A.Store (A.Store A.PAddr Concrete) sig m, MonadFail m)\n     => Eval term m Concrete\n     )\n  -> File term\n  -> m (File (Either (Reference, String) Concrete))\nrunFile eval file = traverse run file\n  where run = runReader (fileRef file)\n            . runFail\n            . A.runEnv\n            . runDomain\n            . fix eval\n\n\nnewtype DomainC m a = DomainC { runDomain :: m a }\n  deriving (Applicative, Functor, Monad, MonadFail)\n\ninstance MonadTrans DomainC where\n  lift = DomainC\n\ninstance ( Has (A.Env A.PAddr) sig m\n         , HasLabelled A.Store (A.Store A.PAddr Concrete) sig m\n         , Has (Reader Reference) sig m\n         , MonadFail m\n         )\n      => Algebra (A.Dom Concrete :+: sig) (DomainC m) where\n  alg hdl sig ctx = case sig of\n    L (DVar n)    -> pure (vvar n <$ ctx)\n    L (DAbs n b)  -> do\n      b' <- hdl (b (map vvar n) <$ ctx)\n      ref <- ask\n      let closure body = Closure ref n (\\ args -> let substs = zipWith vsubst n args in foldl' (.) id substs body)\n      pure $ closure <$> b'\n    L (DApp f a)  -> pure $ velim f (EApp a) <$ ctx\n    L (DInt i)    -> pure (Int i <$ ctx)\n    L DUnit       -> pure (Unit <$ ctx)\n    L (DBool b)   -> pure (Bool b <$ ctx)\n    L (DIf c t e) -> case c of\n      Bool b\n        | b         -> hdl (t <$ ctx)\n        | otherwise -> hdl (e <$ ctx)\n      _             -> fail \"expected Bool\"\n    L (DString s) -> pure (String s <$ ctx)\n    L (_ :>>> t)  -> pure (t <$ ctx)\n    L (DDie msg)  -> fail (show (quote msg))\n\n    R other       -> DomainC (alg (runDomain . hdl) other ctx)\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Analysis/DeadCode.hs",
    "content": "{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE RankNTypes #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\nmodule Analysis.Analysis.DeadCode\n( deadCodeFlowInsensitive\n) where\n\nimport           Analysis.Carrier.Fail.WithLoc\nimport qualified Analysis.Carrier.Statement.State as A\nimport qualified Analysis.Carrier.Store.Monovariant as A\nimport           Analysis.Effect.Domain as A\nimport           Analysis.File\nimport           Analysis.FlowInsensitive\nimport           Analysis.Reference\nimport           Control.Applicative (Alternative (..))\nimport           Control.Carrier.Fresh.Church\nimport           Control.Carrier.Reader\nimport           Control.Carrier.State.Church\nimport           Control.Effect.Labelled\nimport           Control.Monad (zipWithM_)\nimport           Control.Monad.Trans.Class\nimport           Data.Function (fix)\nimport qualified Data.Set as Set\n\ndeadCodeFlowInsensitive\n  :: Ord term\n  => (forall sig m\n     .  (Has (A.Dom Unit) sig m, Has (A.Env A.MAddr) sig m, Has (Reader Reference) sig m, Has A.Statement sig m, HasLabelled A.Store (A.Store A.MAddr Unit) sig m, MonadFail m)\n     => (term -> m Unit)\n     -> (term -> m Unit)\n     )\n  -> (term -> Set.Set term)\n  -> [File term]\n  -> ( Set.Set term\n     , A.MStore Unit\n     , [File (Either (Reference, String) (Set.Set Unit))]\n     )\ndeadCodeFlowInsensitive eval subterms\n  = run\n  . runState (\\ dead (store, files) -> pure (dead, store, files)) Set.empty\n  . evalFresh 0\n  . A.runStoreState\n  . traverse (runFile eval subterms)\n\nrunFile\n  :: ( Has Fresh sig m\n     , Has (State (A.MStore Unit)) sig m\n     , Has (State (Set.Set term)) sig m\n     , Ord term\n     )\n  => (forall sig m\n     .  (Has (A.Dom Unit) sig m, Has (A.Env A.MAddr) sig m, Has (Reader Reference) sig m, Has A.Statement sig m, HasLabelled A.Store (A.Store A.MAddr Unit) sig m, MonadFail m)\n     => (term -> m Unit)\n     -> (term -> m Unit)\n     )\n  -> (term -> Set.Set term)\n  -> File term\n  -> m (File (Either (Reference, String) (Set.Set Unit)))\nrunFile eval subterms file = traverse run file\n  where run term = do\n          modify (<> subterms term)\n          A.runStatement (const pure)\n            . runReader (fileRef file)\n            . A.runEnv @Unit\n            . runFail\n            . convergeTerm (A.runStore @Unit . runDomain . fix (cacheTerm . evalDead))\n            $ term\n        evalDead eval' subterm = do\n          modify (Set.delete subterm)\n          eval eval' subterm\n\n\ndata Unit = Unit\n  deriving (Eq, Ord, Show)\n\n\nnewtype DomainC m a = DomainC { runDomain :: m a }\n  deriving (Alternative, Applicative, Functor, Monad, MonadFail)\n\ninstance MonadTrans DomainC where\n  lift = DomainC\n\n\ninstance ( Alternative m\n         , Has (A.Env A.MAddr) sig m\n         , Has Fresh sig m\n         , HasLabelled A.Store (A.Store A.MAddr Unit) sig m\n         , MonadFail m\n         )\n      => Algebra (A.Dom Unit :+: sig) (DomainC m) where\n  alg hdl sig ctx = case sig of\n    L (DVar _)  -> pure (Unit <$ ctx)\n\n    L (DInt _)  -> pure (Unit <$ ctx)\n\n    L DUnit     -> pure (Unit <$ ctx)\n\n    L (DBool _) -> pure (Unit <$ ctx)\n    L (DIf _ t e) -> hdl (t <$ ctx) <|> hdl (e <$ ctx)\n\n    L (DString _) -> pure (Unit <$ ctx)\n\n    L (DAbs n b) -> do\n      addrs <- traverse A.alloc n\n      let args = Unit <$ n\n      zipWithM_ (A..=) addrs args\n      hdl (b args <$ ctx)\n    L (DApp _ _) -> pure (Unit <$ ctx)\n\n    L (_ :>>> t) -> pure (t <$ ctx)\n\n    L (DDie msg) -> fail (show msg)\n\n    R other -> DomainC (alg (runDomain . hdl) other ctx)\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Analysis/Exception.hs",
    "content": "{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE RankNTypes #-}\n{-# LANGUAGE TupleSections #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\nmodule Analysis.Analysis.Exception\n( Exception(..)\n, ExcSet(..)\n, exceptionTracing\n, exceptionTracingIndependent\n, fromExceptions\n, var\n, exc\n, str\n, subst\n, nullExcSet\n, freeVariablesForLine\n, exceptionsForLine\n, printExcSet\n, refLines\n  -- * Exception tracing analysis\n, ExcC(..)\n) where\n\nimport qualified Analysis.Carrier.Statement.State as A\nimport qualified Analysis.Carrier.Store.Monovariant as A\nimport           Analysis.Effect.Domain\nimport           Analysis.Effect.Env (Env)\nimport           Analysis.Effect.Store\nimport           Analysis.File\nimport           Analysis.FlowInsensitive (cacheTerm, convergeTerm)\nimport           Analysis.Module\nimport           Analysis.Name\nimport           Analysis.Reference\nimport           Control.Algebra\nimport           Control.Applicative (Alternative (..))\nimport           Control.Carrier.Reader\nimport           Control.Effect.Labelled\nimport           Control.Effect.State\nimport           Control.Monad (unless)\nimport           Data.Foldable (for_)\nimport qualified Data.Foldable as Foldable\nimport           Data.Function (fix)\nimport qualified Data.IntSet as IntSet\nimport qualified Data.Map as Map\nimport qualified Data.Set as Set\nimport qualified Data.Text as Text\nimport qualified Data.Text.IO as Text\nimport qualified Source.Source as Source\nimport           Source.Span\n\n-- | Names of exceptions thrown in the guest language and recorded by this analysis.\n--\n-- Not to be confused with exceptions thrown in Haskell itself.\ndata Exception = Exception { exceptionName :: Name, exceptionLines :: IntSet.IntSet }\n  deriving (Eq, Ord, Show)\n\ndata FreeVariable = FreeVariable { freeVariableName :: Name, freeVariableLines :: IntSet.IntSet }\n  deriving (Eq, Ord, Show)\n\n-- | Sets whose elements are each a variable or an exception.\ndata ExcSet = ExcSet { freeVariables :: Set.Set FreeVariable, exceptions :: Set.Set Exception, strings :: Set.Set Text.Text }\n  deriving (Eq, Ord, Show)\n\ninstance Semigroup ExcSet where\n  ExcSet v1 e1 s1 <> ExcSet v2 e2 s2 = ExcSet (v1 <> v2) (e1 <> e2) (s1 <> s2)\n\ninstance Monoid ExcSet where\n  mempty = ExcSet mempty mempty mempty\n\nfromExceptions :: Foldable t => t Exception -> ExcSet\nfromExceptions es = ExcSet mempty (Set.fromList (Foldable.toList es)) mempty\n\nvar :: FreeVariable -> ExcSet\nvar v = ExcSet (Set.singleton v) mempty mempty\n\nexc :: Exception -> ExcSet\nexc e = ExcSet mempty (Set.singleton e) mempty\n\nstr :: Text.Text -> ExcSet\nstr s = ExcSet mempty mempty (Set.singleton s)\n\nsubst  :: Name -> ExcSet -> ExcSet -> ExcSet\n-- FIXME: this doesn't handle transitivity at all.\nsubst name (ExcSet _ es' _) (ExcSet fvs es ss) = ExcSet fvs'' (es <> es'') ss\n  where\n  (fvs'', es'') = foldMap combine fvs\n  combine fv\n    | freeVariableName fv == name = (mempty, Set.map (\\ (Exception n _) -> Exception n (freeVariableLines fv)) es')\n    | otherwise                   = (Set.singleton fv, mempty)\n\n\nnullExcSet :: ExcSet -> Bool\nnullExcSet e = null (freeVariables e) && null (exceptions e)\n\nfreeVariablesForLine :: Int -> ExcSet -> Set.Set FreeVariable\nfreeVariablesForLine l e = Set.filter (\\ fv -> IntSet.member l (freeVariableLines fv)) (freeVariables e)\n\nexceptionsForLine :: Int -> ExcSet -> Set.Set Exception\nexceptionsForLine l e = Set.filter (\\ ex -> IntSet.member l (exceptionLines ex)) (exceptions e)\n\nprintExcSet :: Source.Source -> ExcSet -> IO ()\nprintExcSet src e = for_ (zip [0..] (Source.lines src)) $ \\ (i, line) -> do\n  Text.putStr (keywords (Text.dropWhileEnd (== '\\n') (Source.toText line)))\n  let es  = exceptionsForLine    i e\n      fvs = freeVariablesForLine i e\n  unless (null es && null fvs) $ do\n    Text.putStr \" \\ESC[30;1m# \"\n    Text.putStr (\"{\" <> union\n      (  formatFreeVariables fvs\n      <> formatExceptions    es ) <> \"}\" <> reset)\n  Text.putStrLn mempty\n  where\n  keyword k s = Text.intercalate (\"\\ESC[34;1m\" <> k <> reset) (Text.splitOn k s)\n  keywords = keyword \"raise\" . keyword \"import\" . keyword \"def\" . keyword \"pass\"\n  union = Text.intercalate \", \"\n  formatFreeVariables fvs  = map (\\ fv -> \"?\" <> formatName (freeVariableName fv)) (Set.toList fvs)\n  formatExceptions    excs = map (Text.pack . show . formatName . exceptionName) (Set.toList excs)\n  reset = \"\\ESC[0m\"\n\nrefLines :: Reference -> IntSet.IntSet\nrefLines (Reference _ (Span (Pos startLine _) (Pos endLine _))) = IntSet.fromAscList [startLine..endLine]\n\nexceptionTracing\n  :: Ord term\n  => ( forall sig m\n     .  (Has (Env A.MAddr) sig m, HasLabelled Store (Store A.MAddr ExcSet) sig m, Has (Dom ExcSet) sig m, Has (Reader Reference) sig m, Has A.Statement sig m)\n     => (term -> m ExcSet)\n     -> (term -> m ExcSet) )\n  -> [File term]\n  -> (A.MStore ExcSet, [File (Module ExcSet)])\nexceptionTracing eval = run . A.runFiles (runFile eval)\n\nexceptionTracingIndependent\n  :: Ord term\n  => ( forall sig m\n     .  (Has (Env A.MAddr) sig m, HasLabelled Store (Store A.MAddr ExcSet) sig m, Has (Dom ExcSet) sig m, Has (Reader Reference) sig m, Has A.Statement sig m)\n     => (term -> m ExcSet)\n     -> (term -> m ExcSet) )\n  -> File term\n  -> (A.MStore ExcSet, File (Module ExcSet))\nexceptionTracingIndependent eval = run . A.runStoreState . runFile eval\n\nrunFile\n  :: ( Has (State (A.MStore ExcSet)) sig m\n     , Ord term )\n  => ( forall sig m\n     .  (Has (Env A.MAddr) sig m, HasLabelled Store (Store A.MAddr ExcSet) sig m, Has (Dom ExcSet) sig m, Has (Reader Reference) sig m, Has A.Statement sig m)\n     => (term -> m ExcSet)\n     -> (term -> m ExcSet) )\n  -> File term\n  -> m (File (Module ExcSet))\nrunFile eval file = traverse run file where\n  run\n    = A.runStatement result\n    . A.runEnv @ExcSet\n    . runReader (fileRef file)\n    . convergeTerm (A.runStore @ExcSet . runExcC . fix (cacheTerm . eval))\n  result msgs sets = do\n    exports <- gets @(A.MStore ExcSet) (fmap Foldable.fold . Map.mapKeys A.getMAddr . A.getMStore)\n    let set = Foldable.fold sets\n        imports = Set.fromList (map extractImport msgs)\n    pure (Module (Foldable.foldl' (flip (uncurry subst)) set . Map.toList) imports exports (Set.map freeVariableName (freeVariables set)))\n  extractImport (A.Import components) = name (Text.intercalate \".\" (Foldable.toList components))\n\nnewtype ExcC m a = ExcC { runExcC :: m a }\n  deriving (Alternative, Applicative, Functor, Monad)\n\ninstance (Has (Reader Reference) sig m, Alternative m) => Algebra (Dom ExcSet :+: sig) (ExcC m) where\n  alg hdl sig ctx = ExcC $ case sig of\n    L dom   -> case dom of\n      DVar n    -> do\n        lines <- asks refLines\n        pure $ var (FreeVariable n lines) <$ ctx\n      DAbs _ b  -> runExcC (hdl (b mempty <$ ctx))\n      DApp f a  -> pure $ f <> Foldable.fold a <$ ctx\n      DInt _    -> pure nil\n      DUnit     -> pure nil\n      DBool _   -> pure nil\n      DIf c t e -> fmap (mappend c) <$> runExcC (hdl (t <$ ctx) <|> hdl (e <$ ctx))\n      DString s -> pure (str (Text.dropAround (== '\"') s) <$ ctx)\n      t :>>> u  -> pure (t <> u <$ ctx)\n      DDie e    -> do\n        lines <- asks refLines\n        pure $ e{ strings = mempty } <> fromExceptions [Exception (name n) lines | n <- Set.toList (strings e)] <$ ctx\n      where\n      nil = (mempty :: ExcSet) <$ ctx\n\n    R other -> alg (runExcC . hdl) other ctx\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Analysis/Typecheck.hs",
    "content": "{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE DeriveTraversable #-}\n{-# LANGUAGE DerivingVia #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE FunctionalDependencies #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE LambdaCase #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE QuantifiedConstraints #-}\n{-# LANGUAGE RankNTypes #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE StandaloneDeriving #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\nmodule Analysis.Analysis.Typecheck\n( Monotype (..)\n, Meta\n, Polytype (..)\n, typecheckingFlowInsensitive\n) where\n\nimport           Analysis.Carrier.Fail.WithLoc\nimport qualified Analysis.Carrier.Store.Monovariant as A\nimport           Analysis.Effect.Domain as A\nimport           Analysis.File\nimport           Analysis.FlowInsensitive\nimport           Analysis.Functor.Named\nimport           Analysis.Reference\nimport           Control.Algebra\nimport           Control.Applicative (Alternative (..))\nimport           Control.Carrier.Fresh.Strict as Fresh\nimport           Control.Carrier.Reader hiding (Local)\nimport           Control.Carrier.State.Strict\nimport           Control.Effect.Labelled\nimport           Control.Monad (ap, guard, unless)\nimport           Control.Monad.Trans.Class\nimport           Data.Foldable (for_, sequenceA_)\nimport           Data.Function (fix)\nimport qualified Data.IntMap as IM\nimport qualified Data.IntSet as IS\nimport           Data.Maybe (fromJust, fromMaybe)\nimport           Data.Semigroup (Last (..))\nimport qualified Data.Set as Set\nimport           Data.Void\nimport           GHC.Generics (Generic1)\nimport           Prelude hiding (fail)\n\ndata Monotype a\n  = Var a\n  | Unit\n  | Bool\n  | Int\n  | String\n  | [Monotype a] :-> Monotype a\n  -- | (Locally) undefined names whose types are unknown. May not be eliminated by unification.\n  | TypeOf Name\n  deriving (Eq, Foldable, Functor, Generic1, Ord, Show, Traversable)\n\ninfixr 0 :->\n\n-- FIXME: Union the effects/annotations on the operands.\n\n-- | We derive the 'Semigroup' instance for types to take the second argument. This is equivalent to stating that the type of an imperative sequence of statements is the type of its final statement.\nderiving via (Last (Monotype a)) instance Semigroup (Monotype a)\n\ninstance Applicative Monotype where\n  pure = Var\n  (<*>) = ap\n\ninstance Monad Monotype where\n  m >>= f = case m of\n    Var a    -> f a\n    Unit     -> Unit\n    Bool     -> Bool\n    Int      -> Int\n    String   -> String\n    TypeOf n -> TypeOf n\n    a :-> b  -> (map (>>= f) a) :-> (b >>= f)\n\n\ntype Type = Monotype Meta\n\n\ntype Meta = Int\n\n\ndata Polytype a\n  = PForAll (Polytype (Maybe a))\n  | PType (Monotype a)\n  deriving (Eq, Foldable, Functor, Generic1, Ord, Show, Traversable)\n\n\nclosed :: Traversable f => f a -> Maybe (f b)\nclosed = traverse (const Nothing)\n\nabstract :: Eq a => a -> Polytype a -> Polytype (Maybe a)\nabstract n = fmap (\\ a -> a <$ guard (a == n))\n\n\nforAll :: Eq a => a -> Polytype a -> Polytype a\nforAll n body = PForAll (abstract n body)\n\nforAlls :: (Eq a, Foldable t) => t a -> Polytype a -> Polytype a\nforAlls ns body = foldr forAll body ns\n\ngeneralize :: Monotype Meta -> Polytype Void\ngeneralize ty = fromJust (closed (forAlls (IS.toList (mvs ty)) (PType ty)))\n\n\ntypecheckingFlowInsensitive\n  :: Ord term\n  => (forall sig m\n     .  (Has (A.Dom Type :+: A.Env A.MAddr :+: Reader Reference) sig m, HasLabelled A.Store (A.Store A.MAddr Type) sig m, MonadFail m)\n     => (term -> m Type)\n     -> (term -> m Type)\n     )\n  -> [File term]\n  -> ( A.MStore Type\n     , [File (Either (Reference, String) (Polytype Void))]\n     )\ntypecheckingFlowInsensitive eval\n  = run\n  . evalFresh 0\n  . A.runStoreState\n  . fmap (fmap (fmap (fmap generalize)))\n  . traverse (runFile eval)\n\nrunFile\n  :: ( Has Fresh sig m\n     , Has (State (A.MStore Type)) sig m\n     , Ord term\n     )\n  => (forall sig m\n     .  (Has (A.Dom Type :+: A.Env A.MAddr :+: Reader Reference) sig m, HasLabelled A.Store (A.Store A.MAddr Type) sig m, MonadFail m)\n     => (term -> m Type)\n     -> (term -> m Type)\n     )\n  -> File term\n  -> m (File (Either (Reference, String) Type))\nrunFile eval file = traverse run file\n  where run\n          = (\\ m -> do\n              (subst, t) <- m\n              modify @(A.MStore Type) (A.MStore . fmap (Set.map (substAll subst)) . A.getMStore)\n              pure (substAll subst <$> t))\n          . runState @Substitution mempty\n          . runReader (fileRef file)\n          . A.runEnv @Type\n          . runFail\n          . (\\ m -> do\n            (cs, t) <- m\n            t <$ solve cs)\n          . runState @(Set.Set (Type, Type)) mempty\n          . (\\ m -> do\n              v <- meta\n              bs <- m\n              v <$ for_ bs (unify v))\n          . convergeTerm (A.runStore @Type . runDomain . fix (cacheTerm . eval))\n\n\ndata Solution\n  = Int := Type\n  deriving (Eq, Ord, Show)\n\ninfix 5 :=\n\nmeta :: Has Fresh sig m => m Type\nmeta = pure <$> Fresh.fresh\n\nunify :: Has (State (Set.Set (Type, Type))) sig m => Type -> Type -> m ()\nunify t1 t2\n  | t1 == t2  = pure ()\n  | otherwise = modify (<> Set.singleton (t1, t2))\n\ntype Substitution = IM.IntMap Type\n\nsolve :: (Has (State Substitution) sig m, MonadFail m) => Set.Set (Type, Type) -> m ()\nsolve cs = for_ cs (uncurry solve)\n  where solve = curry $ \\case\n          (a1 :-> b1, a2 :-> b2)            -> sequenceA_ (zipWith solve a1 a2) *> solve b1 b2\n          (Var m1   , Var m2)    | m1 == m2 -> pure ()\n          (Var m1   , t2)                   -> do\n            sol <- solution m1\n            case sol of\n              Just (_ := t1)                  -> solve t1 t2\n              Nothing | m1 `IS.member` mvs t2 -> fail (\"Occurs check failure: \" <> show m1 <> \" :===: \" <> show t2)\n                      | otherwise             -> modify (IM.insert m1 t2 . fmap (substAll (IM.singleton m1 t2)))\n          (t1       , Var m2)               -> solve (Var m2) t1\n          (t1       , t2)                   -> unless (t1 == t2) $ fail (\"Type mismatch:\\nexpected: \" <> show t1 <> \"\\n  actual: \" <> show t2)\n\n        solution m = fmap (m :=) <$> gets (IM.lookup m)\n\n\nmvs :: Foldable t => t Meta -> IS.IntSet\nmvs = foldMap IS.singleton\n\nsubstAll :: Monad t => IM.IntMap (t Meta) -> t Meta -> t Meta\nsubstAll s a = a >>= \\ i -> fromMaybe (pure i) (IM.lookup i s)\n\n\nnewtype DomainC m a = DomainC { runDomain :: m a }\n  deriving (Alternative, Applicative, Functor, Monad, MonadFail)\n\ninstance MonadTrans DomainC where\n  lift = DomainC\n\ninstance ( Alternative m\n         , Has (A.Env A.MAddr) sig m\n         , Has Fresh sig m\n         , HasLabelled A.Store (A.Store A.MAddr Type) sig m\n         , Has (State (Set.Set (Type, Type))) sig m\n         , MonadFail m\n         )\n      => Algebra (A.Dom Type :+: sig) (DomainC m) where\n  alg hdl sig ctx = case sig of\n    L (DVar n)  -> pure (TypeOf n <$ ctx)\n\n    L (DInt _)  -> pure (Int <$ ctx)\n\n    L DUnit     -> pure (Unit <$ ctx)\n\n    L (DBool _) -> pure (Bool <$ ctx)\n    L (DIf c t e) -> do\n      unify c Bool\n      hdl (t <$ ctx) <|> hdl (e <$ ctx)\n\n    L (DString _) -> pure (String <$ ctx)\n\n    L (DAbs n b) -> do\n      addrs <- traverse A.alloc n\n      args <- traverse (const meta) n\n      sequenceA_ (zipWith (A..=) addrs args)\n      ty <- hdl (b args <$ ctx)\n      pure ((args :->) <$> ty)\n    L (DApp f a) -> do\n      args <- traverse (const meta) a\n      ret <- meta\n      unify f (args :-> ret)\n      sequenceA_ (zipWith unify a args)\n      pure (ret <$ ctx)\n\n    L (_ :>>> t) -> pure (t <$ ctx)\n\n    L (DDie msg) -> fail (show msg)\n\n    R other -> DomainC (alg (runDomain . hdl) other ctx)\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Blob.hs",
    "content": "{-# LANGUAGE OverloadedStrings #-}\nmodule Analysis.Blob\n  ( Blob (..)\n  , fromSource\n  , blobLanguage\n  , blobPath\n  , blobFilePath\n  , nullBlob\n  ) where\n\nimport Analysis.File as A\nimport Analysis.Reference as A\nimport Data.Aeson\nimport Source.Language as Language\nimport Source.Source as Source\n\n-- | The source, path information, and language of a file read from disk.\ndata Blob = Blob\n  { blobSource :: Source         -- ^ The UTF-8 encoded source text of the blob.\n  , blobFile   :: File Language  -- ^ Path/language information for this blob.\n  } deriving (Show, Eq)\n\ninstance FromJSON Blob where\n  parseJSON = withObject \"Blob\" $ \\b -> do\n    src <- b .: \"content\"\n    pth <- b .: \"path\"\n    lang <- b .: \"language\"\n    let lang' = if knownLanguage lang then lang else Language.forPath pth\n    pure (fromSource pth lang' src)\n\n\n-- | Create a Blob from a provided path, language, and UTF-8 source.\n-- The resulting Blob's span is taken from the 'totalSpan' of the source.\nfromSource :: FilePath -> Language -> Source -> Blob\nfromSource filepath language source\n  = Blob source (A.File (A.Reference filepath (totalSpan source)) language)\n\nblobLanguage :: Blob -> Language\nblobLanguage = A.fileBody . blobFile\n\nblobPath :: Blob -> FilePath\nblobPath = A.refPath . A.fileRef . blobFile\n\n-- | Show FilePath for error or json outputs.\nblobFilePath :: Blob -> String\nblobFilePath = blobPath\n\nnullBlob :: Blob -> Bool\nnullBlob = Source.null . blobSource\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Carrier/Env/Monovariant.hs",
    "content": "{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\nmodule Analysis.Carrier.Env.Monovariant\n( -- * Env carrier\n  EnvC(..)\n  -- * Env effect\n, module Analysis.Effect.Env\n) where\n\nimport           Analysis.Effect.Env\nimport           Analysis.Name\nimport           Control.Algebra\nimport qualified Control.Monad.Fail as Fail\n\nnewtype EnvC m a = EnvC { runEnv :: m a }\n  deriving (Applicative, Functor, Monad, Fail.MonadFail)\n\ninstance Algebra sig m\n      => Algebra (Env Name :+: sig) (EnvC m) where\n  alg hdl sig ctx = case sig of\n    L (Bind _ _ m)  -> hdl (m <$ ctx)\n    L (Lookup name) -> pure (Just name <$ ctx)\n    R other         -> EnvC (alg (runEnv . hdl) other ctx)\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Carrier/Env/Precise.hs",
    "content": "{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\nmodule Analysis.Carrier.Env.Precise\n( -- * Env carrier\n  EnvC(..)\n  -- * Env effect\n, module Analysis.Effect.Env\n) where\n\nimport           Analysis.Effect.Env\nimport           Analysis.Name\nimport           Control.Algebra\nimport           Control.Effect.Reader\nimport qualified Control.Monad.Fail as Fail\nimport qualified Data.Map as Map\n\ntype Precise = Int\ntype PreciseEnv = Map.Map Name Precise\n\nnewtype EnvC m a = EnvC { runEnv :: m a }\n  deriving (Applicative, Functor, Monad, Fail.MonadFail)\n\ninstance Has (Reader PreciseEnv) sig m\n      => Algebra (Env Precise :+: sig) (EnvC m) where\n  alg hdl sig ctx = case sig of\n    L (Bind name addr m) -> local (Map.insert name addr) (hdl (m <$ ctx))\n    L (Lookup name)      -> (<$ ctx) <$> asks (Map.lookup name)\n    R other              -> EnvC (alg (runEnv . hdl) other ctx)\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Carrier/Fail/WithLoc.hs",
    "content": "{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\nmodule Analysis.Carrier.Fail.WithLoc\n( -- * Fail carrier\n  runFail\n, FailC(..)\n  -- * Fail effect\n, module Control.Effect.Fail\n) where\n\nimport Analysis.Reference\nimport Control.Algebra\nimport Control.Applicative\nimport Control.Carrier.Error.Either\nimport Control.Effect.Fail\nimport Control.Effect.Reader\nimport Prelude hiding (fail)\n\n-- Fail carrier\n\nrunFail :: FailC m a -> m (Either (Reference, String) a)\nrunFail = runError . runFailC\n\nnewtype FailC m a = FailC { runFailC :: ErrorC (Reference, String) m a }\n  deriving (Alternative, Applicative, Functor, Monad)\n\ninstance Has (Reader Reference) sig m => MonadFail (FailC m) where\n  fail s = do\n    ref <- ask\n    FailC (throwError (ref :: Reference, s))\n\ninstance Has (Reader Reference) sig m => Algebra (Fail :+: sig) (FailC m) where\n  alg _   (L (Fail s)) _   = fail s\n  alg hdl (R other)    ctx = FailC (alg (runFailC . hdl) (R other) ctx)\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Carrier/Statement/State.hs",
    "content": "{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\nmodule Analysis.Carrier.Statement.State\n( -- * Messages\n  Message(..)\n  -- * Statement carrier\n, runStatement\n, StatementC(..)\n  -- * Statement effect\n, module Analysis.Effect.Statement\n) where\n\nimport           Analysis.Effect.Statement hiding (Import)\nimport qualified Analysis.Effect.Statement as S\nimport           Control.Algebra\nimport           Control.Carrier.State.Church\nimport           Control.Monad.Fail as Fail\nimport           Data.List.NonEmpty (NonEmpty)\nimport           Data.Text (Text)\n\n-- Messages\n\nnewtype Message\n  = Import (NonEmpty Text)\n  deriving (Eq, Ord, Show)\n\n\n-- Statement carrier\n\nrunStatement :: ([Message] -> a -> m r) -> StatementC m a -> m r\nrunStatement k (StatementC m) = runState (k . reverse) [] m\n\nnewtype StatementC m a = StatementC { runStatementC :: StateC [Message] m a }\n  deriving (Applicative, Functor, Monad, Fail.MonadFail)\n\ninstance Algebra sig m => Algebra (S.Statement :+: sig) (StatementC m) where\n  alg hdl sig ctx = case sig of\n    L (S.Import ns) -> StatementC ((<$ ctx) <$> modify (Import ns:))\n    R other         -> StatementC (alg (runStatementC . hdl) (R other) ctx)\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Carrier/Store/Monovariant.hs",
    "content": "{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE RankNTypes #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\nmodule Analysis.Carrier.Store.Monovariant\n( -- * Store carrier\n  MAddr(..)\n, MStore(..)\n, runStoreState\n, runStore\n, StoreC(..)\n  -- * Store effect\n, module Analysis.Effect.Store\n  -- * Env carrier\n, EnvC(..)\n  -- * Env effect\n, module Analysis.Effect.Env\n  -- * Running\n, runFiles\n, runFilesIndependent\n) where\n\nimport Analysis.Effect.Env\nimport Analysis.Effect.Store\nimport Analysis.File (File)\nimport Analysis.Name\nimport Control.Algebra\nimport Control.Carrier.State.Church\nimport Control.Effect.Labelled\nimport Control.Effect.NonDet\nimport Control.Monad.Fail as Fail\nimport Data.Map as Map\nimport Data.Set as Set\n\nnewtype MAddr = MAddr { getMAddr :: Name }\n  deriving (Eq, Ord, Show)\n\nnewtype MStore value = MStore { getMStore :: Map.Map MAddr (Set.Set value) }\n  deriving (Eq, Ord, Show)\n\ninstance Ord value => Semigroup (MStore value) where\n  MStore s1 <> MStore s2 = MStore (Map.unionWith Set.union s1 s2)\n\ninstance Ord value => Monoid (MStore value) where\n  mempty = MStore Map.empty\n\n\n-- Store carrier\n\nrunStoreState :: Applicative m => StateC (MStore value) m a -> m (MStore value, a)\nrunStoreState = runState (curry pure) (MStore Map.empty)\n\nrunStore :: Labelled Store (StoreC value) m a -> m a\nrunStore = runStoreC . runLabelled\n\nnewtype StoreC value m a = StoreC { runStoreC :: m a }\n  deriving (Alternative, Applicative, Functor, Monad, Fail.MonadFail)\n\ninstance (Has (State (MStore value)) sig m, Alternative m, Ord value) => Algebra (Store MAddr value :+: sig) (StoreC value m) where\n  alg hdl sig ctx = StoreC $ do\n    MStore store <- get @(MStore value)\n    case sig of\n      L op        -> case op of\n        Alloc name        -> let addr = MAddr name in addr <$ ctx <$ put (MStore (Map.insertWith Set.union addr Set.empty store))\n        Assign addr value -> ctx <$ put (MStore (Map.insertWith Set.union addr (Set.singleton value) store))\n        Fetch addr        -> foldMapA ((<$ put (MStore store)) . (<$ ctx)) (Map.findWithDefault Set.empty addr store)\n\n      R other -> alg (runStoreC . hdl) other ctx\n\n\n-- Env carrier\n\nnewtype EnvC value m a = EnvC { runEnv :: m a }\n  deriving (Applicative, Functor, Monad, Fail.MonadFail)\n\ninstance Has (State (MStore value)) sig m\n      => Algebra (Env MAddr :+: sig) (EnvC value m) where\n  alg hdl sig ctx = case sig of\n    L op    -> case op of\n      Bind _ _ m -> hdl (m <$ ctx)\n      Lookup n   -> do\n        MStore store <- get @(MStore value)\n        pure (MAddr n <$ Map.lookup (MAddr n) store <$ ctx)\n\n    R other -> EnvC (alg (runEnv . hdl) other ctx)\n\n\n-- Running\n\nrunFiles\n  :: Algebra sig m\n  => (forall sig m . Has (State (MStore  value)) sig m => File term -> m (File result))\n  -> [File term]\n  -> m (MStore value, [File result])\nrunFiles runFile\n  = runStoreState\n  . traverse runFile\n\nrunFilesIndependent\n  :: Algebra sig m\n  => (forall sig m . Has (State (MStore  value)) sig m => File term -> m (File result))\n  -> [File term]\n  -> m [(MStore value, File result)]\nrunFilesIndependent runFile\n  = traverse (runStoreState . runFile)\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Carrier/Store/Precise.hs",
    "content": "{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\nmodule Analysis.Carrier.Store.Precise\n( -- * Store carrier\n  PAddr(..)\n, PStore(..)\n, PEnv\n, runStore\n, StoreC(StoreC)\n  -- * Store effect\n, module Analysis.Effect.Store\n  -- * Env carrier\n, runEnv\n, EnvC(..)\n  -- * Env effect\n, module Analysis.Effect.Env\n) where\n\nimport Analysis.Effect.Env\nimport Analysis.Effect.Store\nimport Analysis.Name\nimport Control.Algebra\nimport Control.Carrier.Reader\nimport Control.Carrier.State.Church\nimport Control.Effect.Labelled\nimport Control.Monad.Fail as Fail\nimport Data.IntMap as IntMap\nimport Data.Map as Map\n\nnewtype PAddr = PAddr Int\n\nnewtype PStore a = PStore (IntMap.IntMap (Maybe a))\n  deriving (Eq, Ord, Monoid, Semigroup, Show)\n\ntype PEnv = Map.Map Name PAddr\n\n\n-- Store carrier\n\nrunStore :: Applicative m => Labelled Store (StoreC val) m a -> m (PStore val, a)\nrunStore = runState (curry pure) mempty . runStoreC . runLabelled\n\nnewtype StoreC val m a = StoreC { runStoreC :: StateC (PStore val) m a }\n  deriving (Applicative, Functor, Monad)\n\ninstance Algebra sig m => Algebra (Store PAddr val :+: sig) (StoreC val m) where\n  alg hdl sig ctx = StoreC $ case sig of\n    L op        -> case op of\n      Alloc _ -> StateC $ \\ k (PStore heap) -> do\n        let a = maybe 0 ((+ 1) . fst) (IntMap.lookupMax heap)\n        k (PStore (IntMap.insert a Nothing heap)) (PAddr a <$ ctx)\n      Assign (PAddr a) v -> ctx <$ modify (\\ (PStore heap) -> PStore (IntMap.insert a (Just v) heap))\n      Fetch (PAddr a) -> gets (\\ (PStore heap) -> maybe (error \"unallocated addr\") (maybe (error \"uninitialized addr\") (<$ ctx)) (IntMap.lookup a heap))\n    R other -> alg (runStoreC . hdl) (R other) ctx\n\n\n-- Env carrier\n\nrunEnv :: EnvC m a -> m a\nrunEnv = runReader Map.empty . runEnvC\n\nnewtype EnvC m a = EnvC { runEnvC :: ReaderC PEnv m a }\n  deriving (Applicative, Functor, Monad, Fail.MonadFail)\n\ninstance Algebra sig m => Algebra (Env PAddr :+: sig) (EnvC m) where\n  alg hdl sig ctx = EnvC $ case sig of\n    L (Bind name addr m) -> local (Map.insert name addr) (runEnvC (hdl (m <$ ctx)))\n    L (Lookup name)      -> asks ((<$ ctx) . Map.lookup name)\n    R other              -> alg (runEnvC . hdl) (R other) ctx\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Data/Snoc.hs",
    "content": "{-# LANGUAGE DeriveTraversable #-}\nmodule Analysis.Data.Snoc\n( Snoc(..)\n) where\n\ndata Snoc a = Nil | Snoc a :> a\n  deriving (Foldable, Functor, Traversable)\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Effect/Domain.hs",
    "content": "{-# LANGUAGE GADTs #-}\n{-\nTODO\n\n- machine integer sizes\n-}\nmodule Analysis.Effect.Domain\n( -- * Variables\n  dvar\n  -- * Functions\n, dabs\n, dapp\n  -- * Integers\n, dint\n  -- * Unit\n, dunit\n  -- * Booleans\n, dtrue\n, dfalse\n, dbool\n, dif\n  -- * Strings\n, dstring\n  -- * Statements\n, (>>>)\n  -- * Exceptions\n, ddie\n  -- * Domain effect\n, Dom(..)\n) where\n\nimport Analysis.Functor.Named\nimport Control.Algebra\nimport Data.Text (Text)\n\n-- Variables\n\ndvar :: Has (Dom val) sig m => Name -> m val\ndvar = send . DVar\n\n\n-- Functions\n\ndabs :: Has (Dom val) sig m => [Name] -> ([val] -> m val) -> m val\ndabs n = send . DAbs n\n\ndapp :: Has (Dom val) sig m => val -> [val] -> m val\ndapp f a = send $ DApp f a\n\n\n-- Integers\n\ndint :: Has (Dom val) sig m => Int -> m val\ndint = send . DInt\n\n\n-- Unit\n\ndunit :: Has (Dom val) sig m => m val\ndunit = send DUnit\n\n\n-- Booleans\n\ndtrue :: Has (Dom val) sig m => m val\ndtrue = dbool True\n\ndfalse :: Has (Dom val) sig m => m val\ndfalse = dbool False\n\ndbool :: Has (Dom val) sig m => Bool -> m val\ndbool = send . DBool\n\ndif :: Has (Dom val) sig m => val -> m val -> m val -> m val\ndif c t e = send $ DIf c t e\n\n\n-- Strings\n\ndstring :: Has (Dom val) sig m => Text -> m val\ndstring = send . DString\n\n\n-- Statements\n\n-- | Combine the results of adjacent statements.\n--\n-- This exists to allow e.g. collecting analyses to see the results of earlier statements when processing later ones, without requiring @val@ to be a 'Semigroup'. For example, concrete and typechecking domains would likely ignore the first parameter and return the second, while a domain counting the number of visited instructions would return the sum of both.\n(>>>) :: Has (Dom val) sig m => val -> val -> m val\nt >>> u = send (t :>>> u)\n\n\n-- Exceptions\n\nddie :: Has (Dom val) sig m => val -> m val\nddie = send . DDie\n\n\n-- Domain effect\n\ndata Dom val m k where\n  DVar :: Name -> Dom val m val\n  DAbs :: [Name] -> ([val] -> m val) -> Dom val m val\n  DApp :: val -> [val] -> Dom val m val\n  DInt :: Int -> Dom val m val\n  DUnit :: Dom val m val\n  DBool :: Bool -> Dom val m val\n  DIf :: val -> m val -> m val -> Dom val m val\n  DString :: Text -> Dom val m val\n  (:>>>) :: val -> val -> Dom val m val\n  DDie :: val -> Dom val m val\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Effect/Env.hs",
    "content": "{-# LANGUAGE GADTs #-}\nmodule Analysis.Effect.Env\n( -- * Env effect\n  bind\n, lookupEnv\n, Env(..)\n  -- * Re-exports\n, Algebra\n, Has\n, run\n) where\n\nimport Analysis.Name\nimport Control.Algebra\n\nbind :: Has (Env addr) sig m => Name -> addr -> m a -> m a\nbind name addr m = send (Bind name addr m)\n\nlookupEnv :: Has (Env addr) sig m => Name -> m (Maybe addr)\nlookupEnv name = send (Lookup name)\n\n\ndata Env addr m k where\n  Bind   :: Name -> addr -> m a -> Env addr m a\n  Lookup :: Name ->                Env addr m (Maybe addr)\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Effect/Statement.hs",
    "content": "{-# LANGUAGE GADTs #-}\n{-# LANGUAGE KindSignatures #-}\n{- |\nThe @'Statement'@ effect is designed to provide instrumentation for source-level interactions we need visibility into which are nevertheless not (currently) modelled by expressions: e.g. statements, declarations, certain directives, etc.\n\nCurrently this is limited to imports, where the value-level semantics are (for many languages) essentially the unit value, but where the effect of bringing an environment and entire subset of the store into scope are essential to track for modular interpretation.\n-}\nmodule Analysis.Effect.Statement\n( -- * Statement effect\n  simport\n, Statement(..)\n) where\n\nimport Control.Algebra\nimport Data.Kind as K\nimport Data.List.NonEmpty (NonEmpty)\nimport Data.Text\n\n-- Statement effect\n\nsimport :: Has Statement sig m => NonEmpty Text -> m ()\nsimport ns = send (Import ns)\n\ndata Statement (m :: K.Type -> K.Type) k where\n  Import :: NonEmpty Text -> Statement m ()\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Effect/Store.hs",
    "content": "{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE GADTs #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE TypeApplications #-}\nmodule Analysis.Effect.Store\n( -- * Store effect\n  alloc\n, (.=)\n, fetch\n, Store(..)\n  -- * Re-exports\n, Algebra\n, Has\n, run\n) where\n\nimport Analysis.Name\nimport Control.Effect.Labelled\nimport Data.Kind as K\n\n-- Store effect\n\nalloc :: HasLabelled Store (Store addr val) sig m => Name -> m addr\nalloc = sendLabelled @Store . Alloc\n\n(.=) :: HasLabelled Store (Store addr val) sig m => addr -> val -> m ()\naddr .= val = sendLabelled @Store $ Assign addr val\n\ninfix 2 .=\n\nfetch :: HasLabelled Store (Store addr val) sig m => addr -> m val\nfetch = sendLabelled @Store . Fetch\n\ndata Store addr val (m :: K.Type -> K.Type) k where\n  Alloc :: Name -> Store addr val m addr\n  Assign :: addr -> val -> Store addr val m ()\n  Fetch :: addr -> Store addr val m val\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/File.hs",
    "content": "{-# LANGUAGE DeriveTraversable #-}\nmodule Analysis.File\n( -- * Files\n  File(..)\n  -- * Constructors\n, fromBody\n, fromPath\n  -- * Eliminators\n, fileLanguage\n) where\n\nimport qualified Analysis.Reference as A\nimport           Data.Maybe (fromJust, listToMaybe)\nimport           GHC.Stack\nimport           Source.Language as Language\nimport           Source.Span\n\n-- Files\n\ndata File a = File\n  { fileRef  :: !A.Reference\n  , fileBody :: !a\n  }\n  deriving (Eq, Foldable, Functor, Ord, Show, Traversable)\n\n\n-- Constructors\n\nfromBody :: HasCallStack => a -> File a\nfromBody body = File (A.Reference (srcLocFile srcLoc) (spanFromSrcLoc srcLoc)) body where\n  srcLoc = snd (fromJust (listToMaybe (getCallStack callStack)))\n\nfromPath :: FilePath -> File Language\nfromPath p = File (A.fromPath p) (Language.forPath p)\n\n\n-- Eliminators\n\n-- | The language of the provided file, as inferred by 'Language.forPath'.\nfileLanguage :: File a -> Language\nfileLanguage = Language.forPath . A.refPath . fileRef\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/FlowInsensitive.hs",
    "content": "{-# LANGUAGE GeneralisedNewtypeDeriving #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\nmodule Analysis.FlowInsensitive\n( -- * Flow-insensitive convergence\n  convergeTerm\n, cacheTerm\n, CacheC(..)\n, runCache\n  -- * Kleene least fixed-point theorem\n, converge\n, convergeBy\n, convergeMaybe\n, convergeEither\n  -- * Caches\n, Cache(..)\n, emptyCache\n, lookupCache\n, insertCache\n, insertsCache\n) where\n\nimport           Analysis.Carrier.Store.Monovariant\nimport           Control.Algebra\nimport           Control.Carrier.NonDet.Church\nimport           Control.Carrier.Reader\nimport           Control.Carrier.State.Church\nimport           Control.Monad ((<=<))\nimport           Control.Monad.Fail as Fail\nimport qualified Data.Map as Map\nimport           Data.Maybe (fromMaybe)\nimport qualified Data.Set as Set\n\nconvergeTerm\n  :: forall term value m sig\n  .  ( Has (State (MStore value)) sig m\n     , Ord term\n     , Ord value\n     )\n  => (term -> CacheC term value m value)\n  -> term\n  -> m (Set.Set value)\nconvergeTerm eval term = do\n  heap <- get @(MStore value)\n  lookupCache term . fst <$> converge (\\ (prevCache, _) -> runCache prevCache (eval term)) (emptyCache, heap)\n\ncacheTerm\n  :: ( Alternative m\n     , Has (Reader (Cache term value)) sig m\n     , Has (State  (Cache term value)) sig m\n     , Ord term\n     , Ord value\n     )\n  => (term -> m value)\n  -> (term -> m value)\ncacheTerm eval term = do\n  cached <- gets (lookupCache term)\n  if Set.null cached then do\n    results <- asks (lookupCache term)\n    modify (insertsCache term (results `asTypeOf` cached))\n    result <- eval term\n    result <$ modify (insertCache term result)\n  else\n    foldMapA pure cached\n\n\nnewtype CacheC term value m a = CacheC (NonDetC (ReaderC (Cache term value) (StateC (Cache term value) m)) a)\n  deriving (Algebra (NonDet :+: Reader (Cache term value) :+: State (Cache term value) :+: sig), Alternative, Applicative, Functor, Monad, Fail.MonadFail)\n\nrunCache :: (Has (State (MStore value)) sig m, Ord a) => Cache term value -> CacheC term value m a -> m (Cache term value, MStore value)\nrunCache prevCache (CacheC m) = runState (curry pure) emptyCache (runReader prevCache (runNonDetM Set.singleton m *> get))\n\n\n-- Kleene least fixed-point theorem\n\n-- | Iterate a monadic action starting from some initial seed until the results converge.\n--\n-- This applies the Kleene fixed-point theorem to finitize a monotone action. cf https://en.wikipedia.org/wiki/Kleene_fixed-point_theorem\nconverge\n  :: (Eq a, Monad m)\n  => (a -> m a) -- ^ A monadic action to perform at each iteration, starting from the result of the previous iteration or from the seed value for the first iteration.\n  -> a          -- ^ An initial seed value to iterate from.\n  -> m a        -- ^ A computation producing the least fixed point (the first value at which the actions converge).\nconverge = convergeBy (==)\n\n-- | Iterate a monadic action starting from some initial seed until the results converge according to the passed test.\n--\n-- This applies the Kleene fixed-point theorem to finitize a monotone action. cf https://en.wikipedia.org/wiki/Kleene_fixed-point_theorem\nconvergeBy\n  :: Monad m\n  => (a -> a -> Bool) -- ^ A function to use as the equality test to determine convergence.\n  -> (a -> m a)       -- ^ A monadic action to perform at each iteration, starting from the result of the previous iteration or from the seed value for the first iteration.\n  -> a                -- ^ An initial seed value to iterate from.\n  -> m a              -- ^ A computation producing the least fixed point (the first value at which the actions converge).\nconvergeBy (==) f = convergeMaybe (\\ x -> qualify x <$> f x)\n  where\n  qualify x x'\n    | x == x'   = Nothing\n    | otherwise = Just x'\n\n-- | Iterate a monadic action starting from some initial seed until the results converge.\n--\n-- This applies the Kleene fixed-point theorem to finitize a monotone action. cf https://en.wikipedia.org/wiki/Kleene_fixed-point_theorem\nconvergeMaybe\n  :: Monad m\n  => (a -> m (Maybe a)) -- ^ A monadic action to perform at each iteration, starting from the result of the previous iteration or from the seed value for the first iteration. Returns of 'Nothing' end iteration, while 'Just' begins another iteration.\n  -> a                  -- ^ An initial seed value to iterate from.\n  -> m a                -- ^ A computation producing the least fixed point (the first value at which the actions converge).\nconvergeMaybe f = convergeEither (\\ x -> maybe (Left x) Right <$> f x)\n\n-- | Iterate a monadic action starting from some initial seed until the results converge.\n--\n-- This applies the Kleene fixed-point theorem to finitize a monotone action. cf https://en.wikipedia.org/wiki/Kleene_fixed-point_theorem\nconvergeEither\n  :: Monad m\n  => (a -> m (Either b a)) -- ^ A monadic action to perform at each iteration, starting from the result of the previous iteration or from the seed value for the first iteration. Returns of 'Left' end iteration, while 'Right' begins another iteration.\n  -> a                     -- ^ An initial seed value to iterate from.\n  -> m b                   -- ^ A computation producing the least fixed point (the first value at which the actions converge).\nconvergeEither f = loop\n  where\n  loop = either pure loop <=< f\n\n\n-- Caches\n\nnewtype Cache term value = Cache { getCache :: Map.Map term (Set.Set value) }\n  deriving (Eq, Ord, Show)\n\ninstance (Ord term, Ord value) => Semigroup (Cache term value) where\n  Cache a <> Cache b = Cache (Map.unionWith (<>) a b)\n\ninstance (Ord term, Ord value) => Monoid (Cache term value) where\n  mempty = emptyCache\n\nemptyCache :: Cache term value\nemptyCache = Cache Map.empty\n\nlookupCache :: Ord term => term -> Cache term value -> Set.Set value\nlookupCache k (Cache m) = fromMaybe Set.empty (Map.lookup k m)\n\ninsertCache :: (Ord term, Ord value) => term -> value -> Cache term value -> Cache term value\ninsertCache term value (Cache m) = Cache (Map.insertWith (<>) term (Set.singleton value) m)\n\ninsertsCache :: (Ord term, Ord value) => term -> Set.Set value -> Cache term value -> Cache term value\ninsertsCache term values (Cache m) = Cache (Map.insertWith (<>) term values m)\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Functor/Named.hs",
    "content": "{-# LANGUAGE DeriveFoldable #-}\n{-# LANGUAGE DeriveFunctor #-}\n{-# LANGUAGE DeriveTraversable #-}\nmodule Analysis.Functor.Named\n( module Analysis.Name\n, Named (..)\n, named\n, named'\n, namedName\n, namedValue\n) where\n\n\nimport Analysis.Name\nimport Data.Function (on)\n\n-- | Annotates an @a@ with a 'Name'-provided name, which is ignored for '==' and 'compare'.\ndata Named a = Named Name a\n  deriving (Foldable, Functor, Show, Traversable)\n\nnamed :: Name -> a -> Named a\nnamed = Named\n\nnamed' :: Name -> Named Name\nnamed' u = Named u u\n\nnamedName :: Named a -> Name\nnamedName (Named n _) = n\n\nnamedValue :: Named a -> a\nnamedValue (Named _ a) = a\n\ninstance Eq a => Eq (Named a) where\n  (==) = (==) `on` namedValue\n\ninstance Ord a => Ord (Named a) where\n  compare = compare `on` namedValue\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Module.hs",
    "content": "module Analysis.Module\n( Module(..)\n, moduleBody\n, ModuleSet(..)\n, fromList\n, link\n) where\n\nimport           Analysis.File\nimport           Analysis.Name\nimport           Analysis.Reference\nimport           Data.Foldable (foldl')\nimport qualified Data.Map as Map\nimport qualified Data.Set as Set\nimport qualified Data.Text as Text\nimport           System.FilePath as Path\n\ndata Module a = Module\n  { body    :: Map.Map Name a -> a\n  , imports :: Set.Set Name\n  , exports :: Map.Map Name a\n  , unknown :: Set.Set Name\n  }\n\ninstance Show a => Show (Module a) where\n  showsPrec p (Module b i e u) = showParen (p > 10) (showString \"Module\" . sp . braces\n    ( field \"body\"    (b mempty) . comma . sp\n    . field \"imports\" i          . comma . sp\n    . field \"exports\" e          . comma . sp\n    . field \"unknown\" u))\n    where\n    braces b = showChar '{' . sp . b . sp . showChar '}'\n    comma = showChar ','\n    field n b = showString n . sp . showChar '=' . sp . showsPrec 0 b\n    sp = showChar ' '\n\nmoduleBody :: Module a -> a\nmoduleBody m = body m mempty\n\n\nnewtype ModuleSet a = ModuleSet { getModuleSet :: Map.Map Name (Module a) }\n  deriving (Show)\n\ninstance Semigroup (ModuleSet a) where\n  m1 <> m2 = ModuleSet ((link m2 <$> getModuleSet m1) <> (link m1 <$> getModuleSet m2))\n\ninstance Monoid (ModuleSet a) where\n  mempty = ModuleSet mempty\n\nfromList :: [File (Module a)] -> ModuleSet a\nfromList = ModuleSet . Map.fromList . map (\\ (File ref mod) -> (refName ref, mod))\n  where\n  refName (Reference path _) = name (Text.pack (Path.takeBaseName path))\n\nlink :: ModuleSet a -> Module a -> Module a\nlink (ModuleSet ms) m = Module body' (imports m Set.\\\\ Map.keysSet ms) (exports m) unknown' where\n  (unknown', body') = foldl' (uncurry resolveSymbolsInModule) (unknown m, body m) (Map.restrictKeys ms (imports m))\n  resolveSymbolsInModule unknown body m = (unknown Set.\\\\ Map.keysSet (exports m), body . mappend (Map.restrictKeys (exports m) unknown))\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Name.hs",
    "content": "{-# LANGUAGE FlexibleContexts #-}\nmodule Analysis.Name\n( Name\n  -- * Constructors\n, gensym\n, name\n, nameI\n, formatName\n, isGenerated\n  -- * De Bruijn indices & levels\n, Level(..)\n, Index(..)\n  -- ** Conversions\n, levelToIndex\n, indexToLevel\n) where\n\nimport           Control.Effect.Fresh\nimport           Data.Aeson\nimport qualified Data.Char as Char\nimport           Data.Hashable\nimport           Data.String\nimport           Data.Text (Text)\nimport qualified Data.Text as Text\n\n-- | The type of variable names.\ndata Name\n  = Name Text\n  | I Int\n  deriving (Eq, Ord)\n\ninstance IsString Name where\n  fromString = Name . fromString\n\n-- | Generate a fresh (unused) name for use in synthesized variables/closures/etc.\ngensym :: Has Fresh sig m => m Name\ngensym = I <$> fresh\n\n-- | Construct a 'Name' from a 'Text'.\nname :: Text -> Name\nname = Name\n\nisGenerated :: Name -> Bool\nisGenerated (I _) = True\nisGenerated _     = False\n\n-- | Construct a 'Name' from an 'Int'. This is suitable for automatic generation, e.g. using a Fresh effect, but should not be used for human-generated names.\nnameI :: Int -> Name\nnameI = I\n\n-- | Extract a human-readable 'Text' from a 'Name'.\n-- Sample outputs can be found in @Data.Abstract.Name.Spec@.\nformatName :: Name -> Text\nformatName (Name name) = name\nformatName (I i)       = Text.pack $ '_' : (alphabet !! a) : replicate n 'ʹ'\n  where alphabet = ['a'..'z']\n        (n, a) = i `divMod` length alphabet\n\ninstance Show Name where\n  showsPrec _ = prettyShowString . Text.unpack . formatName\n    where prettyShowString str = showChar '\"' . foldr ((.) . prettyChar) id str . showChar '\"'\n          prettyChar c\n            | c `elem` ['\\\\', '\\\"'] = Char.showLitChar c\n            | Char.isPrint c        = showChar c\n            | otherwise             = Char.showLitChar c\n\ninstance Hashable Name where\n  hashWithSalt salt (Name name) = hashWithSalt salt name\n  hashWithSalt salt (I i)       = salt `hashWithSalt` (1 :: Int) `hashWithSalt` i\n\ninstance ToJSON Name where\n  toJSON = toJSON . formatName\n  toEncoding = toEncoding . formatName\n\n\n-- De Bruijn indices & levels\n\n-- | De Bruijn levels.\nnewtype Level = Level { getLevel :: Int }\n  deriving (Eq, Ord, Show)\n\n-- | De Bruijn indicex.\nnewtype Index = Index { getIndex :: Int }\n  deriving (Eq, Ord, Show)\n\n\n-- Conversions\n\nlevelToIndex :: Level -> Level -> Index\nlevelToIndex (Level d) (Level level) = Index (d - level - 1)\n\nindexToLevel :: Level -> Index -> Level\nindexToLevel (Level d) (Index index) = Level (d - index - 1)\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Project.hs",
    "content": "module Analysis.Project\n  ( Project (..)\n  , projectExtensions\n  , projectName\n  , projectFiles\n  ) where\n\nimport Prelude hiding (readFile)\n\nimport           Analysis.Blob\nimport           Analysis.File\nimport           Data.Text (Text)\nimport qualified Data.Text as T\nimport           Source.Language\nimport           System.FilePath (takeFileName)\n\n-- | A 'Project' contains all the information that semantic needs\n-- to execute an analysis, diffing, or graphing pass.\ndata Project = Project\n  { projectRootDir     :: FilePath\n  , projectBlobs       :: [Blob]\n  , projectLanguage    :: Language\n  , projectExcludeDirs :: [FilePath]\n  } deriving (Eq, Show)\n\nprojectName :: Project -> Text\nprojectName = T.pack . takeFileName . projectRootDir\n\nprojectExtensions :: Project -> [String]\nprojectExtensions = extensionsForLanguage . projectLanguage\n\nprojectFiles :: Project -> [File Language]\nprojectFiles = fmap blobFile . projectBlobs\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Reference.hs",
    "content": "module Analysis.Reference\n( -- * Reference\n  Reference(..)\n  -- * Constructors\n, fromPath\n) where\n\nimport Source.Span\n\n-- Reference\n\ndata Reference = Reference\n  { refPath :: FilePath\n  , refSpan :: Span\n  }\n  deriving (Eq, Ord, Show)\n\n\n-- Constructors\n\nfromPath :: FilePath -> Reference\nfromPath p = Reference p (point (Pos 0 0))\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Syntax/Python.hs",
    "content": "{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE LambdaCase #-}\n-- | This belongs in @semantic-python@ instead of @semantic-analysis@, but for the sake of expedience…\nmodule Analysis.Syntax.Python\n( -- * Syntax\n  Term(..)\n, subterms\n  -- * Abstract interpretation\n, eval0\n, eval\n  -- * Parsing\n, parse\n) where\n\nimport           Analysis.Effect.Domain hiding ((:>>>))\nimport qualified Analysis.Effect.Statement as S\nimport           Analysis.Name\nimport           Analysis.Reference\nimport           Analysis.VM\nimport           Control.Effect.Labelled\nimport           Control.Effect.Reader\nimport           Control.Monad (foldM)\nimport           Data.Foldable (for_)\nimport           Data.Function (fix)\nimport           Data.List.NonEmpty (nonEmpty)\nimport           Data.Maybe (mapMaybe)\nimport qualified Data.Set as Set\nimport           Data.Text (pack)\nimport qualified Language.Python.Common as Py\nimport           Language.Python.Version3.Parser\nimport           Source.Span (Pos (..), Span (..), point)\nimport           System.FilePath (takeBaseName)\n\n-- Syntax\n\ndata Term\n  = Module (Py.Module Py.SrcSpan)\n  | Statement (Py.Statement Py.SrcSpan)\n  | Expr (Py.Expr Py.SrcSpan)\n  deriving (Eq, Ord, Show)\n\n-- | Non-generic production of the recursive set of subterms.\n--\n-- This should be exactly the set of nodes which 'eval' can visit, i.e. it excludes comments, etc.\nsubterms :: Term -> Set.Set Term\nsubterms t = Set.insert t $ case t of\n  Module (Py.Module ss)                 -> suite ss\n  Statement (Py.Conditional cts e _)    -> foldMap (\\ (c, t) -> subterms (Expr c) <> suite t) cts <> suite e\n  Statement (Py.Raise (Py.RaiseV3 e) _) -> maybe Set.empty (subterms . Expr . fst) e\n  -- FIXME: Py.RaiseV2\n  -- FIXME: whatever the second field is\n  Statement (Py.StmtExpr e _)           -> subterms (Expr  e)\n  Statement (Py.Fun _ _ _ ss _)         -> suite ss\n  -- FIXME: include 'subterms' of any default values\n  Expr (Py.Call f as _)                 -> subterms (Expr f) <> foldMap (\\case { Py.ArgExpr e _ -> subterms (Expr e) ; _ -> Set.empty }) as\n  -- FIXME: support keyword args &c.\n  _                                     -> Set.empty -- TBD, and terminals\n  where\n  suite = foldMap (subterms . Statement)\n\n\n-- Abstract interpretation\n\neval0 :: (Has (Env addr) sig m, HasLabelled Store (Store addr val) sig m, Has (Dom val) sig m, Has (Reader Reference) sig m, Has S.Statement sig m, MonadFail m) => Term -> m val\neval0 = fix eval\n\neval\n  :: (Has (Env addr) sig m, HasLabelled Store (Store addr val) sig m, Has (Dom val) sig m, Has (Reader Reference) sig m, Has S.Statement sig m, MonadFail m)\n  => (Term -> m val)\n  -> (Term -> m val)\neval eval = \\case\n  Module (Py.Module ss) -> suite ss\n  Statement (Py.Import is sp) -> setSpan sp $ do\n    for_ is $ \\ Py.ImportItem{ Py.import_item_name = ns } -> case nonEmpty ns of\n      Nothing -> pure ()\n      Just ss -> S.simport (pack . Py.ident_string <$> ss)\n    dunit\n  Statement (Py.Pass sp) -> setSpan sp dunit\n  Statement (Py.Conditional cts e sp) -> setSpan sp $ foldr (\\ (c, t) e -> do\n    c' <- eval (Expr c)\n    dif c' (suite t) e) (suite e) cts\n  Statement (Py.Raise (Py.RaiseV3 e) sp) -> setSpan sp $ case e of\n    Just (e, _) -> eval (Expr e) >>= ddie -- FIXME: from clause\n    Nothing     -> dunit >>= ddie\n    -- FIXME: RaiseV2\n    -- FIXME: whatever the second field is\n  Statement (Py.StmtExpr e sp) -> setSpan sp (eval (Expr e))\n  Statement (Py.Fun n ps _r ss sp) -> let ps' = mapMaybe (\\case { Py.Param n _ _ _ -> Just (ident n) ; _ -> Nothing }) ps in setSpan sp $ letrec (ident n) (dabs ps' (foldr (\\ (p, a) m -> let' p a m) (suite ss) . zip ps'))\n  Expr (Py.Var n sp) -> setSpan sp $ let n' = ident n in lookupEnv n' >>= maybe (dvar n') fetch\n  Expr (Py.Bool b sp) -> setSpan sp $ dbool b\n  Expr (Py.Strings ss sp) -> setSpan sp $ dstring (pack (mconcat ss))\n  Expr (Py.Call f as sp) -> setSpan sp $ do\n    f' <- eval (Expr f)\n    as' <- traverse eval (mapMaybe (\\case { Py.ArgExpr e _ -> Just (Expr e) ; _ -> Nothing }) as)\n    -- FIXME: support keyword args &c.\n    dapp f' as'\n  _ -> fail \"TBD\"\n  where\n  setSpan s = case fromSpan s of\n    Just s -> local (\\ r -> r{ refSpan = s })\n    _      -> id\n  fromSpan Py.SpanEmpty                     = Nothing\n  fromSpan (Py.SpanPoint _ l c)             = Just (point (Pos l c))\n  fromSpan (Py.SpanCoLinear _ l c1 c2)      = Just (Span (Pos l c1) (Pos l c2))\n  fromSpan (Py.SpanMultiLine _ l1 l2 c1 c2) = Just (Span (Pos l1 c1) (Pos l2 c2))\n  suite []     = dunit\n  suite (s:ss) = do\n    s' <- eval (Statement s)\n    foldM (\\ into each -> do\n      each' <- eval (Statement each)\n      into >>> each') s' ss\n  ident = name . pack . Py.ident_string\n\n\n-- Parsing\n\nparse :: FilePath -> IO Term\nparse path = do\n  src <- readFile path\n  case parseModule src (takeBaseName path) of\n    Left err                -> fail (show err)\n    Right (Py.Module ss, _) -> pure (Module (Py.Module ss))\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/Syntax.hs",
    "content": "{-# LANGUAGE RankNTypes #-}\n{-# LANGUAGE UndecidableInstances #-}\nmodule Analysis.Syntax\n( -- * Syntax\n  Term(..)\n, subterms\n, foldTerm\n, paraTerm\n, mendlerTerm\n, mendlerParaTerm\n) where\n\nimport qualified Data.Set as Set\n\n-- Syntax\n\n-- | (Currently) untyped term representations.\ndata Term sig v\n  = Var v\n  | Term (sig (Term sig v))\n\ninstance (Eq (sig (Term sig v)), Eq v) => Eq (Term sig v) where\n  Var v1  == Var v2  = v1 == v2\n  Term s1 == Term s2 = s1 == s2\n  _       == _       = False\n\ninstance (Ord (sig (Term sig v)), Ord v) => Ord (Term sig v) where\n  compare (Var v1)  (Var v2)  = compare v1 v2\n  compare (Var _)   _         = LT\n  compare (Term s1) (Term s2) = compare s1 s2\n  compare _          _        = GT\n\n\nsubterms :: (Ord (sig (Term sig v)), Ord v, Foldable sig) => Term sig v -> Set.Set (Term sig v)\nsubterms = mendlerParaTerm (Set.singleton . Var) (\\ k -> foldMap (uncurry Set.insert . k))\n\nfoldTerm :: Functor sig => (v -> r) -> (sig r -> r) -> (Term sig v -> r)\nfoldTerm var sig = mendlerTerm var (\\ k -> sig . fmap k)\n\nparaTerm :: Functor sig => (v -> r) -> (sig (Term sig v, r) -> r) -> (Term sig v -> r)\nparaTerm var sig = mendlerParaTerm var (\\ k -> sig . fmap k)\n\nmendlerTerm :: (v -> r) -> (forall r' . (r' -> r) -> sig r'-> r) -> (Term sig v -> r)\nmendlerTerm var sig = go\n  where\n  go (Var v)  = var v\n  go (Term s) = sig go s\n\nmendlerParaTerm :: (v -> r) -> (forall r' . (r' -> (Term sig v, r)) -> sig r'-> r) -> (Term sig v -> r)\nmendlerParaTerm var sig = go\n  where\n  go (Var v)  = var v\n  go (Term s) = sig ((,) <*> go) s\n"
  },
  {
    "path": "semantic-analysis/src/Analysis/VM.hs",
    "content": "{-# LANGUAGE FlexibleContexts #-}\nmodule Analysis.VM\n( -- * Macro-expressible syntax\n  let'\n, letrec\n  -- * Re-exports\n, module Analysis.Effect.Env\n, module Analysis.Effect.Store\n) where\n\nimport Analysis.Effect.Env\nimport Analysis.Effect.Store\nimport Analysis.Name\nimport Control.Effect.Labelled\n\n-- Macro-expressible syntax\n\nlet' :: (Has (Env addr) sig m, HasLabelled Store (Store addr val) sig m) => Name -> val -> m a -> m a\nlet' n v m = do\n  addr <- alloc n\n  addr .= v\n  bind n addr m\n\nletrec :: (Has (Env addr) sig m, HasLabelled Store (Store addr val) sig m) => Name -> m val -> m val\nletrec n m = do\n  addr <- alloc n\n  v <- bind n addr m\n  addr .= v\n  pure v\n"
  },
  {
    "path": "semantic-ast/BUILD.bazel",
    "content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\n    \"@rules_haskell//haskell:defs.bzl\",\n    \"haskell_binary\",\n    \"haskell_library\",\n)\nload(\n    \"@rules_haskell//haskell:cabal.bzl\",\n    \"haskell_cabal_binary\",\n    \"haskell_cabal_library\",\n)\nload(\n    \"//:build/common.bzl\",\n    \"EXECUTABLE_FLAGS\",\n    \"GHC_FLAGS\",\n)\n\nhaskell_library(\n    name = \"semantic-ast\",\n    srcs = glob([\"src/**/*.hs\"]),\n    compiler_flags = GHC_FLAGS + [\"-XOverloadedStrings\"],\n    deps = [\n        \"//:base\",\n        \"//:bytestring\",\n        \"//:containers\",\n        \"//:filepath\",\n        \"//:template-haskell\",\n        \"//:text\",\n        \"//semantic-source\",\n        \"@stackage//:Glob\",\n        \"@stackage//:aeson\",\n        \"@stackage//:aeson-pretty\",\n        \"@stackage//:attoparsec\",\n        \"@stackage//:bazel-runfiles\",\n        \"@stackage//:directory\",\n        \"@stackage//:fused-effects\",\n        \"@stackage//:hedgehog\",\n        \"@stackage//:optparse-applicative\",\n        \"@stackage//:pathtype\",\n        \"@stackage//:pretty-simple\",\n        \"@stackage//:tasty\",\n        \"@stackage//:tasty-hedgehog\",\n        \"@stackage//:tasty-hunit\",\n        \"@stackage//:tree-sitter\",\n        \"@stackage//:tree-sitter-python\",\n        \"@stackage//:unordered-containers\",\n    ],\n)\n\nall_ts_deps = [\"@tree-sitter-{name}\".format(name = name) for name in [\n    \"go\",\n    \"java\",\n    \"json\",\n    \"php\",\n    \"python\",\n    \"ql\",\n    \"ruby\",\n    \"rust\",\n    \"tsx\",\n    \"typescript\",\n]]\n\nall_file_deps = [\"@tree-sitter-{name}//:src/node-types.json\".format(name = name) for name in [\n    \"go\",\n    \"java\",\n    \"json\",\n    \"php\",\n    \"python\",\n    \"ql\",\n    \"ruby\",\n    \"rust\",\n    \"tsx\",\n    \"typescript\",\n]]\n\nhaskell_binary(\n    name = \"generate-ast\",\n    srcs = glob([\"app/**/*.hs\"]),\n    compiler_flags = GHC_FLAGS + EXECUTABLE_FLAGS + [\"-XStrictData\"],\n    data = all_file_deps,\n    deps = [\n        \":semantic-ast\",\n        \"//:base\",\n        \"//:filepath\",\n        \"//:process\",\n        \"//:template-haskell\",\n        \"//:text\",\n        \"//semantic-source\",\n        \"@stackage//:bazel-runfiles\",\n        \"@stackage//:directory\",\n        \"@stackage//:generic-lens\",\n        \"@stackage//:lens\",\n        \"@stackage//:neat-interpolation\",\n        \"@stackage//:optparse-generic\",\n        \"@stackage//:tree-sitter\",\n    ] + all_ts_deps,\n)\n"
  },
  {
    "path": "semantic-ast/CHANGELOG.md",
    "content": "# Revision history for semantic-ast\n\n## 0.1.0.0 -- YYYY-mm-dd\n\n* First version. Released on an unsuspecting world.\n"
  },
  {
    "path": "semantic-ast/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 GitHub\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "semantic-ast/README.md",
    "content": "# semantic-ast\n\nThis package is concerned with the CodeGen generation of strongly-typed ASTs.\n\nThe provided `semantic-ast` executable is responsible for generating ASTs from language definitions. You can run it like so:\n\n```\ncabal run semantic-ast -- --language=JSON\n```\n\nYou can also pass `all` to regenerate every language definition:\n\n```\ncabal run semantic-ast -- --language=all\n```\n\n[Documentation](https://github.com/github/semantic/blob/master/docs/codegen.md)\n"
  },
  {
    "path": "semantic-ast/Setup.hs",
    "content": "import Distribution.Simple\nmain = defaultMain\n"
  },
  {
    "path": "semantic-ast/app/Main.hs",
    "content": "{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE DerivingStrategies #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE LambdaCase #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE QuasiQuotes #-}\n{-# LANGUAGE TemplateHaskell #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeSynonymInstances #-}\n{-# OPTIONS_GHC -fno-warn-orphans #-}\n\nmodule Main (main) where\n\nimport AST.GenerateSyntax\nimport qualified Bazel.Runfiles as Bazel\nimport Control.Lens (Traversal', mapped, (%~))\nimport Control.Monad\nimport Data.Foldable\nimport Data.Generics.Product.Typed (typed)\nimport Data.Maybe\nimport Data.Text (Text)\nimport qualified Data.Text as T\nimport qualified Data.Text.IO as T\nimport Foreign\nimport GHC.Generics (Generic)\nimport Language.Haskell.TH hiding (JavaScript)\nimport Language.Haskell.TH.Lens\nimport NeatInterpolation\nimport qualified Options.Generic as Opt\nimport Source.Language\nimport System.FilePath\nimport System.Directory\nimport System.Exit\nimport System.IO\nimport System.Process\nimport Text.Printf\nimport qualified TreeSitter.Go as Go (tree_sitter_go)\nimport qualified TreeSitter.JSON as JSON (tree_sitter_json)\nimport qualified TreeSitter.Java as Java (tree_sitter_java)\nimport qualified TreeSitter.Language\nimport qualified TreeSitter.PHP as PHP (tree_sitter_php)\nimport qualified TreeSitter.Python as Python (tree_sitter_python)\nimport qualified TreeSitter.QL as CodeQL (tree_sitter_ql)\nimport qualified TreeSitter.Ruby as Ruby (tree_sitter_ruby)\nimport qualified TreeSitter.TSX as TSX (tree_sitter_tsx)\nimport qualified TreeSitter.TypeScript as TypeScript (tree_sitter_typescript)\n\n-- As a special case, you can pass\ndata Config = Config {language :: Text, rootdir :: FilePath}\n  deriving stock (Show, Generic)\n  deriving anyclass (Opt.ParseRecord)\n\n-- There are a few cases where the output emitted by TH's 'pprint' doesn't\n-- create entirely valid Haskell syntax, because sometimes we get\n-- a qualified name on the LHS of a typeclass declaration, which Haskell\n-- doesn't like at all. I haven't figured out quite why we get this qualified\n-- name, but for now the easiest thing to do is some nested updates with lens.\nadjust :: Dec -> Dec\nadjust = _InstanceD . typed . mapped %~ (values %~ truncate) . (functions %~ truncate)\n  where\n    -- Need to handle functions with no arguments, which are parsed as ValD entities,\n    -- as well as those with arguments, which are FunD.\n    values, functions :: Traversal' Dec Name\n    values = _ValD . typed . _VarP\n    functions = _FunD . typed\n\n    truncate :: Name -> Name\n    truncate = mkName . nameBase\n\npathForLanguage :: Bazel.Runfiles -> Language -> FilePath\npathForLanguage rf =\n  let loc = Bazel.rlocation rf\n   in \\case\n        CodeQL -> loc \"tree-sitter-ql/vendor/tree-sitter-ql/src/node-types.json\"\n        Go -> loc \"tree-sitter-go/vendor/tree-sitter-go/src/node-types.json\"\n        PHP -> loc \"tree-sitter-php/vendor/tree-sitter-php/src/node-types.json\"\n        Python -> loc \"tree-sitter-python/vendor/tree-sitter-python/src/node-types.json\"\n        Ruby -> loc \"tree-sitter-ruby/vendor/tree-sitter-ruby/src/node-types.json\"\n        TypeScript -> loc \"tree-sitter-typescript/vendor/tree-sitter-typescript/typescript/src/node-types.json\"\n        TSX -> loc \"tree-sitter-tsx/vendor/tree-sitter-typescript/tsx/src/node-types.json\"\n        JavaScript -> loc \"tree-sitter-typescript/vendor/tree-sitter-typescript/typescript/src/node-types.json\"\n        JSX -> loc \"tree-sitter-typescript/vendor/tree-sitter-typescript/src/tsx/node-types.json\"\n        Java -> loc \"tree-sitter-java/vendor/tree-sitter-java/src/node-types.json\"\n        other -> error (\"Couldn't find path for \" <> show other)\n\ntargetForLanguage :: Language -> FilePath\ntargetForLanguage x =\n  let go lc = printf \"semantic-%s/src/Language/%s/AST.hs\" (lc :: String) (show x)\n   in case x of\n        CodeQL -> go \"codeql\"\n        Go -> go \"go\"\n        PHP -> go \"php\"\n        Python -> go \"python\"\n        Ruby -> go \"ruby\"\n        TypeScript -> go \"typescript\"\n        TSX -> go \"tsx\"\n        JavaScript -> go \"javascript\"\n        Java -> go \"java\"\n        other -> error (\"Couldn't find path for \" <> show other)\n\nparserForLanguage :: Language -> Ptr TreeSitter.Language.Language\nparserForLanguage = \\case\n  Unknown -> error \"Unknown language encountered\"\n  CodeQL -> (CodeQL.tree_sitter_ql)\n  Go -> Go.tree_sitter_go\n  Haskell -> error \"Haskell backend not implemented yet\"\n  Java -> Java.tree_sitter_java\n  JavaScript -> TypeScript.tree_sitter_typescript\n  JSON -> JSON.tree_sitter_json\n  JSX -> TSX.tree_sitter_tsx\n  Markdown -> error \"Markdown backend deprecated\"\n  PHP -> PHP.tree_sitter_php\n  Python -> Python.tree_sitter_python\n  Ruby -> Ruby.tree_sitter_ruby\n  TypeScript -> TypeScript.tree_sitter_typescript\n  TSX -> TSX.tree_sitter_tsx\n\n-- nodeTypesPathForLanguage :: Bazel.Runfiles -> Language -> FilePath\n-- nodeTypesPathForLanguage rf = \\case\n--   CodeQL -> r\n\nvalidLanguages :: [Language]\nvalidLanguages = [CodeQL, Go, Java, PHP, Python, Ruby, TypeScript, TSX]\n\nemit :: FilePath -> Language -> IO ()\nemit root lang = do\n  rf <- Bazel.create\n  let language = languageToText lang\n  let languageHack = case lang of\n        CodeQL -> \"QL\"\n        _ -> language\n  let path = pathForLanguage rf lang\n  decls <- T.pack . pprint . fmap adjust <$> astDeclarationsIO (parserForLanguage lang) path\n\n  let programText =\n        [trimming|\n-- Language definition for $language, generated by ast-generate. Do not edit!\n{-# LANGUAGE CPP #-}\n{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE DeriveTraversable #-}\n{-# LANGUAGE DerivingStrategies #-}\n{-# LANGUAGE DuplicateRecordFields #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE QuantifiedConstraints #-}\n{-# LANGUAGE StandaloneDeriving #-}\n{-# LANGUAGE TemplateHaskell #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\n{-# OPTIONS_GHC -fno-warn-unused-imports #-}\n\nmodule Language.$language.AST (module Language.$language.AST, getTestCorpusDir) where\n\nimport qualified AST.Parse\nimport qualified AST.Token\nimport qualified AST.Traversable1.Class\nimport qualified AST.Unmarshal\nimport qualified Data.Foldable\nimport qualified Data.List as Data.OldList\nimport qualified Data.Maybe as GHC.Maybe\nimport qualified Data.Text.Internal\nimport qualified Data.Traversable\nimport qualified GHC.Base\nimport qualified GHC.Generics\nimport qualified GHC.Records\nimport qualified GHC.Show\nimport qualified Prelude as GHC.Classes\nimport qualified TreeSitter.Node\n\nimport TreeSitter.$languageHack (getTestCorpusDir)\n\ndebugSymbolNames :: [GHC.Base.String]\ndebugSymbolNames = debugSymbolNames_0\n\n$decls\n  |]\n  hasOrmolu <- findExecutable \"ormolu\"\n  if isNothing hasOrmolu\n    then do\n      T.putStrLn programText\n      hPutStrLn stderr \"generate-ast: No `ormolu` executable found, output will look janky.\"\n    else do\n      (path, tf) <- openTempFile \"/tmp\" \"generated.hs\"\n      T.hPutStrLn tf programText\n      hClose tf\n      callProcess \"ormolu\" [\"--mode\", \"inplace\", path]\n      callProcess \"cp\" [path, root </> targetForLanguage lang]\n\nmain :: IO ()\nmain = do\n  Config language root <- Opt.getRecord \"generate-ast\"\n  if language == \"all\"\n    then traverse_ (emit root) validLanguages\n    else do\n      let lang = textToLanguage language\n      when (lang == Unknown) (die (\"Couldn't determine language for \" <> T.unpack language))\n      emit root lang\n"
  },
  {
    "path": "semantic-ast/semantic-ast.cabal",
    "content": "cabal-version:       2.4\n-- Initial package description 'semantic-ast.cabal' generated by 'cabal\n-- init'.  For further documentation, see\n-- http://haskell.org/cabal/users-guide/\n\nname:                semantic-ast\nversion:             0.1.0.0\n-- synopsis:\n-- description:\n-- bug-reports:\nlicense:             MIT\nlicense-file:        LICENSE\nauthor:              The Semantic Authors\nmaintainer:          opensource+semantic@github.com\ncopyright:           (c) 2019 GitHub, Inc.\ncategory:            Language\nextra-source-files:  CHANGELOG.md\n\ntested-with:         GHC == 8.6.5\n\ncommon haskell\n  default-language:    Haskell2010\n  ghc-options:\n    -Weverything\n    -Wno-missing-local-signatures\n    -Wno-missing-import-lists\n    -Wno-implicit-prelude\n    -Wno-safe\n    -Wno-unsafe\n    -Wno-name-shadowing\n    -Wno-monomorphism-restriction\n    -Wno-missed-specialisations\n    -Wno-all-missed-specialisations\n    -Wno-star-is-type\n  if (impl(ghc >= 8.8))\n    ghc-options: -Wno-missing-deriving-strategies\n  if (impl(ghc >= 8.10))\n    ghc-options:\n      -Wno-missing-safe-haskell-mode\n      -Wno-prepositive-qualified-module\n  if (impl(ghc >= 9.2))\n    ghc-options:\n      -Wno-missing-kind-signatures\n  cpp-options:\n    -DBAZEL_BUILD=0\n\nlibrary\n  import:              haskell\n  exposed-modules:\n    AST.Deserialize\n    AST.Element\n    AST.GenerateSyntax\n    AST.Grammar.TH\n    AST.Marshal.JSON\n    AST.Parse\n    AST.Token\n    AST.Traversable1\n    AST.Traversable1.Class\n    AST.Unmarshal\n    AST.TestHelpers\n    System.Path.Fixture\n\n\n  -- other-modules:\n  -- other-extensions:\n  build-depends:\n    , aeson           >= 1.4.2.0 && < 3\n    , attoparsec           >= 0.13.2.2 && < 0.15\n    , base                  >= 4.13 && < 5\n    , bytestring                   >= 0.10.8.2 && < 0.13\n    , containers ^>= 0.6.2\n    , directory            ^>= 1.3.3.2\n    , filepath             ^>= 1.4.1\n    , fused-effects        ^>= 1.1\n    , Glob                 ^>= 0.10.0\n    , semantic-source      ^>= 0.2\n    , tasty                ^>= 1.2.3\n    , tasty-hunit          ^>= 0.10.0.2\n    , template-haskell      >= 2.15 && < 2.22\n    , text                 ^>= 1.2.3.1\n    , tree-sitter          ^>= 0.9.0.0\n    , unordered-containers ^>= 0.2.10\n\n  hs-source-dirs:      src\n"
  },
  {
    "path": "semantic-ast/src/AST/Deserialize.hs",
    "content": "{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE DerivingStrategies #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE DeriveLift #-}\n\n-- Turn off partial field warnings for Datatype.\n{-# OPTIONS_GHC -Wno-partial-fields #-}\nmodule AST.Deserialize\n( Datatype (..)\n, Field (..)\n, Children(..)\n, Required (..)\n, Type (..)\n, DatatypeName (..)\n, Named (..)\n, Multiple (..)\n) where\n\nimport Data.Aeson as Aeson\nimport Data.Aeson.Types\nimport Data.Char\nimport GHC.Generics hiding (Constructor, Datatype)\nimport Language.Haskell.TH.Syntax (Lift)\nimport Data.Text (Text, unpack)\nimport Data.List.NonEmpty (NonEmpty (..))\nimport qualified Data.HashMap.Strict as HM\nimport Data.Maybe (fromMaybe)\n\n-- Types to deserialize into:\ndata Datatype\n  = SumType\n  { datatypeName       :: DatatypeName\n  , datatypeNameStatus :: Named\n  , datatypeSubtypes   :: NonEmpty Type\n  }\n  | ProductType\n  { datatypeName       :: DatatypeName\n  , datatypeNameStatus :: Named\n  , datatypeChildren   :: Maybe Children\n  , datatypeFields     :: [(String, Field)]\n  }\n  | LeafType\n  { datatypeName       :: DatatypeName\n  , datatypeNameStatus :: Named\n  }\n  deriving (Eq, Ord, Show, Generic, ToJSON)\n\ninstance FromJSON Datatype where\n  parseJSON = withObject \"Datatype\" $ \\v -> do\n    type' <- v .: \"type\"\n    named <- v .: \"named\"\n    subtypes <- v .:? \"subtypes\"\n    case subtypes of\n      Nothing -> do\n        fields <- fmap (fromMaybe HM.empty) (v .:? \"fields\")\n        children <- v .:? \"children\"\n        if null fields && null children then\n          pure (LeafType type' named)\n        else\n          ProductType type' named children <$> parseKVPairs (HM.toList fields)\n      Just subtypes   -> pure (SumType type' named subtypes)\n\n\n-- | Transforms list of key-value pairs to a Parser\nparseKVPairs :: [(Text, Value)] -> Parser [(String, Field)]\nparseKVPairs = traverse go\n  where go :: (Text, Value) -> Parser (String, Field)\n        go (t,v) = do\n          v' <- parseJSON v\n          pure (unpack t, v')\n\ndata Field = MkField\n  { fieldRequired :: Required\n  , fieldTypes    :: NonEmpty Type\n  , fieldMultiple :: Multiple\n  }\n  deriving (Eq, Ord, Show, Generic, ToJSON)\n\ninstance FromJSON Field where\n  parseJSON = genericParseJSON customOptions\n\n\nnewtype Children = MkChildren Field\n  deriving (Eq, Ord, Show, Generic)\n  deriving newtype (ToJSON, FromJSON)\n\n\ndata Required = Optional | Required\n  deriving (Eq, Ord, Show, Generic, ToJSON)\n\ninstance FromJSON Required where\n  parseJSON = withBool \"Required\" (\\p -> pure (if p then Required else Optional))\n\ndata Type = MkType\n  { fieldType :: DatatypeName\n  , isNamed :: Named\n  }\n  deriving (Eq, Ord, Show, Generic, ToJSON)\n\ninstance FromJSON Type where\n  parseJSON = genericParseJSON customOptions\n\nnewtype DatatypeName = DatatypeName { getDatatypeName :: String }\n  deriving (Eq, Ord, Show, Generic)\n  deriving newtype (FromJSON, ToJSON)\n\ndata Named = Anonymous | Named\n  deriving (Eq, Ord, Show, Generic, ToJSON, Lift)\n\ninstance FromJSON Named where\n  parseJSON = withBool \"Named\" (\\p -> pure (if p then Named else Anonymous))\n\ndata Multiple = Single | Multiple\n  deriving (Eq, Ord, Show, Generic, ToJSON)\n\ninstance FromJSON Multiple where\n  parseJSON = withBool \"Multiple\" (\\p -> pure (if p then Multiple else Single))\n\ncustomOptions :: Aeson.Options\ncustomOptions = Aeson.defaultOptions\n  {\n    fieldLabelModifier = initLower . dropPrefix\n  , constructorTagModifier = initLower\n  }\n\ndropPrefix :: String -> String\ndropPrefix = Prelude.dropWhile isLower\n\ninitLower :: String -> String\ninitLower (c:cs) = toLower c : cs\ninitLower \"\" = \"\""
  },
  {
    "path": "semantic-ast/src/AST/Element.hs",
    "content": "{-# LANGUAGE AllowAmbiguousTypes, DataKinds, FlexibleInstances, MultiParamTypeClasses, PatternSynonyms, ScopedTypeVariables, TypeApplications, TypeFamilies, TypeOperators, UndecidableInstances, ViewPatterns #-}\nmodule AST.Element\n( Element(..)\n, pattern Prj\n, pattern EPrj\n, (:+:)(..)\n) where\n\nimport qualified AST.Parse as Parse\nimport GHC.Generics ((:+:)(..))\nimport GHC.TypeLits (ErrorMessage(..), TypeError)\n\n-- | Projection of an element out of a tree of sums, particularly suitable for use with highly branching (e.g. balanced) trees. This provides custom type errors when the tree is known statically, rather than provided via a constraint passed on to callers.\nclass Element sub sup where\n  -- | Project one element out of a sum type.\n  prj :: sup a -> Maybe (sub a)\n\ninstance (Element' side sub sup, side ~ Find sub sup) => Element sub sup where\n  prj = prj' @side\n\n-- | A pattern synonym to conveniently project out matching elements.\npattern Prj :: Element sub sup => sub a -> sup a\npattern Prj sub <- (prj -> Just sub)\n\n\n-- A pattern synonym that combines matching on @Success@ and @Prj@\neprj :: Element sub sup => Parse.Err (sup a) -> Maybe (sub a)\neprj (Parse.Success x) = prj x\neprj _ = Nothing\n\npattern EPrj :: Element sub sup => sub a -> Parse.Err (sup a)\npattern EPrj sub <- (eprj -> Just sub)\n\n-- | Where does the element occur in the tree?\ndata Side = None | Here | L | R\n\n-- | Find where in a tree an element occurs.\ntype family Find sub sup :: Side where\n  Find t t         = 'Here\n  Find t (l :+: r) = Find' 'L t l <> Find' 'R t r\n  Find _ _         = 'None\n\n-- | Helper to compute the side an element occurs on.\ntype family Find' (side :: Side) sub sup :: Side where\n  Find' s t t         = s\n  Find' s t (l :+: r) = Find' s t l <> Find' s t r\n  Find' _ _ _         = 'None\n\n-- | Return the leftmost non-'None' side, or 'None'.\ntype family (a :: Side) <> (b :: Side) :: Side where\n  'None <> b = b\n  a     <> _ = a\n\n-- | Helper to project elements out of the matching portion of a tree.\nclass Element' (side :: Side) sub sup where\n  prj' :: sup a -> Maybe (sub a)\n\n-- | Membership is reflexive.\ninstance Element' 'Here t t where\n  prj' = Just\n\n-- | Membershp on the left.\ninstance Element     t l\n      => Element' 'L t (l :+: r) where\n  prj' (L1 l) = prj l\n  prj' _      = Nothing\n\n-- | Membership on the right.\ninstance Element     t r\n      => Element' 'R t (l :+: r) where\n  prj' (R1 r) = prj r\n  prj' _      = Nothing\n\n\n-- | Error cases, with custom type errors.\ninstance TypeError\n           (     'ShowType t ':<>: 'Text \" is not in\"\n           ':$$: ShowSum u)\n      => Element' 'None t u where\n  prj' _ = Nothing\n\n\n-- | Show a sum tree as a set (for use in type errors).\ntype family ShowSum t where\n  ShowSum (l :+: r) = ShowSum' ('Text \"{ \") (l :+: r) ':$$: 'Text \"}\"\n  ShowSum t         = 'Text \"{ \" ':<>: 'ShowType t ':<>: 'Text \" }\"\n\n-- | Helper for formatting & aligning sums nicely with a prefix.\ntype family ShowSum' p t where\n  ShowSum' p (l :+: r) = ShowSum' p l ':$$: ShowSum' ('Text \", \") r\n  ShowSum' p t         = p ':<>: 'ShowType t\n"
  },
  {
    "path": "semantic-ast/src/AST/GenerateSyntax.hs",
    "content": "{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE LambdaCase #-}\n{-# LANGUAGE RankNTypes #-}\n{-# LANGUAGE StandaloneDeriving #-}\n{-# LANGUAGE TemplateHaskell #-}\n{-# LANGUAGE TypeApplications #-}\nmodule AST.GenerateSyntax\n( syntaxDatatype\n, astDeclarationsForLanguage\n, astDeclarationsIO\n) where\n\nimport           AST.Deserialize\n    (Children (..), Datatype (..), DatatypeName (..), Field (..), Multiple (..), Named (..), Required (..), Type (..))\nimport qualified AST.Parse as Parse\nimport           AST.Token\nimport           AST.Traversable1.Class\nimport qualified AST.Unmarshal as TS\nimport           Data.Aeson hiding (String)\nimport           Data.Foldable\nimport           Data.List (elemIndices, genericIndex, intercalate)\nimport           Data.List.NonEmpty (NonEmpty (..))\nimport           Data.Text (Text)\nimport           Foreign.C.String\nimport           Foreign.Ptr\nimport           GHC.Generics hiding (Constructor, Datatype)\nimport           GHC.Records\nimport           Language.Haskell.TH as TH\nimport           Language.Haskell.TH.Syntax as TH\nimport           System.Directory\nimport           System.FilePath.Posix\nimport qualified TreeSitter.Language as TS\nimport           TreeSitter.Node\nimport           TreeSitter.Symbol (TSSymbol, toHaskellCamelCaseIdentifier, toHaskellPascalCaseIdentifier)\n\n-- | Derive Haskell datatypes from a language and its @node-types.json@ file.\n--\n-- Datatypes will be generated according to the specification in the @node-types.json@ file, with anonymous leaf types defined as synonyms for the 'Token' datatype.\n--\n-- Any datatypes among the node types which have already been defined in the module where the splice is run will be skipped, allowing customization of the representation of parts of the tree. Note that this should be used sparingly, as it imposes extra maintenance burden, particularly when the grammar is changed. This may be used to e.g. parse literals into Haskell equivalents (e.g. parsing the textual contents of integer literals into 'Integer's), and may require defining 'TS.UnmarshalAnn' or 'TS.SymbolMatching' instances for (parts of) the custom datatypes, depending on where and how the datatype occurs in the generated tree, in addition to the usual 'Foldable', 'Functor', etc. instances provided for generated datatypes.\nastDeclarationsForLanguage :: Ptr TS.Language -> FilePath -> Q [Dec]\nastDeclarationsForLanguage language filePath = do\n  _ <- TS.addDependentFileRelative filePath\n  currentFilename <- loc_filename <$> location\n  pwd             <- runIO getCurrentDirectory\n  let invocationRelativePath = takeDirectory (pwd </> currentFilename) </> filePath\n  astDeclarationsRelative lookupTypeName language invocationRelativePath\n\nastDeclarationsIO :: Ptr TS.Language -> FilePath -> IO [Dec]\nastDeclarationsIO lang p = runQ (astDeclarationsRelative (const (pure Nothing)) lang p)\n\nastDeclarationsRelative :: (String -> Q (Maybe Name)) -> Ptr TS.Language -> FilePath -> Q [Dec]\nastDeclarationsRelative lookupName language invocationRelativePath = do\n  input <- runIO (eitherDecodeFileStrict' invocationRelativePath) >>= either fail pure\n  allSymbols <- runIO (getAllSymbols language)\n  debugSymbolNames <- [d|\n    debugSymbolNames :: [String]\n    debugSymbolNames = $(listE (map (litE . stringL . debugPrefix) allSymbols))\n    |]\n  mappend debugSymbolNames . concat @[] <$> traverse (syntaxDatatype lookupName language allSymbols) input\n\n-- Build a list of all symbols\ngetAllSymbols :: Ptr TS.Language -> IO [(String, Named)]\ngetAllSymbols language = do\n  count <- TS.ts_language_symbol_count language\n  traverse getSymbol [(0 :: TSSymbol) .. fromIntegral (pred count)]\n  where\n    getSymbol i = do\n      cname <- TS.ts_language_symbol_name language i\n      n <- peekCString cname\n      t <- TS.ts_language_symbol_type language i\n      let named = if t == 0 then Named else Anonymous\n      pure (n, named)\n\nannParameterName :: Name\nannParameterName = mkName \"a\"\n\n-- Auto-generate Haskell datatypes for sums, products and leaf types\nsyntaxDatatype :: (String -> Q (Maybe Name)) -> Ptr TS.Language -> [(String, Named)] -> Datatype -> Q [Dec]\nsyntaxDatatype lookupType language allSymbols datatype = skipDefined $ do\n  let traversalInstances = mappend <$> makeStandaloneDerivings (conT name) <*> makeTraversalInstances (conT name)\n      glue a b c = a : b <> c\n      name = mkName nameStr\n      generatedDatatype cons = dataD (cxt []) name [plainTV annParameterName] Nothing cons [deriveStockClause, deriveAnyClassClause]\n      deriveStockClause = derivClause (Just StockStrategy) [conT ''Generic, conT ''Generic1]\n      deriveAnyClassClause = derivClause (Just AnyclassStrategy) [ [t| (forall a. Traversable1 a) |] ]\n      deriveGN = derivClause (Just NewtypeStrategy) [conT ''TS.SymbolMatching]\n  case datatype of\n    SumType (DatatypeName _) _ subtypes ->\n      let types' = fieldTypesToNestedSum subtypes\n          fieldName = mkName (\"get\" <> nameStr)\n          con = recC name [varBangType fieldName (bangType strictness (types' `appT` varT annParameterName))]\n          hasFieldInstance = makeHasFieldInstance (conT name) (varE fieldName)\n          newType = newtypeD (cxt []) name [plainTV annParameterName] Nothing con [deriveGN, deriveStockClause, deriveAnyClassClause]\n      in glue <$> newType <*> hasFieldInstance <*> traversalInstances\n    ProductType datatypeName named children fields ->\n      let con = ctorForProductType datatypeName children fields\n          symbols = symbolMatchingInstance allSymbols name named datatypeName\n      in glue <$> generatedDatatype [con] <*> symbols <*> traversalInstances\n      -- Anonymous leaf types are defined as synonyms for the `Token` datatype\n    LeafType (DatatypeName datatypeName) Anonymous -> do\n      let tsSymbol = runIO $ withCStringLen datatypeName (\\(s, len) -> TS.ts_language_symbol_for_name language s len False)\n      fmap (pure @[]) (tySynD name [] (conT ''Token `appT` litT (strTyLit datatypeName) `appT` litT (tsSymbol >>= numTyLit . fromIntegral)))\n    LeafType datatypeName Named ->\n      let con = ctorForLeafType datatypeName annParameterName\n          symbols = symbolMatchingInstance allSymbols name Named datatypeName\n      in glue <$> generatedDatatype [con] <*> symbols <*> traversalInstances\n  where\n    -- Skip generating datatypes that have already been defined (overridden) in the module where the splice is running.\n    skipDefined m = do\n      isLocal <- lookupType nameStr >>= maybe (pure False) isLocalName\n      if isLocal then pure [] else m\n    nameStr = toNameString (datatypeNameStatus datatype) (getDatatypeName (AST.Deserialize.datatypeName datatype))\n\nmakeStandaloneDerivings :: TypeQ -> Q [Dec]\nmakeStandaloneDerivings ty =\n  [d|\n   deriving instance (Eq a) => Eq ($ty a)\n   deriving instance (Ord a) => Ord ($ty a)\n   deriving instance (Show a) => Show ($ty a)\n   instance TS.Unmarshal ($ty)\n   |]\n\nmakeTraversalInstances :: TypeQ -> Q [Dec]\nmakeTraversalInstances ty =\n  [d|\n  instance Foldable $ty where\n    foldMap = foldMapDefault1\n  instance Functor $ty where\n    fmap = fmapDefault1\n  instance Traversable $ty where\n    traverse = traverseDefault1\n  |]\n\nmakeHasFieldInstance :: TypeQ -> ExpQ -> Q [Dec]\nmakeHasFieldInstance ty elim =\n  [d|instance HasField \"ann\" ($ty a) a where\n      getField = TS.gann . $elim |]\n\n-- | Create TH-generated SymbolMatching instances for sums, products, leaves\nsymbolMatchingInstance :: [(String, Named)] -> Name -> Named -> DatatypeName -> Q [Dec]\nsymbolMatchingInstance allSymbols name named (DatatypeName str) = do\n  let tsSymbols = elemIndices (str, named) allSymbols\n      names = intercalate \", \" $ fmap (debugPrefix . (!!) allSymbols) tsSymbols\n  [d|instance TS.SymbolMatching $(conT name) where\n      matchedSymbols _   = $(lift tsSymbols)\n      showFailure _ node = \"expected \" <> $(litE (stringL names))\n                        <> \" but got \" <> if nodeSymbol node == 65535 then \"ERROR\" else genericIndex debugSymbolNames (nodeSymbol node)\n                        <> \" [\" <> show r1 <> \", \" <> show c1 <> \"] -\"\n                        <> \" [\" <> show r2 <> \", \" <> show c2 <> \"]\"\n        where TSPoint r1 c1 = nodeStartPoint node\n              TSPoint r2 c2 = nodeEndPoint node|]\n\n-- | Prefix symbol names for debugging to disambiguate between Named and Anonymous nodes.\ndebugPrefix :: (String, Named) -> String\ndebugPrefix (name, Named)     = name\ndebugPrefix (name, Anonymous) = \"_\" <> name\n\n-- | Build Q Constructor for product types (nodes with fields)\nctorForProductType :: DatatypeName -> Maybe Children -> [(String, Field)] -> Q Con\nctorForProductType constructorName children fields = ctorForTypes constructorName lists where\n  lists = annotation : fieldList <> childList\n  annotation = (\"ann\", varT annParameterName)\n  fieldList = map (fmap (toType)) fields\n  childList = toList $ fmap toTypeChild children\n\n  inject t = conT ''Parse.Err `appT` t\n\n  toType :: Field -> TypeQ\n  toType (MkField required fieldTypes mult) =\n    let ftypes = inject (fieldTypesToNestedSum fieldTypes `appT` varT annParameterName)\n    in case (required, mult) of\n      (Required, Multiple) -> appT (conT ''NonEmpty) ftypes\n      (Required, Single)   -> ftypes\n      (Optional, Multiple) -> appT listT ftypes\n      (Optional, Single)   -> appT (conT ''Maybe) ftypes\n\n  toTypeChild (MkChildren field) = (\"extra_children\", toType field)\n\n-- | Build Q Constructor for leaf types (nodes with no fields or subtypes)\nctorForLeafType :: DatatypeName -> Name -> Q Con\nctorForLeafType name annParameterName = ctorForTypes name\n  [ (\"ann\",  varT annParameterName) -- ann :: a\n  , (\"text\", conT ''Text)            -- text :: Text\n  ]\n\n-- TODO: clarify the paths in ctorForProductType, ctorForLeafType, and ctorForTypes,\n-- inserting an appropriate (''f `appT`) thing\n\n-- | Build Q Constructor for records\nctorForTypes :: DatatypeName -> [(String, Q TH.Type)] -> Q Con\nctorForTypes (DatatypeName constructorName) types = recC (toName Named constructorName) recordFields\n  where\n    recordFields = map (uncurry toVarBangType) types\n    toVarBangType str type' = TH.varBangType (mkName . toHaskellCamelCaseIdentifier $ str) (TH.bangType strictness type')\n\n\n-- | Convert field types to Q types\nfieldTypesToNestedSum :: NonEmpty AST.Deserialize.Type -> Q TH.Type\nfieldTypesToNestedSum xs = go (toList xs)\n  where\n    combine lhs rhs = uInfixT lhs ''(:+:) rhs -- (((((a :+: b) :+: c) :+: d)) :+: e)   ((a :+: b) :+: (c :+: d))\n    convertToQType (MkType (DatatypeName n) named) = conT (toName named n)\n    go [x] = convertToQType x\n    go xs  = let (l,r) = splitAt (length xs `div` 2) xs in combine (go l) (go r)\n\n\n-- | Create bang required to build records\nstrictness :: BangQ\nstrictness = TH.bang noSourceUnpackedness noSourceStrictness\n\n-- | Prepend \"Anonymous\" to named node when false, otherwise use regular toName\ntoName :: Named -> String -> Name\ntoName named str = mkName (toNameString named str)\n\ntoNameString :: Named -> String -> String\ntoNameString named str = prefix named <> toHaskellPascalCaseIdentifier str\n  where\n    prefix Anonymous = \"Anonymous\"\n    prefix Named     = \"\"\n\n-- | Get the 'Module', if any, for a given 'Name'.\nmoduleForName :: Name -> Maybe Module\nmoduleForName n = Module . PkgName <$> namePackage n <*> (ModName <$> nameModule n)\n\n-- | Test whether the name is defined in the module where the splice is executed.\nisLocalName :: Name -> Q Bool\nisLocalName n = (moduleForName n ==) . Just <$> thisModule\n"
  },
  {
    "path": "semantic-ast/src/AST/Grammar/Examples.hs",
    "content": "{-# LANGUAGE DataKinds, DeriveAnyClass, DeriveGeneric, DuplicateRecordFields, TypeOperators #-}\nmodule AST.Grammar.Examples () where\n\nimport Control.Effect.Reader\nimport Control.Monad.Fail\nimport qualified Data.ByteString as B\nimport qualified Data.Text as Text\nimport qualified Data.Text.Encoding as Text\nimport GHC.Generics ((:+:), Generic1)\nimport Numeric (readDec)\nimport Prelude hiding (fail)\nimport Source.Range\nimport AST.Token\nimport AST.Unmarshal\n\n-- | An example of a sum-of-products datatype.\nnewtype Expr a = Expr ((If :+: Block :+: Var :+: Lit :+: Bin) a)\n  deriving (Generic1, Unmarshal)\n\ninstance SymbolMatching Expr where\n  matchedSymbols _ = []\n  showFailure _ _ = \"\"\n\n-- | Product with multiple fields.\ndata If a = If { ann :: a, condition :: Expr a, consequence :: Expr a, alternative :: Maybe (Expr a) }\n  deriving (Generic1, Unmarshal)\n\ninstance SymbolMatching If where\n  matchedSymbols _ = []\n  showFailure _ _ = \"\"\n\n-- | Single-field product.\ndata Block a = Block { ann :: a, body :: [Expr a] }\n  deriving (Generic1, Unmarshal)\n\ninstance SymbolMatching Block where\n  matchedSymbols _ = []\n  showFailure _ _ = \"\"\n\n-- | Leaf node.\ndata Var a = Var { ann :: a, text :: Text.Text }\n  deriving (Generic1, Unmarshal)\n\ninstance SymbolMatching Var where\n  matchedSymbols _ = []\n  showFailure _ _ = \"\"\n\n-- | Custom leaf node.\ndata Lit a = Lit { ann :: a, lit :: IntegerLit }\n  deriving (Generic1, Unmarshal)\n\ninstance SymbolMatching Lit where\n  matchedSymbols _ = []\n  showFailure _ _ = \"\"\n\n-- | Product with anonymous sum field.\ndata Bin a = Bin { ann :: a, lhs :: Expr a, op :: (AnonPlus :+: AnonTimes) a, rhs :: Expr a }\n  deriving (Generic1, Unmarshal)\n\ninstance SymbolMatching Bin where\n  matchedSymbols _ = []\n  showFailure _ _ = \"\"\n\n-- | Anonymous leaf node.\ntype AnonPlus = Token \"+\" 0\n\n-- | Anonymous leaf node.\ntype AnonTimes = Token \"*\" 1\n\n\nnewtype IntegerLit = IntegerLit Integer\n\ninstance UnmarshalAnn IntegerLit where\n  unmarshalAnn node = do\n    Range start end <- unmarshalAnn node\n    bytestring <- asks source\n    let drop = B.drop start\n        take = B.take (end - start)\n        slice = take . drop\n        str = Text.unpack (Text.decodeUtf8 (slice bytestring))\n    case readDec str of\n      (i, _):_ -> pure (IntegerLit i)\n      _        -> fail (\"could not parse '\" <> str <> \"'\")\n"
  },
  {
    "path": "semantic-ast/src/AST/Grammar/TH.hs",
    "content": "{-# LANGUAGE TemplateHaskell #-}\nmodule AST.Grammar.TH\n( mkStaticallyKnownRuleGrammarData\n) where\n\nimport           Data.Ix (Ix)\nimport           Data.List (mapAccumL)\nimport qualified Data.Set as Set\nimport           Foreign.Ptr\nimport           Language.Haskell.TH\nimport           Language.Haskell.TH.Syntax\nimport           TreeSitter.Language (Language, languageSymbols)\nimport           TreeSitter.Symbol\n\n-- | TemplateHaskell construction of a datatype for the referenced Language.\n-- | Statically-known rules corresponding to symbols in the grammar.\nmkStaticallyKnownRuleGrammarData :: Name -> Ptr Language -> Q [Dec]\nmkStaticallyKnownRuleGrammarData name language = do\n  symbols <- renameDups . map ((,) . fst <*> uncurry symbolToName) . (++ [(Regular, \"ParseError\")]) <$> runIO (languageSymbols language)\n  Module _ modName <- thisModule\n  let mkMatch symbolType str = match (conP (Name (OccName str) (NameQ modName)) []) (normalB (lift symbolType)) []\n  datatype <- dataD (pure []) name [] Nothing (flip normalC [] . mkName . snd <$> symbols)\n    [ derivClause Nothing (map conT [ ''Bounded, ''Enum, ''Eq, ''Ix, ''Ord, ''Show ]) ]\n  symbolInstance <- [d|\n    instance Symbol $(conT name) where\n      symbolType = $(lamCaseE (uncurry mkMatch <$> symbols)) |]\n  pure (datatype : symbolInstance)\n\nrenameDups :: [(a, String)] -> [(a, String)]\nrenameDups = snd . mapAccumL go mempty\n  where go done (ty, name) = let name' = rename name in (Set.insert name' done, (ty, name'))\n          where rename name | name `Set.member` done = rename (name ++ \"'\")\n                            | otherwise              = name\n"
  },
  {
    "path": "semantic-ast/src/AST/Marshal/JSON.hs",
    "content": "{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DefaultSignatures #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE ExistentialQuantification #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE RankNTypes #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE TypeSynonymInstances #-}\n{-# LANGUAGE UndecidableInstances #-}\n\nmodule AST.Marshal.JSON\n( MarshalJSON(..)\n) where\n\nimport           AST.Parse\nimport           Data.Aeson as Aeson hiding (Success)\nimport           Data.Bifunctor (first)\nimport           Data.List.NonEmpty (NonEmpty)\nimport           Data.String (fromString)\nimport           Data.Text (Text, unpack)\nimport qualified Data.Text as Text\nimport           GHC.Generics\n\n-- TODO: use toEncoding -- direct serialization to ByteString\n\n-- Serialize unmarshaled ASTs into JSON representation by auto-deriving Aeson instances generically\nclass MarshalJSON t where\n  marshal :: (ToJSON a) => t a -> Value\n  marshal = object . map (first (fromString . unpack)) . fields []\n  fields :: (ToJSON a) => [(Text, Value)] -> t a -> [(Text, Value)]\n  default fields :: ( Generic1 t, GFields (Rep1 t), ToJSON a) => [(Text, Value)] -> t a -> [(Text, Value)]\n  fields acc = gfields acc . from1\n\n-- Implement the sum case\ninstance {-# OVERLAPPING #-} (MarshalJSON f, MarshalJSON g) => MarshalJSON (f :+: g) where\n  fields acc (L1 f) = fields acc f\n  fields acc (R1 g) = fields acc g\n\n-- Create MarshalJSON instances for each type constructor\ninstance (GFields (Rep1 t), Generic1 t) => MarshalJSON t\n\n-- Stores meta-data for datatypes\ninstance (GFields f, Datatype c) => GFields (M1 D c f) where\n   gfields acc x = gfields ((Text.pack \"type\", String (Text.pack (datatypeName x))): acc) $ unM1 x\n\n-- Fold over S1 product types and pass the result to Aeson objects\ninstance GFields fields => GFields (C1 c fields) where\n  gfields acc x = gfields acc (unM1 x)\n\n-- Implement base case for products\n-- To get a value out of this datum, we define another typeclass: @GValue@ with the method @gvalue@.\ninstance (GValue p, Selector s) => GFields (S1 s p) where\n  gfields acc x = (Text.pack (selName x), gvalue (unM1 x)) : acc\n\n-- Implement inductive case for product case\n-- Product datatypes are marshalled to an object with a type field holding the constructor name and a separate field for each selector in the datatype.\ninstance (GFields f, GFields g) => GFields (f :*: g) where\n  gfields acc (f :*: g) = gfields (gfields acc g) f\n\n-- GValue for leaves\ninstance ToJSON a => GValue (K1 i a) where\n  gvalue = toJSON . unK1\n\n-- Par1 instance\ninstance GValue Par1 where\n  gvalue = toJSON . unPar1\n\ninstance (MarshalJSON t) => GValue (Rec1 t) where\n  gvalue (Rec1 f) = marshal f\n\ninstance (GValue t) => GValue (Maybe :.: t) where\n  gvalue (Comp1 (Just t)) = gvalue t\n  gvalue (Comp1 Nothing)  = Null\n\ninstance (GValue t) => GValue ([] :.: t) where\n  gvalue (Comp1 ts) = toJSON $ map gvalue ts\n\ninstance (GValue t) => GValue (NonEmpty :.: t) where\n  gvalue (Comp1 ts) = toJSON $ fmap gvalue ts\n\ninstance (GValue t) => GValue (Err :.: t) where\n  gvalue (Comp1 (Success t)) = gvalue t\n  gvalue (Comp1 (Fail _))    = Null\n\n-- GFields operates on product field types: it takes an accumulator, a datatype, and returns a new accumulator value.\nclass GFields f where\n  gfields :: ToJSON a => [(Text, Value)] -> f a -> [(Text, Value)]\n\n-- gvalue is a wrapper that calls to @toJSON@ (for leaf nodes such as @Text@) or recurses via @marshal@\nclass GValue f where\n  gvalue :: (ToJSON a) => f a -> Value\n"
  },
  {
    "path": "semantic-ast/src/AST/Parse.hs",
    "content": "{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE DeriveTraversable #-}\n{-# LANGUAGE  KindSignatures #-}\n\nmodule AST.Parse\n( Err(..)\n) where\n\nimport GHC.Generics (Generic, Generic1)\n\n-- | An AST node representing an Error, showing a parse that's succeeded or failed.\n--\n-- Error types are isomorphic to Either String. \n--\n-- For example, consider the following:\n-- @\n-- data If f a = If { ann :: a, condition :: f (Expr f a), consequence :: f (Stmt f a), alternative :: f (Stmt f a) }\n-- @\n-- When the parse fails, the f will be substituted with Err\n-- TODO: this could work with AST.Element Prj given the kindedness was adjusted from (*) to (* -> *).\ndata Err a = Fail String | Success a\n  deriving (Eq, Foldable, Functor, Generic, Generic1, Ord, Traversable)\n\ninstance Applicative Err where\n    pure            = Success\n    Fail e <*> _    = Fail e\n    Success a <*> r = fmap a r\n\ninstance Show a => Show (Err a) where\n  show (Fail msg)  = msg \n  show (Success a) = show a\n"
  },
  {
    "path": "semantic-ast/src/AST/TestHelpers.hs",
    "content": "{-# LANGUAGE OverloadedStrings #-}\nmodule AST.TestHelpers\n  ( CorpusExample(..)\n  , readCorpusFiles\n  , readCorpusFiles'\n  , parseCorpusFile\n  , testCorpus\n  ) where\n\nimport Control.Applicative\nimport Control.Monad\nimport Data.Attoparsec.ByteString.Char8\nimport Data.Attoparsec.ByteString.Char8 as Attoparsec\nimport Data.ByteString (ByteString, readFile)\nimport Data.ByteString.Char8 (pack, unpack)\nimport Data.Either\nimport Data.Functor\nimport Prelude hiding (takeWhile)\nimport System.Directory\nimport System.Exit (exitFailure)\nimport System.FilePath\nimport System.FilePath.Glob\nimport Test.Tasty\nimport Test.Tasty.HUnit\n\ntestCorpus :: (ByteString -> IO (Either String (t a))) -> FilePath -> IO TestTree\ntestCorpus parse path = do\n  xs <- parseCorpusFile path\n  case xs of\n    Left e   -> print (\"Failed to parse corpus: \" <> show path <> \" \" <> \"Error: \" <> show e) *> exitFailure\n    Right xs -> testGroup path <$> traverse corpusTestCase xs\n  where\n    corpusTestCase (CorpusExample name code) = testCase name . either (errMsg code) pass <$> parse code\n    pass = const (pure ())\n    errMsg code e = assertFailure (e <> \"\\n``` \\n\" <> unpack code <> \"```\")\n\n-- Depending on whether these tests are invoked via cabal run or cabal test,\n-- we might be in a project subdirectory or not, so let's make sure we're\n-- in project subdirectories as needed.\nfindCorpus :: FilePath -> IO FilePath\nfindCorpus p = do\n  cwd <- getCurrentDirectory\n  if takeFileName cwd == \"haskell-tree-sitter\"\n     then pure p\n     else pure (\"..\" </> p)\n\n-- The path is expected to be relative to the language project.\nreadCorpusFiles :: FilePath ->  IO [FilePath]\nreadCorpusFiles parent = do\n  dir <- findCorpus parent\n  globDir1 (compile \"**/*.txt\") dir\n\nreadCorpusFiles' :: FilePath ->  IO [FilePath]\nreadCorpusFiles' = globDir1 (compile \"**/*.txt\")\n\ndata CorpusExample = CorpusExample { name :: String, code :: ByteString }\n  deriving (Eq, Show)\n\nparseCorpusFile :: FilePath -> IO (Either String [CorpusExample])\nparseCorpusFile path = do\n  c <- Data.ByteString.readFile path\n  pure $ parseOnly corpusParser c\n\ncorpusParser :: Parser [CorpusExample]\ncorpusParser = do\n  xs <- many' exampleParser\n  void endOfInput\n  pure xs\n\nexampleParser :: Parser CorpusExample\nexampleParser = do\n  name <- exampleNameParser\n  code <- manyTill anyChar outputSepParser\n  _out <- manyTill anyChar (choice [endOfInput, char '=' $> ()])\n  pure (CorpusExample name (pack code))\n  where outputSepParser = (Attoparsec.take 3) *> (Attoparsec.char '-') *> endOfLine\n\nexampleNameParser :: Parser String\nexampleNameParser = do\n  _ <- skipWhile (== '=') *> skipSpace\n  name <- takeWhile (/= '\\n')\n  _ <- skipSpace *> skipWhile (== '=') *> skipSpace\n  pure (unpack name)\n"
  },
  {
    "path": "semantic-ast/src/AST/Token.hs",
    "content": "{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE DeriveTraversable #-}\n{-# LANGUAGE  KindSignatures #-}\n\nmodule AST.Token\n( Token(..)\n) where\n\nimport GHC.Generics (Generic, Generic1)\nimport GHC.TypeLits (Symbol, Nat)\n\n-- | An AST node representing a token, indexed by its name and numeric value.\n--\n-- For convenience, token types are typically used via type synonyms, e.g.:\n--\n-- @\n-- type AnonymousPlus = Token \"+\" 123\n-- @\nnewtype Token (symName :: Symbol) (symVal :: Nat) a = Token { ann :: a }\n  deriving (Eq, Foldable, Functor, Generic, Generic1, Ord, Show, Traversable)\n"
  },
  {
    "path": "semantic-ast/src/AST/Traversable1/Class.hs",
    "content": "{-# LANGUAGE AllowAmbiguousTypes #-}\n{-# LANGUAGE ConstraintKinds #-}\n{-# LANGUAGE DefaultSignatures #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE RankNTypes #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\n-- | This module defines the 'Traversable1' class and its generic derivation using 'GTraversable1'. Note that any changes to this file will require recompilation of all of the AST modules, which is quite expensive; thus, most additions should be made in \"AST.Traversable1\" instead, and that that module should not be imported by the AST modules.\nmodule AST.Traversable1.Class\n( Traversable1(..)\n, foldMapDefault1\n, fmapDefault1\n, traverseDefault1\n, GTraversable1(..)\n) where\n\nimport Data.Functor.Const\nimport Data.Functor.Identity\nimport GHC.Generics\n\n-- | Simultaneous traversal of subterms of kind @*@ and @* -> *@ in an 'Applicative' context.\n--\n-- 'Traversable1' can express any combination of first- and second-order mapping, folding, and traversal.\n--\n-- Note that the @1@ suffix is used in the manner of 'Data.Functor.Classes.Show1' or 'Generic1', rather than 'foldr1'; it’s a higher-order traversal which is simultaneously able to traverse (and alter) annotations.\nclass Traversable1 c t where\n  -- | Map annotations of kind @*@ and heterogeneously-typed subterms of kind @* -> *@ under some constraint @c@ into an 'Applicative' context. The constraint is necessary to operate on otherwise universally-quantified subterms, since otherwise there would be insufficient information to inspect them at all.\n  --\n  -- No proxy is provided for the constraint @c@; instead, @-XTypeApplications@ should be used. E.g. here we ignore the annotations and print all the @* -> *@ subterms using 'Show1':\n  --\n  -- @\n  -- 'traverse1' \\@'Data.Functor.Classes.Show1' 'pure' (\\ t -> t '<$' 'putStrLn' ('Data.Functor.Classes.showsPrec1' 0 t \"\"))\n  -- @\n  --\n  -- Note that this traversal is non-recursive: any recursion through subterms must be performed by the second function argument.\n  traverse1\n    :: Applicative f\n    => (a -> f b)\n    -> (forall t' . c t' => t' a -> f (t' b))\n    -> t a\n    -> f (t b)\n  default traverse1\n    :: (Applicative f, Generic1 t, GTraversable1 c (Rep1 t))\n    => (a -> f b)\n    -> (forall t' . c t' => t' a -> f (t' b))\n    -> t a\n    -> f (t b)\n  traverse1 f g = fmap to1 . gtraverse1 @c f g . from1\n\n\n-- | This function may be used as a value for 'foldMap' in a 'Foldable' instance.\nfoldMapDefault1 :: (Traversable1 Foldable t, Monoid b) => (a -> b) -> t a -> b\nfoldMapDefault1 f = getConst . traverse1 @Foldable (Const . f) (Const . foldMap f)\n\n-- | This function may be used as a value for 'fmap' in a 'Functor' instance.\nfmapDefault1 :: Traversable1 Functor t => (a -> b) -> t a -> t b\nfmapDefault1 f = runIdentity . traverse1 @Functor (Identity . f) (Identity . fmap f)\n\n-- | This function may be used as a value for 'traverse' in a 'Traversable' instance.\ntraverseDefault1 :: (Traversable1 Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)\ntraverseDefault1 f = traverse1 @Traversable f (traverse f)\n\n\nclass GTraversable1 c t where\n  -- | Generically map annotations and subterms of kind @* -> *@ into an 'Applicative' context.\n  gtraverse1\n    :: Applicative f\n    => (a -> f b)\n    -> (forall t' . c t' => t' a -> f (t' b))\n    -> t a\n    -> f (t b)\n\ninstance GTraversable1 c f => GTraversable1 c (M1 i c' f) where\n  gtraverse1 f g = fmap M1 . gtraverse1 @c f g . unM1\n\ninstance (GTraversable1 c f, GTraversable1 c g) => GTraversable1 c (f :*: g) where\n  gtraverse1 f g (l :*: r) = (:*:) <$> gtraverse1 @c f g l <*> gtraverse1 @c f g r\n\ninstance (GTraversable1 c f, GTraversable1 c g) => GTraversable1 c (f :+: g) where\n  gtraverse1 f g (L1 l) = L1 <$> gtraverse1 @c f g l\n  gtraverse1 f g (R1 r) = R1 <$> gtraverse1 @c f g r\n\ninstance GTraversable1 c (K1 R t) where\n  gtraverse1 _ _ (K1 k) = pure (K1 k)\n\ninstance GTraversable1 c Par1 where\n  gtraverse1 f _ (Par1 a) = Par1 <$> f a\n\ninstance c t => GTraversable1 c (Rec1 t) where\n  gtraverse1 _ g (Rec1 t) = Rec1 <$> g t\n\ninstance (Traversable f, GTraversable1 c g) => GTraversable1 c (f :.: g) where\n  gtraverse1 f g = fmap Comp1 . traverse (gtraverse1 @c f g) . unComp1\n\ninstance GTraversable1 c U1 where\n  gtraverse1 _ _ _ = pure U1\n"
  },
  {
    "path": "semantic-ast/src/AST/Traversable1.hs",
    "content": "{-# LANGUAGE AllowAmbiguousTypes #-}\n{-# LANGUAGE ConstraintKinds #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE RankNTypes #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\nmodule AST.Traversable1\n( module AST.Traversable1.Class\n, for1\n, traverse1_\n, for1_\n, foldMap1\n, Generics(..)\n) where\n\nimport AST.Traversable1.Class\nimport Data.Functor (void)\nimport Data.Functor.Const\nimport Data.Monoid (Ap (..))\nimport GHC.Generics\n\nfor1\n  :: forall c t f a b\n  .  (Traversable1 c t, Applicative f)\n  => t a\n  -> (a -> f b)\n  -> (forall t' . c t' => t' a -> f (t' b))\n  -> f (t b)\nfor1 t f g = traverse1 @c f g t\n\ntraverse1_\n  :: forall c t f a a' a''\n  .  (Traversable1 c t, Applicative f)\n  => (a -> f a')\n  -> (forall t' . c t' => t' a -> f a'')\n  -> t a\n  -> f ()\ntraverse1_ f g = getAp . foldMap1 @c (Ap . void . f) (Ap . void . g)\n\nfor1_\n  :: forall c t f a a' a''\n  .  (Traversable1 c t, Applicative f)\n  => t a\n  -> (a -> f a')\n  -> (forall t' . c t' => t' a -> f a'')\n  -> f ()\nfor1_ t f g = getAp $ foldMap1 @c (Ap . void . f) (Ap . void . g) t\n\nfoldMap1 :: forall c t b a . (Traversable1 c t, Monoid b) => (a -> b) -> (forall t' . c t' => t' a -> b) -> t a -> b\nfoldMap1 f g = getConst . traverse1 @c (Const . f) (Const . g)\n\n\n-- | @'Generics' t@ has a 'Traversable1' instance when @'Rep1' t@ has a 'GTraversable1' instance, making this convenient for applying 'traverse1' to 'Generic1' types lacking 'Traversable1' instances:\n--\n-- @\n-- 'getGenerics' '<$>' 'traverse1' f g ('Generics' t) = 'to1' '<$>' 'gtraverse1' f g ('from1' t)\n-- @\n--\n-- It further defines its 'Foldable', 'Functor', and 'Traversable' instances using 'Traversable1', making it suitable for deriving with @-XDerivingVia@.\nnewtype Generics t a = Generics { getGenerics :: t a }\n\ninstance (Generic1 t, GTraversable1 Foldable (Rep1 t)) => Foldable (Generics t) where\n  foldMap = foldMapDefault1\n\ninstance (Generic1 t, GTraversable1 Functor (Rep1 t)) => Functor (Generics t) where\n  fmap = fmapDefault1\n\ninstance (Generic1 t, GTraversable1 Foldable (Rep1 t), GTraversable1 Functor (Rep1 t), GTraversable1 Traversable (Rep1 t)) => Traversable (Generics t) where\n  traverse = traverseDefault1\n\ninstance (Generic1 t, GTraversable1 c (Rep1 t)) => Traversable1 c (Generics t) where\n  traverse1 f g = fmap (Generics . to1) . gtraverse1 @c f g . from1 . getGenerics\n"
  },
  {
    "path": "semantic-ast/src/AST/Unmarshal.hs",
    "content": "{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DefaultSignatures #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE RankNTypes #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TupleSections #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\n\nmodule AST.Unmarshal\n( parseByteString\n, UnmarshalState(..)\n, UnmarshalError(..)\n, FieldName(..)\n, Unmarshal(..)\n, UnmarshalAnn(..)\n, UnmarshalField(..)\n, SymbolMatching(..)\n, Match(..)\n, hoist\n, lookupSymbol\n, unmarshalNode\n, GHasAnn(..)\n) where\n\nimport           AST.Token as TS\nimport           AST.Parse\nimport           Control.Carrier.Reader\nimport           Control.Exception\nimport           Control.Monad.IO.Class\nimport           Data.ByteString (ByteString)\nimport qualified Data.ByteString as B\nimport           Data.Coerce\nimport           Data.Foldable (toList)\nimport           Data.Functor.Identity\nimport qualified Data.IntMap as IntMap\nimport           Data.List.NonEmpty (NonEmpty (..))\nimport           Data.Proxy\nimport qualified Data.Text as Text\nimport           Data.Text.Encoding\nimport           Data.Text.Encoding.Error (lenientDecode)\nimport           Foreign.C.String\nimport           Foreign.Marshal.Array\nimport           Foreign.Marshal.Utils\nimport           Foreign.Ptr\nimport           Foreign.Storable\nimport           GHC.Generics\nimport           GHC.Records\nimport           GHC.TypeLits\nimport           Source.Loc\nimport           Source.Span\nimport           TreeSitter.Cursor as TS\nimport           TreeSitter.Language as TS\nimport           TreeSitter.Node as TS\nimport           TreeSitter.Parser as TS\nimport           TreeSitter.Tree as TS\n\n-- Parse source code and produce AST\nparseByteString :: (Unmarshal t, UnmarshalAnn a) => Ptr TS.Language -> ByteString -> IO (Either String (t a))\nparseByteString language bytestring = withParser language $ \\ parser -> withParseTree parser bytestring $ \\ treePtr ->\n  if treePtr == nullPtr then\n    pure (Left \"error: didn't get a root node\")\n  else\n    withRootNode treePtr $ \\ rootPtr ->\n      withCursor (castPtr rootPtr) $ \\ cursor ->\n        (Right <$> runReader (UnmarshalState bytestring cursor) (liftIO (peek rootPtr) >>= unmarshalNode))\n          `catch` (pure . Left . getUnmarshalError)\n\nnewtype UnmarshalError = UnmarshalError { getUnmarshalError :: String }\n  deriving (Show)\n\ninstance Exception UnmarshalError\n\ndata UnmarshalState = UnmarshalState\n  { source :: {-# UNPACK #-} !ByteString\n  , cursor :: {-# UNPACK #-} !(Ptr Cursor)\n  }\n\ntype MatchM = ReaderC UnmarshalState IO\n\nnewtype Match t = Match\n  { runMatch :: forall a . UnmarshalAnn a => Node -> MatchM (t a)\n  }\n\n-- | A church-encoded binary tree with constant-time 'singleton', 'mempty', '<>', and 'fmap', and linear-time 'foldMap'.\nnewtype B a = B (forall r . (r -> r -> r) -> (a -> r) -> r -> r)\n\ninstance Functor B where\n  fmap f (B run) = B (\\ fork leaf -> run fork (leaf . f))\n  {-# INLINE fmap #-}\n  a <$ B run = B (\\ fork leaf -> run fork (leaf . const a))\n  {-# INLINE (<$) #-}\n\ninstance Semigroup (B a) where\n  B l <> B r = B (\\ fork leaf nil -> fork (l fork leaf nil) (r fork leaf nil))\n  {-# INLINE (<>) #-}\n\ninstance Monoid (B a) where\n  mempty = B (\\ _ _ nil -> nil)\n  {-# INLINE mempty #-}\n\ninstance Foldable B where\n  foldMap f (B run) = run (<>) f mempty\n  {-# INLINE foldMap #-}\n\nsingleton :: a -> B a\nsingleton a = B (\\ _ leaf _ -> leaf a)\n{-# INLINE singleton #-}\n\nhoist :: (forall x . t x -> t' x) -> Match t -> Match t'\nhoist f (Match run) = Match (fmap f . run)\n{-# INLINE hoist #-}\n\nlookupSymbol :: TSSymbol -> IntMap.IntMap a -> Maybe a\nlookupSymbol sym map = IntMap.lookup (fromIntegral sym) map\n{-# INLINE lookupSymbol #-}\n\n-- | Unmarshal a node\nunmarshalNode :: forall t a .\n                 ( UnmarshalAnn a\n                 , Unmarshal t\n                 )\n  => Node\n  -> MatchM (t a)\nunmarshalNode node = case lookupSymbol (nodeSymbol node) matchers' of\n  Just t  -> runMatch t node\n  Nothing -> liftIO . throwIO . UnmarshalError $ showFailure (Proxy @t) node\n{-# INLINE unmarshalNode #-}\n\n-- | Unmarshalling is the process of iterating over tree-sitter’s parse trees using its tree cursor API and producing Haskell ASTs for the relevant nodes.\n--\n--   Datatypes which can be constructed from tree-sitter parse trees may use the default definition of 'matchers' providing that they have a suitable 'Generic1' instance.\nclass SymbolMatching t => Unmarshal t where\n  matchers' :: IntMap.IntMap (Match t)\n  matchers' = IntMap.fromList (toList matchers)\n\n  matchers :: B (Int, Match t)\n  default matchers :: (Generic1 t, GUnmarshal (Rep1 t)) => B (Int, Match t)\n  matchers = foldMap (singleton . (, match)) (matchedSymbols (Proxy @t))\n    where match = Match $ \\ node -> do\n            cursor <- asks cursor\n            goto cursor (nodeTSNode node)\n            fmap to1 (gunmarshalNode node)\n\ninstance (Unmarshal f, Unmarshal g) => Unmarshal (f :+: g) where\n  matchers = fmap (fmap (hoist L1)) matchers <> fmap (fmap (hoist R1)) matchers\n\ninstance (Applicative shape, Unmarshal f) => Unmarshal (shape :.: f) where\n  matchers = let base = matchers @f in fmap (fmap promote) base\n    where\n      promote (Match f) = Match (fmap (fmap (Comp1 . pure)) f)\n\ninstance Unmarshal t => Unmarshal (Rec1 t) where\n  matchers = coerce (matchers @t)\n\ninstance (KnownNat n, KnownSymbol sym) => Unmarshal (Token sym n) where\n  matchers = singleton (fromIntegral (natVal (Proxy @n)), Match (fmap Token . unmarshalAnn))\n\n\n-- | Unmarshal an annotation field.\n--\n--   Leaf nodes have 'Text.Text' fields, and leaves, anonymous leaves, and products all have parametric annotation fields. All of these fields are unmarshalled using the metadata of the node, e.g. its start/end bytes, without reference to any child nodes it may contain.\nclass UnmarshalAnn a where\n  unmarshalAnn\n    :: Node\n    -> MatchM a\n\ninstance UnmarshalAnn () where\n  unmarshalAnn _ = pure ()\n\ninstance UnmarshalAnn Text.Text where\n  unmarshalAnn node = do\n    range <- unmarshalAnn node\n    asks (decodeUtf8With lenientDecode . slice range . source)\n\n-- | Instance for pairs of annotations\ninstance (UnmarshalAnn a, UnmarshalAnn b) => UnmarshalAnn (a,b) where\n  unmarshalAnn node = (,)\n    <$> unmarshalAnn @a node\n    <*> unmarshalAnn @b node\n\ninstance UnmarshalAnn Loc where\n  unmarshalAnn node = Loc\n    <$> unmarshalAnn @Range node\n    <*> unmarshalAnn @Span  node\n\ninstance UnmarshalAnn Range where\n  unmarshalAnn node = do\n    let start = fromIntegral (nodeStartByte node)\n        end   = fromIntegral (nodeEndByte node)\n    pure (Range start end)\n\ninstance UnmarshalAnn Span where\n  unmarshalAnn node = do\n    let spanStart = pointToPos (nodeStartPoint node)\n        spanEnd   = pointToPos (nodeEndPoint node)\n    pure (Span spanStart spanEnd)\n\npointToPos :: TSPoint -> Pos\npointToPos (TSPoint line column) = Pos (fromIntegral line) (fromIntegral column)\n\n\n-- | Optional/repeated fields occurring in product datatypes are wrapped in type constructors, e.g. 'Maybe', '[]', or 'NonEmpty', and thus can unmarshal zero or more nodes for the same field name.\nclass UnmarshalField t where\n  unmarshalField\n    :: ( Unmarshal f\n       , UnmarshalAnn ann\n       )\n    => String -- ^ datatype name\n    -> String -- ^ field name\n    -> [Node] -- ^ nodes\n    -> MatchM (t (f ann))\n\ninstance UnmarshalField Err where\n  unmarshalField _ _ [] = pure $ Fail \"No items provided to unmarshalField.\"\n  unmarshalField _ _ [x] = Success <$> unmarshalNode x\n  unmarshalField d f _ = pure $ Fail (\"type '\" <> d <> \"' expected zero or one nodes in field '\" <> f <> \"' but got multiple\")\n\ninstance UnmarshalField Maybe where\n  unmarshalField _ _ []  = pure Nothing\n  unmarshalField _ _ [x] = Just <$> unmarshalNode x\n  unmarshalField d f _   = liftIO . throwIO . UnmarshalError $ \"type '\" <> d <> \"' expected zero or one nodes in field '\" <> f <> \"' but got multiple\"\n\ninstance UnmarshalField Identity where\n  unmarshalField _ _ [x] = Identity <$> unmarshalNode x\n  unmarshalField d f _   = liftIO . throwIO . UnmarshalError $ \"type '\" <> d <> \"' expected zero or one nodes in field '\" <> f <> \"' but got multiple\"\n\ninstance UnmarshalField [] where\n  unmarshalField d f (x:xs) = do\n    head' <- unmarshalNode x\n    tail' <- unmarshalField d f xs\n    pure $ head' : tail'\n  unmarshalField _ _ [] = pure []\n\ninstance UnmarshalField NonEmpty where\n  unmarshalField d f (x:xs) = do\n    head' <- unmarshalNode x\n    tail' <- unmarshalField d f xs\n    pure $ head' :| tail'\n  unmarshalField d f [] = liftIO . throwIO . UnmarshalError $ \"type '\" <> d <> \"' expected one or more nodes in field '\" <> f <> \"' but got zero\"\n\nclass SymbolMatching (sym :: * -> *) where\n  matchedSymbols :: Proxy sym -> [Int]\n\n  -- | Provide error message describing the node symbol vs. the symbols this can match\n  showFailure :: Proxy sym -> Node -> String\n\ninstance SymbolMatching f => SymbolMatching (M1 i c f) where\n  matchedSymbols _ = matchedSymbols (Proxy @f)\n  showFailure _ = showFailure (Proxy @f)\n\ninstance SymbolMatching f => SymbolMatching (Rec1 f) where\n  matchedSymbols _ = matchedSymbols (Proxy @f)\n  showFailure _ = showFailure (Proxy @f)\n\ninstance (KnownNat n, KnownSymbol sym) => SymbolMatching (Token sym n) where\n  matchedSymbols _ = [fromIntegral (natVal (Proxy @n))]\n  showFailure _ _ = \"expected \" ++ symbolVal (Proxy @sym)\n\ninstance (SymbolMatching f, SymbolMatching g) => SymbolMatching (f :+: g) where\n  matchedSymbols _ = matchedSymbols (Proxy @f) <> matchedSymbols (Proxy @g)\n  showFailure _ = sep <$> showFailure (Proxy @f) <*> showFailure (Proxy @g)\n\ninstance SymbolMatching f => SymbolMatching (shape :.: f) where\n  matchedSymbols _ = matchedSymbols (Proxy @f)\n  showFailure _ = showFailure (Proxy @f)\n\nsep :: String -> String -> String\nsep a b = a ++ \". \" ++ b\n\n-- | Move the cursor to point at the passed 'TSNode'.\ngoto :: Ptr Cursor -> TSNode -> MatchM ()\ngoto cursor node = liftIO (with node (ts_tree_cursor_reset_p cursor))\n\n\ntype Fields = [(FieldName, Node)]\n\n-- | Return the fields remaining in the current branch, represented as 'Map.Map' of 'FieldName's to their corresponding 'Node's.\ngetFields :: Ptr Cursor -> Node -> MatchM Fields\ngetFields cursor node\n  | maxCount == 0 = pure []\n  | otherwise     = do\n    nodes <- liftIO . allocaArray maxCount $ \\ ptr -> do\n      actualCount <- ts_tree_cursor_copy_child_nodes cursor ptr\n      peekArray (fromIntegral actualCount) ptr\n    traverse (\\ node -> (, node) <$> getFieldName node) nodes\n  where\n  maxCount = fromIntegral (nodeChildCount node)\n  getFieldName node\n    | nodeFieldName node == nullPtr = pure (FieldName \"extraChildren\")\n    | otherwise                     = FieldName . toHaskellCamelCaseIdentifier <$> liftIO (peekCString (nodeFieldName node))\n\nlookupField :: FieldName -> Fields -> [Node]\nlookupField k = map snd . filter ((== k) . fst)\n\n\n-- | Return a 'ByteString' that contains a slice of the given 'ByteString'.\nslice :: Range -> ByteString -> ByteString\nslice (Range start end) = take . drop\n  where drop = B.drop start\n        take = B.take (end - start)\n\n\nnewtype FieldName = FieldName { getFieldName :: String }\n  deriving (Eq, Ord, Show)\n\n-- | Generic construction of ASTs from a 'Map.Map' of named fields.\n--\n--   Product types (specifically, record types) are constructed by looking up the node for each corresponding field name in the map, moving the cursor to it, and then invoking 'unmarshalNode' to construct the value for that field. Leaf types are constructed as a special case of product types.\n--\n--   Sum types are constructed by using the current node’s symbol to select the corresponding constructor deterministically.\nclass GUnmarshal f where\n  gunmarshalNode\n    :: UnmarshalAnn ann\n    => Node\n    -> MatchM (f ann)\n\ninstance (Datatype d, GUnmarshalData f) => GUnmarshal (M1 D d f) where\n  gunmarshalNode = go (gunmarshalNode' (datatypeName @d undefined)) where\n    go :: (Node -> MatchM (f ann)) -> Node -> MatchM (M1 i c f ann)\n    go = coerce\n\ninstance (GUnmarshal f, Applicative shape) => GUnmarshal (shape :.: f) where\n  gunmarshalNode = fmap (Comp1 . pure) . gunmarshalNode @f\n\nclass GUnmarshalData f where\n  gunmarshalNode'\n    :: UnmarshalAnn ann\n    => String\n    -> Node\n    -> MatchM (f ann)\n\ninstance GUnmarshalData f => GUnmarshalData (M1 i c f) where\n  gunmarshalNode' = go gunmarshalNode' where\n    go :: (String -> Node -> MatchM (f a)) -> String -> Node -> MatchM (M1 i c f a)\n    go = coerce\n\n-- For anonymous leaf nodes:\ninstance GUnmarshalData U1 where\n  gunmarshalNode' _ _ = pure U1\n\n-- For unary products:\ninstance UnmarshalAnn k => GUnmarshalData (K1 c k) where\n  gunmarshalNode' _ = go unmarshalAnn where\n    go :: (Node -> MatchM k) -> Node -> MatchM (K1 c k a)\n    go = coerce\n\n-- For anonymous leaf nodes\ninstance GUnmarshalData Par1 where\n  gunmarshalNode' _ = go unmarshalAnn where\n    go :: (Node -> MatchM a) -> Node -> MatchM (Par1 a)\n    go = coerce\n\ninstance Unmarshal t => GUnmarshalData (Rec1 t) where\n  gunmarshalNode' _ = go unmarshalNode where\n    go :: (Node -> MatchM (t a)) -> Node -> MatchM (Rec1 t a)\n    go = coerce\n\n-- For product datatypes:\ninstance (GUnmarshalProduct f, GUnmarshalProduct g) => GUnmarshalData (f :*: g) where\n  gunmarshalNode' datatypeName node = asks cursor >>= flip getFields node >>= gunmarshalProductNode @(f :*: g) datatypeName node\n\n\n-- | Generically unmarshal products\nclass GUnmarshalProduct f where\n  gunmarshalProductNode\n    :: UnmarshalAnn ann\n    => String\n    -> Node\n    -> Fields\n    -> MatchM (f ann)\n\n-- Product structure\ninstance (GUnmarshalProduct f, GUnmarshalProduct g) => GUnmarshalProduct (f :*: g) where\n  gunmarshalProductNode datatypeName node fields = (:*:)\n    <$> gunmarshalProductNode @f datatypeName node fields\n    <*> gunmarshalProductNode @g datatypeName node fields\n\n-- Contents of product types (ie., the leaves of the product tree)\ninstance UnmarshalAnn k => GUnmarshalProduct (M1 S c (K1 i k)) where\n  gunmarshalProductNode _ node _ = go unmarshalAnn node where\n    go :: (Node -> MatchM k) -> Node -> MatchM (M1 S c (K1 i k) a)\n    go = coerce\n\ninstance GUnmarshalProduct (M1 S c Par1) where\n  gunmarshalProductNode _ node _ = go unmarshalAnn node where\n    go :: (Node -> MatchM a) -> Node -> MatchM (M1 S c Par1 a)\n    go = coerce\n\ninstance (UnmarshalField f, Unmarshal g, Selector c) => GUnmarshalProduct (M1 S c (f :.: g)) where\n  gunmarshalProductNode datatypeName _ = go (unmarshalField datatypeName fieldName . lookupField (FieldName fieldName)) where\n    go :: (Fields -> MatchM (f (g a))) -> Fields -> MatchM (M1 S c (f :.: g) a)\n    go = coerce\n    fieldName = selName @c undefined\n\ninstance (Unmarshal t, Selector c) => GUnmarshalProduct (M1 S c (Rec1 t)) where\n  gunmarshalProductNode datatypeName _ fields =\n    case lookupField (FieldName fieldName) fields of\n      []  -> liftIO . throwIO . UnmarshalError $ \"type '\" <> datatypeName <> \"' expected a node '\" <> fieldName <> \"' but didn't get one\"\n      [x] -> go unmarshalNode x where\n        go :: (Node -> MatchM (t a)) -> Node -> MatchM (M1 S c (Rec1 t) a)\n        go = coerce\n      _   -> liftIO . throwIO . UnmarshalError $ \"type '\" <> datatypeName <> \"' expected a node but got multiple\"\n    where\n    fieldName = selName @c undefined\n\n\nclass GHasAnn ann t where\n  gann :: t ann -> ann\n\ninstance GHasAnn ann f => GHasAnn ann (M1 i c f) where\n  gann = gann . unM1\n\ninstance (GHasAnn ann l, GHasAnn ann r) => GHasAnn ann (l :+: r) where\n  gann (L1 l) = gann l\n  gann (R1 r) = gann r\n\ninstance {-# OVERLAPPABLE #-} HasField \"ann\" (t ann) ann => GHasAnn ann t where\n  gann = getField @\"ann\"\n"
  },
  {
    "path": "semantic-ast/src/System/Path/Fixture.hs",
    "content": "{-# LANGUAGE CPP #-}\n{-# LANGUAGE ConstraintKinds #-}\n{-# LANGUAGE ImplicitParams #-}\n\nmodule System.Path.Fixture\n  ( absRelFile,\n    HasFixture,\n    absRelDir,\n    delay,\n    create,\n  )\nwhere\n\nimport Control.Concurrent\nimport GHC.Stack\nimport System.FilePath\nimport System.IO\n\n#if BAZEL_BUILD\nimport qualified Bazel.Runfiles as Bazel\n\ntype HasFixture =\n  ( ?runfiles :: Bazel.Runfiles,\n    ?project :: FilePath,\n    HasCallStack\n  )\n\ncreate :: IO Bazel.Runfiles\ncreate = Bazel.create\n\nroot :: HasFixture => FilePath\nroot = Bazel.rlocation ?runfiles \".\"\n\nabsRelFile :: HasFixture => String -> FilePath\nabsRelFile x = root </> \"semantic\" </> ?project </> x\n\nabsRelDir :: HasFixture => String -> FilePath\nabsRelDir x = root </> \"semantic\" </> ?project </> x\n\n#else\n\n-- building under Cabal\ntype HasFixture = HasCallStack\n\ncreate :: IO ()\ncreate = pure ()\n\nabsRelFile :: String -> FilePath\nabsRelFile x = \"semantic\" </> x\n\nabsRelDir :: String -> FilePath\nabsRelDir x = \"semantic\" </> x\n\n#endif\n\ndelay :: String -> IO ()\ndelay s = do\n  putStrLn s\n  hFlush stdout\n  threadDelay 100000000\n"
  },
  {
    "path": "semantic-codeql/BUILD.bazel",
    "content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\n    \"//:build/common.bzl\",\n    \"semantic_language_library\",\n    \"semantic_language_parsing_test\",\n)\n\nsemantic_language_library(\n    name = \"semantic-codeql\",\n    srcs = glob([\"src/**/*.hs\"]),\n    language = \"ql\",\n)\n\nsemantic_language_parsing_test(\n    language = \"codeql\",\n    semantic_package = \"ql\",\n    ts_package = \"ql\",\n)\n"
  },
  {
    "path": "semantic-codeql/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 GitHub\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "semantic-codeql/README.md",
    "content": "# Semantic support for CodeQL\n\nThis package implements `semantic` support for CodeQL.\n"
  },
  {
    "path": "semantic-codeql/Setup.hs",
    "content": "import Distribution.Simple\nmain = defaultMain\n"
  },
  {
    "path": "semantic-codeql/semantic-codeql.cabal",
    "content": "cabal-version:       2.4\n\nname:                semantic-codeql\nversion:             0.0.0.0\nsynopsis:            Semantic support for CodeQL.\ndescription:         Semantic support for CodeQL.\nhomepage:            https://github.com/github/semantic/tree/master/semantic-codeql#readme\nbug-reports:         https://github.com/github/semantic/issues\nlicense:             MIT\nlicense-file:        LICENSE\nauthor:              The Semantic authors\nmaintainer:          opensource+semantic@github.com\ncopyright:           (c) 2019 GitHub, Inc.\ncategory:            Language\nbuild-type:          Simple\nstability:           alpha\nextra-source-files:  README.md\n\ntested-with:         GHC == 8.6.5\n\ncommon haskell\n  default-language:    Haskell2010\n  ghc-options:\n    -Weverything\n    -Wno-missing-local-signatures\n    -Wno-missing-import-lists\n    -Wno-implicit-prelude\n    -Wno-safe\n    -Wno-unsafe\n    -Wno-name-shadowing\n    -Wno-monomorphism-restriction\n    -Wno-missed-specialisations\n    -Wno-all-missed-specialisations\n    -Wno-star-is-type\n  if (impl(ghc >= 8.8))\n    ghc-options: -Wno-missing-deriving-strategies\n  if (impl(ghc >= 8.10))\n    ghc-options:\n      -Wno-missing-safe-haskell-mode\n      -Wno-prepositive-qualified-module\n  if (impl(ghc >= 9.2))\n    ghc-options:\n      -Wno-missing-kind-signatures\n  cpp-options:\n    -DBAZEL_BUILD=0\n\nlibrary\n  import: haskell\n  exposed-modules:\n    Language.CodeQL\n    Language.CodeQL.AST\n    Language.CodeQL.Grammar\n    Language.CodeQL.Tags\n  hs-source-dirs: src\n  build-depends:\n    , base  >= 4.13 && < 5\n    , fused-effects ^>= 1.1\n    , semantic-ast\n    , semantic-proto ^>= 0\n    , semantic-source ^>= 0.2\n    , semantic-tags ^>= 0.0\n    , template-haskell >= 2.15 && < 2.22\n    , text ^>= 1.2.3\n    , tree-sitter ^>= 0.9\n    , tree-sitter-ql ^>= 0.1.0.2\n\ntest-suite test\n  import: haskell\n  type:             exitcode-stdio-1.0\n  hs-source-dirs:   test\n  main-is:          PreciseTest.hs\n  build-depends:\n    , base\n    , semantic-ast\n    , semantic-codeql\n    , tasty\n"
  },
  {
    "path": "semantic-codeql/src/Language/CodeQL/AST.hs",
    "content": "-- Language definition for CodeQL, generated by ast-generate. Do not edit!\n{-# LANGUAGE CPP #-}\n{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE DeriveTraversable #-}\n{-# LANGUAGE DerivingStrategies #-}\n{-# LANGUAGE DuplicateRecordFields #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE QuantifiedConstraints #-}\n{-# LANGUAGE StandaloneDeriving #-}\n{-# LANGUAGE TemplateHaskell #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\n{-# OPTIONS_GHC -fno-warn-unused-imports #-}\n\nmodule Language.CodeQL.AST (module Language.CodeQL.AST, getTestCorpusDir) where\n\nimport qualified AST.Parse\nimport qualified AST.Token\nimport qualified AST.Traversable1.Class\nimport qualified AST.Unmarshal\nimport qualified Data.Foldable\nimport qualified Data.List as Data.OldList\nimport qualified Data.Maybe as GHC.Maybe\nimport qualified Data.Text.Internal\nimport qualified Data.Traversable\nimport qualified GHC.Base\nimport qualified GHC.Generics\nimport qualified GHC.Records\nimport qualified GHC.Show\nimport qualified TreeSitter.Node\nimport TreeSitter.QL (getTestCorpusDir)\nimport qualified Prelude as GHC.Classes\n\ndebugSymbolNames :: [GHC.Base.String]\ndebugSymbolNames = debugSymbolNames_0\n\ndebugSymbolNames_0 :: [GHC.Base.String]\ndebugSymbolNames_0 =\n  [ \"end\",\n    \"_lower_id\",\n    \"_module\",\n    \"_{\",\n    \"_}\",\n    \"_;\",\n    \"_(\",\n    \"_,\",\n    \"_)\",\n    \"_or\",\n    \"_from\",\n    \"_where\",\n    \"_select\",\n    \"_if\",\n    \"_then\",\n    \"_else\",\n    \"_and\",\n    \"_implies\",\n    \"_|\",\n    \"_.\",\n    \"_[\",\n    \"_]\",\n    \"_..\",\n    \"_order\",\n    \"_by\",\n    \"qldoc\",\n    \"_::\",\n    \"_float\",\n    \"_int\",\n    \"_string\",\n    \"_upper_id\",\n    \"_at_lower_id\",\n    \"integer\",\n    \"float\",\n    \"string\",\n    \"line_comment\",\n    \"block_comment\",\n    \"any\",\n    \"as\",\n    \"asc\",\n    \"avg\",\n    \"boolean\",\n    \"class\",\n    \"newtype\",\n    \"count\",\n    \"date\",\n    \"desc\",\n    \"exists\",\n    \"extends\",\n    \"false\",\n    \"forall\",\n    \"forex\",\n    \"import\",\n    \"in\",\n    \"instanceof\",\n    \"max\",\n    \"min\",\n    \"not\",\n    \"none\",\n    \"predicate\",\n    \"rank\",\n    \"result\",\n    \"strictcount\",\n    \"strictsum\",\n    \"strictconcat\",\n    \"concat\",\n    \"sum\",\n    \"super\",\n    \"this\",\n    \"true\",\n    \"lt\",\n    \"le\",\n    \"eq\",\n    \"gt\",\n    \"ge\",\n    \"underscore\",\n    \"minus\",\n    \"ne\",\n    \"slash\",\n    \"star\",\n    \"mod\",\n    \"plus\",\n    \"ql\",\n    \"module\",\n    \"moduleMember\",\n    \"imprt\",\n    \"moduleAliasBody\",\n    \"predicateAliasBody\",\n    \"typeAliasBody\",\n    \"classlessPredicate\",\n    \"datatype\",\n    \"datatypeBranches\",\n    \"datatypeBranch\",\n    \"select\",\n    \"dataclass\",\n    \"classMember\",\n    \"charpred\",\n    \"memberPredicate\",\n    \"field\",\n    \"_optbody\",\n    \"empty\",\n    \"body\",\n    \"higherOrderTerm\",\n    \"special_call\",\n    \"prefix_cast\",\n    \"unary_expr\",\n    \"mul_expr\",\n    \"add_expr\",\n    \"in_expr\",\n    \"comp_term\",\n    \"instance_of\",\n    \"negation\",\n    \"if_term\",\n    \"conjunction\",\n    \"disjunction\",\n    \"implication\",\n    \"quantified\",\n    \"specialId\",\n    \"quantifier\",\n    \"_call_arg\",\n    \"qualifiedRhs\",\n    \"classless_predicate_call\",\n    \"qualified_expr\",\n    \"super_ref\",\n    \"full_aggregate_body\",\n    \"expr_aggregate_body\",\n    \"aggregate\",\n    \"range\",\n    \"par_expr\",\n    \"_exprOrTerm\",\n    \"_primary\",\n    \"literal\",\n    \"bool\",\n    \"variable\",\n    \"compop\",\n    \"unop\",\n    \"mulop\",\n    \"addop\",\n    \"closure\",\n    \"direction\",\n    \"varDecl\",\n    \"asExprs\",\n    \"asExpr\",\n    \"orderBys\",\n    \"orderBy\",\n    \"literalId\",\n    \"annotation\",\n    \"annotName\",\n    \"annotArg\",\n    \"moduleName\",\n    \"qualModuleExpr\",\n    \"importModuleExpr\",\n    \"moduleExpr\",\n    \"typeLiteral\",\n    \"simpleId\",\n    \"className\",\n    \"dbtype\",\n    \"returnType\",\n    \"typeExpr\",\n    \"predicateName\",\n    \"aritylessPredicateExpr\",\n    \"predicateExpr\",\n    \"varName\",\n    \"aggId\",\n    \"_ql_repeat1\",\n    \"_moduleMember_repeat1\",\n    \"_classlessPredicate_repeat1\",\n    \"_datatypeBranches_repeat1\",\n    \"_dataclass_repeat1\",\n    \"_dataclass_repeat2\",\n    \"_higherOrderTerm_repeat1\",\n    \"_higherOrderTerm_repeat2\",\n    \"_aggregate_repeat1\",\n    \"_asExprs_repeat1\",\n    \"_orderBys_repeat1\",\n    \"_annotation_repeat1\",\n    \"_qualModuleExpr_repeat1\",\n    \"_importModuleExpr_repeat1\"\n  ]\n\ndata AddExpr a = AddExpr\n  { ann :: a,\n    left :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a)),\n    right :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a)),\n    extraChildren :: (AST.Parse.Err (Addop a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1.\n      AST.Traversable1.Class.Traversable1 a_1\n    )\n\ninstance AST.Unmarshal.SymbolMatching AddExpr where\n  matchedSymbols _ = [107]\n  showFailure _ node_2 =\n    \"expected \"\n      GHC.Base.<> ( \"add_expr\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_2 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_2) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_3 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_4 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_5 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_6 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_3\n        c1_4 = TreeSitter.Node.nodeStartPoint node_2\n      TreeSitter.Node.TSPoint\n        r2_5\n        c2_6 = TreeSitter.Node.nodeEndPoint node_2\n\nderiving instance GHC.Classes.Eq a_7 => GHC.Classes.Eq (AddExpr a_7)\n\nderiving instance GHC.Classes.Ord a_8 => GHC.Classes.Ord (AddExpr a_8)\n\nderiving instance GHC.Show.Show a_9 => GHC.Show.Show (AddExpr a_9)\n\ninstance AST.Unmarshal.Unmarshal AddExpr\n\ninstance Data.Foldable.Foldable AddExpr where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AddExpr where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AddExpr where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Addop a = Addop\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Minus GHC.Generics.:+: Plus) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_10.\n      AST.Traversable1.Class.Traversable1 a_10\n    )\n\ninstance AST.Unmarshal.SymbolMatching Addop where\n  matchedSymbols _ = [137]\n  showFailure _ node_11 =\n    \"expected \"\n      GHC.Base.<> ( \"addop\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_11 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_11) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_12 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_13 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_14 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_15 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_12\n        c1_13 = TreeSitter.Node.nodeStartPoint node_11\n      TreeSitter.Node.TSPoint\n        r2_14\n        c2_15 = TreeSitter.Node.nodeEndPoint node_11\n\nderiving instance GHC.Classes.Eq a_16 => GHC.Classes.Eq (Addop a_16)\n\nderiving instance GHC.Classes.Ord a_17 => GHC.Classes.Ord (Addop a_17)\n\nderiving instance GHC.Show.Show a_18 => GHC.Show.Show (Addop a_18)\n\ninstance AST.Unmarshal.Unmarshal Addop\n\ninstance Data.Foldable.Foldable Addop where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Addop where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Addop where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AggId a = AggId\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Any GHC.Generics.:+: Avg GHC.Generics.:+: Concat GHC.Generics.:+: Count GHC.Generics.:+: Max GHC.Generics.:+: Min GHC.Generics.:+: Rank GHC.Generics.:+: Strictconcat GHC.Generics.:+: Strictcount GHC.Generics.:+: Strictsum GHC.Generics.:+: Sum) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_19.\n      AST.Traversable1.Class.Traversable1 a_19\n    )\n\ninstance AST.Unmarshal.SymbolMatching AggId where\n  matchedSymbols _ = [163]\n  showFailure _ node_20 =\n    \"expected \"\n      GHC.Base.<> ( \"aggId\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_20 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_20) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_21 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_22 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_23 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_24 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_21\n        c1_22 = TreeSitter.Node.nodeStartPoint node_20\n      TreeSitter.Node.TSPoint\n        r2_23\n        c2_24 = TreeSitter.Node.nodeEndPoint node_20\n\nderiving instance GHC.Classes.Eq a_25 => GHC.Classes.Eq (AggId a_25)\n\nderiving instance GHC.Classes.Ord a_26 => GHC.Classes.Ord (AggId a_26)\n\nderiving instance GHC.Show.Show a_27 => GHC.Show.Show (AggId a_27)\n\ninstance AST.Unmarshal.Unmarshal AggId\n\ninstance Data.Foldable.Foldable AggId where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AggId where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AggId where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Aggregate a = Aggregate\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((AddExpr GHC.Generics.:+: AggId GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: ExprAggregateBody GHC.Generics.:+: FullAggregateBody GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_28.\n      AST.Traversable1.Class.Traversable1 a_28\n    )\n\ninstance AST.Unmarshal.SymbolMatching Aggregate where\n  matchedSymbols _ = [126]\n  showFailure _ node_29 =\n    \"expected \"\n      GHC.Base.<> ( \"aggregate\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_29 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_29) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_30 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_31 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_32 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_33 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_30\n        c1_31 = TreeSitter.Node.nodeStartPoint node_29\n      TreeSitter.Node.TSPoint\n        r2_32\n        c2_33 = TreeSitter.Node.nodeEndPoint node_29\n\nderiving instance GHC.Classes.Eq a_34 => GHC.Classes.Eq (Aggregate a_34)\n\nderiving instance GHC.Classes.Ord a_35 => GHC.Classes.Ord (Aggregate a_35)\n\nderiving instance GHC.Show.Show a_36 => GHC.Show.Show (Aggregate a_36)\n\ninstance AST.Unmarshal.Unmarshal Aggregate\n\ninstance Data.Foldable.Foldable Aggregate where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Aggregate where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Aggregate where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AnnotArg a = AnnotArg\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Result GHC.Generics.:+: SimpleId GHC.Generics.:+: This) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_37.\n      AST.Traversable1.Class.Traversable1 a_37\n    )\n\ninstance AST.Unmarshal.SymbolMatching AnnotArg where\n  matchedSymbols _ = [148]\n  showFailure _ node_38 =\n    \"expected \"\n      GHC.Base.<> ( \"annotArg\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_38 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_38) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_39 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_40 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_41 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_42 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_39\n        c1_40 = TreeSitter.Node.nodeStartPoint node_38\n      TreeSitter.Node.TSPoint\n        r2_41\n        c2_42 = TreeSitter.Node.nodeEndPoint node_38\n\nderiving instance GHC.Classes.Eq a_43 => GHC.Classes.Eq (AnnotArg a_43)\n\nderiving instance GHC.Classes.Ord a_44 => GHC.Classes.Ord (AnnotArg a_44)\n\nderiving instance GHC.Show.Show a_45 => GHC.Show.Show (AnnotArg a_45)\n\ninstance AST.Unmarshal.Unmarshal AnnotArg\n\ninstance Data.Foldable.Foldable AnnotArg where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AnnotArg where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AnnotArg where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AnnotName a = AnnotName {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_46.\n      AST.Traversable1.Class.Traversable1 a_46\n    )\n\ninstance AST.Unmarshal.SymbolMatching AnnotName where\n  matchedSymbols _ = [147]\n  showFailure _ node_47 =\n    \"expected \"\n      GHC.Base.<> ( \"annotName\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_47 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_47) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_48 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_49 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_50 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_51 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_48\n        c1_49 = TreeSitter.Node.nodeStartPoint node_47\n      TreeSitter.Node.TSPoint\n        r2_50\n        c2_51 = TreeSitter.Node.nodeEndPoint node_47\n\nderiving instance GHC.Classes.Eq a_52 => GHC.Classes.Eq (AnnotName a_52)\n\nderiving instance GHC.Classes.Ord a_53 => GHC.Classes.Ord (AnnotName a_53)\n\nderiving instance GHC.Show.Show a_54 => GHC.Show.Show (AnnotName a_54)\n\ninstance AST.Unmarshal.Unmarshal AnnotName\n\ninstance Data.Foldable.Foldable AnnotName where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AnnotName where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AnnotName where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Annotation a = Annotation\n  { ann :: a,\n    args :: ([AST.Parse.Err ((AnonymousComma GHC.Generics.:+: AnnotArg) a)]),\n    name :: (AST.Parse.Err (AnnotName a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_55.\n      AST.Traversable1.Class.Traversable1 a_55\n    )\n\ninstance AST.Unmarshal.SymbolMatching Annotation where\n  matchedSymbols _ = [146]\n  showFailure _ node_56 =\n    \"expected \"\n      GHC.Base.<> ( \"annotation\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_56 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_56) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_57 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_58 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_59 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_60 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_57\n        c1_58 = TreeSitter.Node.nodeStartPoint node_56\n      TreeSitter.Node.TSPoint\n        r2_59\n        c2_60 = TreeSitter.Node.nodeEndPoint node_56\n\nderiving instance GHC.Classes.Eq a_61 => GHC.Classes.Eq (Annotation a_61)\n\nderiving instance GHC.Classes.Ord a_62 => GHC.Classes.Ord (Annotation a_62)\n\nderiving instance GHC.Show.Show a_63 => GHC.Show.Show (Annotation a_63)\n\ninstance AST.Unmarshal.Unmarshal Annotation\n\ninstance Data.Foldable.Foldable Annotation where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Annotation where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Annotation where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AritylessPredicateExpr a = AritylessPredicateExpr\n  { ann :: a,\n    name :: (AST.Parse.Err (LiteralId a)),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ModuleExpr a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_64.\n      AST.Traversable1.Class.Traversable1 a_64\n    )\n\ninstance AST.Unmarshal.SymbolMatching AritylessPredicateExpr where\n  matchedSymbols _ = [160]\n  showFailure _ node_65 =\n    \"expected \"\n      GHC.Base.<> ( \"aritylessPredicateExpr\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_65 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_65) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_66 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_67 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_68 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_69 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_66\n        c1_67 = TreeSitter.Node.nodeStartPoint node_65\n      TreeSitter.Node.TSPoint\n        r2_68\n        c2_69 = TreeSitter.Node.nodeEndPoint node_65\n\nderiving instance GHC.Classes.Eq a_70 => GHC.Classes.Eq (AritylessPredicateExpr a_70)\n\nderiving instance GHC.Classes.Ord a_71 => GHC.Classes.Ord (AritylessPredicateExpr a_71)\n\nderiving instance GHC.Show.Show a_72 => GHC.Show.Show (AritylessPredicateExpr a_72)\n\ninstance AST.Unmarshal.Unmarshal AritylessPredicateExpr\n\ninstance Data.Foldable.Foldable AritylessPredicateExpr where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AritylessPredicateExpr where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AritylessPredicateExpr where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AsExpr a = AsExpr\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: As GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: VarName GHC.Generics.:+: Variable) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_73.\n      AST.Traversable1.Class.Traversable1 a_73\n    )\n\ninstance AST.Unmarshal.SymbolMatching AsExpr where\n  matchedSymbols _ = [142]\n  showFailure _ node_74 =\n    \"expected \"\n      GHC.Base.<> ( \"asExpr\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_74 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_74) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_75 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_76 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_77 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_78 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_75\n        c1_76 = TreeSitter.Node.nodeStartPoint node_74\n      TreeSitter.Node.TSPoint\n        r2_77\n        c2_78 = TreeSitter.Node.nodeEndPoint node_74\n\nderiving instance GHC.Classes.Eq a_79 => GHC.Classes.Eq (AsExpr a_79)\n\nderiving instance GHC.Classes.Ord a_80 => GHC.Classes.Ord (AsExpr a_80)\n\nderiving instance GHC.Show.Show a_81 => GHC.Show.Show (AsExpr a_81)\n\ninstance AST.Unmarshal.Unmarshal AsExpr\n\ninstance Data.Foldable.Foldable AsExpr where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AsExpr where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AsExpr where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AsExprs a = AsExprs\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (AsExpr a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_82.\n      AST.Traversable1.Class.Traversable1 a_82\n    )\n\ninstance AST.Unmarshal.SymbolMatching AsExprs where\n  matchedSymbols _ = [141]\n  showFailure _ node_83 =\n    \"expected \"\n      GHC.Base.<> ( \"asExprs\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_83 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_83) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_84 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_85 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_86 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_87 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_84\n        c1_85 = TreeSitter.Node.nodeStartPoint node_83\n      TreeSitter.Node.TSPoint\n        r2_86\n        c2_87 = TreeSitter.Node.nodeEndPoint node_83\n\nderiving instance GHC.Classes.Eq a_88 => GHC.Classes.Eq (AsExprs a_88)\n\nderiving instance GHC.Classes.Ord a_89 => GHC.Classes.Ord (AsExprs a_89)\n\nderiving instance GHC.Show.Show a_90 => GHC.Show.Show (AsExprs a_90)\n\ninstance AST.Unmarshal.Unmarshal AsExprs\n\ninstance Data.Foldable.Foldable AsExprs where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AsExprs where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AsExprs where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Body a = Body\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_91.\n      AST.Traversable1.Class.Traversable1 a_91\n    )\n\ninstance AST.Unmarshal.SymbolMatching Body where\n  matchedSymbols _ = [101]\n  showFailure _ node_92 =\n    \"expected \"\n      GHC.Base.<> ( \"body\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_92 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_92) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_93 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_94 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_95 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_96 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_93\n        c1_94 = TreeSitter.Node.nodeStartPoint node_92\n      TreeSitter.Node.TSPoint\n        r2_95\n        c2_96 = TreeSitter.Node.nodeEndPoint node_92\n\nderiving instance GHC.Classes.Eq a_97 => GHC.Classes.Eq (Body a_97)\n\nderiving instance GHC.Classes.Ord a_98 => GHC.Classes.Ord (Body a_98)\n\nderiving instance GHC.Show.Show a_99 => GHC.Show.Show (Body a_99)\n\ninstance AST.Unmarshal.Unmarshal Body\n\ninstance Data.Foldable.Foldable Body where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Body where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Body where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Bool a = Bool\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((False GHC.Generics.:+: True) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_100.\n      AST.Traversable1.Class.Traversable1 a_100\n    )\n\ninstance AST.Unmarshal.SymbolMatching Bool where\n  matchedSymbols _ = [132]\n  showFailure _ node_101 =\n    \"expected \"\n      GHC.Base.<> ( \"bool\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_101 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_101) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_102 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_103 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_104 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_105 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_102\n        c1_103 = TreeSitter.Node.nodeStartPoint node_101\n      TreeSitter.Node.TSPoint\n        r2_104\n        c2_105 = TreeSitter.Node.nodeEndPoint node_101\n\nderiving instance GHC.Classes.Eq a_106 => GHC.Classes.Eq (Bool a_106)\n\nderiving instance GHC.Classes.Ord a_107 => GHC.Classes.Ord (Bool a_107)\n\nderiving instance GHC.Show.Show a_108 => GHC.Show.Show (Bool a_108)\n\ninstance AST.Unmarshal.Unmarshal Bool\n\ninstance Data.Foldable.Foldable Bool where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Bool where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Bool where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Charpred a = Charpred\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClassName GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_109.\n      AST.Traversable1.Class.Traversable1 a_109\n    )\n\ninstance AST.Unmarshal.SymbolMatching Charpred where\n  matchedSymbols _ = [96]\n  showFailure _ node_110 =\n    \"expected \"\n      GHC.Base.<> ( \"charpred\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_110 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_110) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_111 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_112 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_113 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_114 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_111\n        c1_112 = TreeSitter.Node.nodeStartPoint node_110\n      TreeSitter.Node.TSPoint\n        r2_113\n        c2_114 = TreeSitter.Node.nodeEndPoint node_110\n\nderiving instance GHC.Classes.Eq a_115 => GHC.Classes.Eq (Charpred a_115)\n\nderiving instance GHC.Classes.Ord a_116 => GHC.Classes.Ord (Charpred a_116)\n\nderiving instance GHC.Show.Show a_117 => GHC.Show.Show (Charpred a_117)\n\ninstance AST.Unmarshal.Unmarshal Charpred\n\ninstance Data.Foldable.Foldable Charpred where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Charpred where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Charpred where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ClassMember a = ClassMember\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Annotation GHC.Generics.:+: Charpred GHC.Generics.:+: Field GHC.Generics.:+: MemberPredicate GHC.Generics.:+: Qldoc) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_118.\n      AST.Traversable1.Class.Traversable1 a_118\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClassMember where\n  matchedSymbols _ = [95]\n  showFailure _ node_119 =\n    \"expected \"\n      GHC.Base.<> ( \"classMember\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_119 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_119) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_120 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_121 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_122 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_123 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_120\n        c1_121 = TreeSitter.Node.nodeStartPoint node_119\n      TreeSitter.Node.TSPoint\n        r2_122\n        c2_123 = TreeSitter.Node.nodeEndPoint node_119\n\nderiving instance GHC.Classes.Eq a_124 => GHC.Classes.Eq (ClassMember a_124)\n\nderiving instance GHC.Classes.Ord a_125 => GHC.Classes.Ord (ClassMember a_125)\n\nderiving instance GHC.Show.Show a_126 => GHC.Show.Show (ClassMember a_126)\n\ninstance AST.Unmarshal.Unmarshal ClassMember\n\ninstance Data.Foldable.Foldable ClassMember where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClassMember where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClassMember where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ClassName a = ClassName {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_127.\n      AST.Traversable1.Class.Traversable1 a_127\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClassName where\n  matchedSymbols _ = [155]\n  showFailure _ node_128 =\n    \"expected \"\n      GHC.Base.<> ( \"className\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_128 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_128) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_129 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_130 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_131 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_132 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_129\n        c1_130 = TreeSitter.Node.nodeStartPoint node_128\n      TreeSitter.Node.TSPoint\n        r2_131\n        c2_132 = TreeSitter.Node.nodeEndPoint node_128\n\nderiving instance GHC.Classes.Eq a_133 => GHC.Classes.Eq (ClassName a_133)\n\nderiving instance GHC.Classes.Ord a_134 => GHC.Classes.Ord (ClassName a_134)\n\nderiving instance GHC.Show.Show a_135 => GHC.Show.Show (ClassName a_135)\n\ninstance AST.Unmarshal.Unmarshal ClassName\n\ninstance Data.Foldable.Foldable ClassName where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClassName where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClassName where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ClasslessPredicate a = ClasslessPredicate\n  { ann :: a,\n    name :: (AST.Parse.Err (PredicateName a)),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Body GHC.Generics.:+: Empty GHC.Generics.:+: HigherOrderTerm GHC.Generics.:+: PredicateAliasBody GHC.Generics.:+: ReturnType GHC.Generics.:+: VarDecl) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_136.\n      AST.Traversable1.Class.Traversable1 a_136\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClasslessPredicate where\n  matchedSymbols _ = [89]\n  showFailure _ node_137 =\n    \"expected \"\n      GHC.Base.<> ( \"classlessPredicate\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_137 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_137) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_138 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_139 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_140 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_141 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_138\n        c1_139 = TreeSitter.Node.nodeStartPoint node_137\n      TreeSitter.Node.TSPoint\n        r2_140\n        c2_141 = TreeSitter.Node.nodeEndPoint node_137\n\nderiving instance GHC.Classes.Eq a_142 => GHC.Classes.Eq (ClasslessPredicate a_142)\n\nderiving instance GHC.Classes.Ord a_143 => GHC.Classes.Ord (ClasslessPredicate a_143)\n\nderiving instance GHC.Show.Show a_144 => GHC.Show.Show (ClasslessPredicate a_144)\n\ninstance AST.Unmarshal.Unmarshal ClasslessPredicate\n\ninstance Data.Foldable.Foldable ClasslessPredicate where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClasslessPredicate where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClasslessPredicate where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ClasslessPredicateCall a = ClasslessPredicateCall\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: AritylessPredicateExpr GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: Closure GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Underscore GHC.Generics.:+: Variable) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_145.\n      AST.Traversable1.Class.Traversable1 a_145\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClasslessPredicateCall where\n  matchedSymbols _ = [121]\n  showFailure _ node_146 =\n    \"expected \"\n      GHC.Base.<> ( \"classless_predicate_call\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_146 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_146) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_147 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_148 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_149 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_150 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_147\n        c1_148 = TreeSitter.Node.nodeStartPoint node_146\n      TreeSitter.Node.TSPoint\n        r2_149\n        c2_150 = TreeSitter.Node.nodeEndPoint node_146\n\nderiving instance GHC.Classes.Eq a_151 => GHC.Classes.Eq (ClasslessPredicateCall a_151)\n\nderiving instance GHC.Classes.Ord a_152 => GHC.Classes.Ord (ClasslessPredicateCall a_152)\n\nderiving instance GHC.Show.Show a_153 => GHC.Show.Show (ClasslessPredicateCall a_153)\n\ninstance AST.Unmarshal.Unmarshal ClasslessPredicateCall\n\ninstance Data.Foldable.Foldable ClasslessPredicateCall where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClasslessPredicateCall where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClasslessPredicateCall where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Closure a = Closure\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Plus GHC.Generics.:+: Star) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_154.\n      AST.Traversable1.Class.Traversable1 a_154\n    )\n\ninstance AST.Unmarshal.SymbolMatching Closure where\n  matchedSymbols _ = [138]\n  showFailure _ node_155 =\n    \"expected \"\n      GHC.Base.<> ( \"closure\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_155 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_155) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_156 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_157 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_158 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_159 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_156\n        c1_157 = TreeSitter.Node.nodeStartPoint node_155\n      TreeSitter.Node.TSPoint\n        r2_158\n        c2_159 = TreeSitter.Node.nodeEndPoint node_155\n\nderiving instance GHC.Classes.Eq a_160 => GHC.Classes.Eq (Closure a_160)\n\nderiving instance GHC.Classes.Ord a_161 => GHC.Classes.Ord (Closure a_161)\n\nderiving instance GHC.Show.Show a_162 => GHC.Show.Show (Closure a_162)\n\ninstance AST.Unmarshal.Unmarshal Closure\n\ninstance Data.Foldable.Foldable Closure where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Closure where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Closure where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CompTerm a = CompTerm\n  { ann :: a,\n    left :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a)),\n    right :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a)),\n    extraChildren :: (AST.Parse.Err (Compop a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_163.\n      AST.Traversable1.Class.Traversable1 a_163\n    )\n\ninstance AST.Unmarshal.SymbolMatching CompTerm where\n  matchedSymbols _ = [109]\n  showFailure _ node_164 =\n    \"expected \"\n      GHC.Base.<> ( \"comp_term\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_164 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_164) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_165 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_166 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_167 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_168 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_165\n        c1_166 = TreeSitter.Node.nodeStartPoint node_164\n      TreeSitter.Node.TSPoint\n        r2_167\n        c2_168 = TreeSitter.Node.nodeEndPoint node_164\n\nderiving instance GHC.Classes.Eq a_169 => GHC.Classes.Eq (CompTerm a_169)\n\nderiving instance GHC.Classes.Ord a_170 => GHC.Classes.Ord (CompTerm a_170)\n\nderiving instance GHC.Show.Show a_171 => GHC.Show.Show (CompTerm a_171)\n\ninstance AST.Unmarshal.Unmarshal CompTerm\n\ninstance Data.Foldable.Foldable CompTerm where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CompTerm where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CompTerm where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Compop a = Compop\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Eq GHC.Generics.:+: Ge GHC.Generics.:+: Gt GHC.Generics.:+: Le GHC.Generics.:+: Lt GHC.Generics.:+: Ne) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_172.\n      AST.Traversable1.Class.Traversable1 a_172\n    )\n\ninstance AST.Unmarshal.SymbolMatching Compop where\n  matchedSymbols _ = [134]\n  showFailure _ node_173 =\n    \"expected \"\n      GHC.Base.<> ( \"compop\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_173 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_173) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_174 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_175 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_176 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_177 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_174\n        c1_175 = TreeSitter.Node.nodeStartPoint node_173\n      TreeSitter.Node.TSPoint\n        r2_176\n        c2_177 = TreeSitter.Node.nodeEndPoint node_173\n\nderiving instance GHC.Classes.Eq a_178 => GHC.Classes.Eq (Compop a_178)\n\nderiving instance GHC.Classes.Ord a_179 => GHC.Classes.Ord (Compop a_179)\n\nderiving instance GHC.Show.Show a_180 => GHC.Show.Show (Compop a_180)\n\ninstance AST.Unmarshal.Unmarshal Compop\n\ninstance Data.Foldable.Foldable Compop where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Compop where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Compop where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Conjunction a = Conjunction\n  { ann :: a,\n    left :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a)),\n    right :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_181.\n      AST.Traversable1.Class.Traversable1 a_181\n    )\n\ninstance AST.Unmarshal.SymbolMatching Conjunction where\n  matchedSymbols _ = [113]\n  showFailure _ node_182 =\n    \"expected \"\n      GHC.Base.<> ( \"conjunction\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_182 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_182) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_183 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_184 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_185 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_186 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_183\n        c1_184 = TreeSitter.Node.nodeStartPoint node_182\n      TreeSitter.Node.TSPoint\n        r2_185\n        c2_186 = TreeSitter.Node.nodeEndPoint node_182\n\nderiving instance GHC.Classes.Eq a_187 => GHC.Classes.Eq (Conjunction a_187)\n\nderiving instance GHC.Classes.Ord a_188 => GHC.Classes.Ord (Conjunction a_188)\n\nderiving instance GHC.Show.Show a_189 => GHC.Show.Show (Conjunction a_189)\n\ninstance AST.Unmarshal.Unmarshal Conjunction\n\ninstance Data.Foldable.Foldable Conjunction where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Conjunction where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Conjunction where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Dataclass a = Dataclass\n  { ann :: a,\n    name :: (AST.Parse.Err (ClassName a)),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Class GHC.Generics.:+: ClassMember GHC.Generics.:+: Extends GHC.Generics.:+: TypeAliasBody GHC.Generics.:+: TypeExpr) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_190.\n      AST.Traversable1.Class.Traversable1 a_190\n    )\n\ninstance AST.Unmarshal.SymbolMatching Dataclass where\n  matchedSymbols _ = [94]\n  showFailure _ node_191 =\n    \"expected \"\n      GHC.Base.<> ( \"dataclass\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_191 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_191) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_192 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_193 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_194 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_195 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_192\n        c1_193 = TreeSitter.Node.nodeStartPoint node_191\n      TreeSitter.Node.TSPoint\n        r2_194\n        c2_195 = TreeSitter.Node.nodeEndPoint node_191\n\nderiving instance GHC.Classes.Eq a_196 => GHC.Classes.Eq (Dataclass a_196)\n\nderiving instance GHC.Classes.Ord a_197 => GHC.Classes.Ord (Dataclass a_197)\n\nderiving instance GHC.Show.Show a_198 => GHC.Show.Show (Dataclass a_198)\n\ninstance AST.Unmarshal.Unmarshal Dataclass\n\ninstance Data.Foldable.Foldable Dataclass where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Dataclass where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Dataclass where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Datatype a = Datatype\n  { ann :: a,\n    name :: (AST.Parse.Err (ClassName a)),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((DatatypeBranches GHC.Generics.:+: Eq GHC.Generics.:+: Newtype) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_199.\n      AST.Traversable1.Class.Traversable1 a_199\n    )\n\ninstance AST.Unmarshal.SymbolMatching Datatype where\n  matchedSymbols _ = [90]\n  showFailure _ node_200 =\n    \"expected \"\n      GHC.Base.<> ( \"datatype\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_200 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_200) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_201 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_202 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_203 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_204 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_201\n        c1_202 = TreeSitter.Node.nodeStartPoint node_200\n      TreeSitter.Node.TSPoint\n        r2_203\n        c2_204 = TreeSitter.Node.nodeEndPoint node_200\n\nderiving instance GHC.Classes.Eq a_205 => GHC.Classes.Eq (Datatype a_205)\n\nderiving instance GHC.Classes.Ord a_206 => GHC.Classes.Ord (Datatype a_206)\n\nderiving instance GHC.Show.Show a_207 => GHC.Show.Show (Datatype a_207)\n\ninstance AST.Unmarshal.Unmarshal Datatype\n\ninstance Data.Foldable.Foldable Datatype where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Datatype where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Datatype where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DatatypeBranch a = DatatypeBranch\n  { ann :: a,\n    name :: (AST.Parse.Err (ClassName a)),\n    extraChildren :: ([AST.Parse.Err ((Annotation GHC.Generics.:+: Body GHC.Generics.:+: Qldoc GHC.Generics.:+: VarDecl) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_208.\n      AST.Traversable1.Class.Traversable1 a_208\n    )\n\ninstance AST.Unmarshal.SymbolMatching DatatypeBranch where\n  matchedSymbols _ = [92]\n  showFailure _ node_209 =\n    \"expected \"\n      GHC.Base.<> ( \"datatypeBranch\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_209 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_209) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_210 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_211 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_212 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_213 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_210\n        c1_211 = TreeSitter.Node.nodeStartPoint node_209\n      TreeSitter.Node.TSPoint\n        r2_212\n        c2_213 = TreeSitter.Node.nodeEndPoint node_209\n\nderiving instance GHC.Classes.Eq a_214 => GHC.Classes.Eq (DatatypeBranch a_214)\n\nderiving instance GHC.Classes.Ord a_215 => GHC.Classes.Ord (DatatypeBranch a_215)\n\nderiving instance GHC.Show.Show a_216 => GHC.Show.Show (DatatypeBranch a_216)\n\ninstance AST.Unmarshal.Unmarshal DatatypeBranch\n\ninstance Data.Foldable.Foldable DatatypeBranch where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DatatypeBranch where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DatatypeBranch where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DatatypeBranches a = DatatypeBranches\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (DatatypeBranch a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_217.\n      AST.Traversable1.Class.Traversable1 a_217\n    )\n\ninstance AST.Unmarshal.SymbolMatching DatatypeBranches where\n  matchedSymbols _ = [91]\n  showFailure _ node_218 =\n    \"expected \"\n      GHC.Base.<> ( \"datatypeBranches\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_218 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_218) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_219 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_220 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_221 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_222 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_219\n        c1_220 = TreeSitter.Node.nodeStartPoint node_218\n      TreeSitter.Node.TSPoint\n        r2_221\n        c2_222 = TreeSitter.Node.nodeEndPoint node_218\n\nderiving instance GHC.Classes.Eq a_223 => GHC.Classes.Eq (DatatypeBranches a_223)\n\nderiving instance GHC.Classes.Ord a_224 => GHC.Classes.Ord (DatatypeBranches a_224)\n\nderiving instance GHC.Show.Show a_225 => GHC.Show.Show (DatatypeBranches a_225)\n\ninstance AST.Unmarshal.Unmarshal DatatypeBranches\n\ninstance Data.Foldable.Foldable DatatypeBranches where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DatatypeBranches where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DatatypeBranches where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Dbtype a = Dbtype {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_226.\n      AST.Traversable1.Class.Traversable1 a_226\n    )\n\ninstance AST.Unmarshal.SymbolMatching Dbtype where\n  matchedSymbols _ = [156]\n  showFailure _ node_227 =\n    \"expected \"\n      GHC.Base.<> ( \"dbtype\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_227 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_227) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_228 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_229 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_230 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_231 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_228\n        c1_229 = TreeSitter.Node.nodeStartPoint node_227\n      TreeSitter.Node.TSPoint\n        r2_230\n        c2_231 = TreeSitter.Node.nodeEndPoint node_227\n\nderiving instance GHC.Classes.Eq a_232 => GHC.Classes.Eq (Dbtype a_232)\n\nderiving instance GHC.Classes.Ord a_233 => GHC.Classes.Ord (Dbtype a_233)\n\nderiving instance GHC.Show.Show a_234 => GHC.Show.Show (Dbtype a_234)\n\ninstance AST.Unmarshal.Unmarshal Dbtype\n\ninstance Data.Foldable.Foldable Dbtype where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Dbtype where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Dbtype where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Direction a = Direction\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Asc GHC.Generics.:+: Desc) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_235.\n      AST.Traversable1.Class.Traversable1 a_235\n    )\n\ninstance AST.Unmarshal.SymbolMatching Direction where\n  matchedSymbols _ = [139]\n  showFailure _ node_236 =\n    \"expected \"\n      GHC.Base.<> ( \"direction\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_236 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_236) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_237 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_238 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_239 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_240 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_237\n        c1_238 = TreeSitter.Node.nodeStartPoint node_236\n      TreeSitter.Node.TSPoint\n        r2_239\n        c2_240 = TreeSitter.Node.nodeEndPoint node_236\n\nderiving instance GHC.Classes.Eq a_241 => GHC.Classes.Eq (Direction a_241)\n\nderiving instance GHC.Classes.Ord a_242 => GHC.Classes.Ord (Direction a_242)\n\nderiving instance GHC.Show.Show a_243 => GHC.Show.Show (Direction a_243)\n\ninstance AST.Unmarshal.Unmarshal Direction\n\ninstance Data.Foldable.Foldable Direction where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Direction where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Direction where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Disjunction a = Disjunction\n  { ann :: a,\n    left :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a)),\n    right :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_244.\n      AST.Traversable1.Class.Traversable1 a_244\n    )\n\ninstance AST.Unmarshal.SymbolMatching Disjunction where\n  matchedSymbols _ = [114]\n  showFailure _ node_245 =\n    \"expected \"\n      GHC.Base.<> ( \"disjunction\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_245 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_245) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_246 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_247 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_248 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_249 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_246\n        c1_247 = TreeSitter.Node.nodeStartPoint node_245\n      TreeSitter.Node.TSPoint\n        r2_248\n        c2_249 = TreeSitter.Node.nodeEndPoint node_245\n\nderiving instance GHC.Classes.Eq a_250 => GHC.Classes.Eq (Disjunction a_250)\n\nderiving instance GHC.Classes.Ord a_251 => GHC.Classes.Ord (Disjunction a_251)\n\nderiving instance GHC.Show.Show a_252 => GHC.Show.Show (Disjunction a_252)\n\ninstance AST.Unmarshal.Unmarshal Disjunction\n\ninstance Data.Foldable.Foldable Disjunction where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Disjunction where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Disjunction where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Empty a = Empty {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_253.\n      AST.Traversable1.Class.Traversable1 a_253\n    )\n\ninstance AST.Unmarshal.SymbolMatching Empty where\n  matchedSymbols _ = [100]\n  showFailure _ node_254 =\n    \"expected \"\n      GHC.Base.<> ( \"empty\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_254 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_254) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_255 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_256 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_257 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_258 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_255\n        c1_256 = TreeSitter.Node.nodeStartPoint node_254\n      TreeSitter.Node.TSPoint\n        r2_257\n        c2_258 = TreeSitter.Node.nodeEndPoint node_254\n\nderiving instance GHC.Classes.Eq a_259 => GHC.Classes.Eq (Empty a_259)\n\nderiving instance GHC.Classes.Ord a_260 => GHC.Classes.Ord (Empty a_260)\n\nderiving instance GHC.Show.Show a_261 => GHC.Show.Show (Empty a_261)\n\ninstance AST.Unmarshal.Unmarshal Empty\n\ninstance Data.Foldable.Foldable Empty where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Empty where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Empty where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExprAggregateBody a = ExprAggregateBody\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((AsExprs GHC.Generics.:+: OrderBys) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_262.\n      AST.Traversable1.Class.Traversable1 a_262\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExprAggregateBody where\n  matchedSymbols _ = [125]\n  showFailure _ node_263 =\n    \"expected \"\n      GHC.Base.<> ( \"expr_aggregate_body\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_263 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_263) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_264 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_265 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_266 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_267 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_264\n        c1_265 = TreeSitter.Node.nodeStartPoint node_263\n      TreeSitter.Node.TSPoint\n        r2_266\n        c2_267 = TreeSitter.Node.nodeEndPoint node_263\n\nderiving instance GHC.Classes.Eq a_268 => GHC.Classes.Eq (ExprAggregateBody a_268)\n\nderiving instance GHC.Classes.Ord a_269 => GHC.Classes.Ord (ExprAggregateBody a_269)\n\nderiving instance GHC.Show.Show a_270 => GHC.Show.Show (ExprAggregateBody a_270)\n\ninstance AST.Unmarshal.Unmarshal ExprAggregateBody\n\ninstance Data.Foldable.Foldable ExprAggregateBody where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExprAggregateBody where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExprAggregateBody where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Field a = Field {ann :: a, extraChildren :: (AST.Parse.Err (VarDecl a))}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_271.\n      AST.Traversable1.Class.Traversable1 a_271\n    )\n\ninstance AST.Unmarshal.SymbolMatching Field where\n  matchedSymbols _ = [98]\n  showFailure _ node_272 =\n    \"expected \"\n      GHC.Base.<> ( \"field\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_272 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_272) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_273 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_274 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_275 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_276 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_273\n        c1_274 = TreeSitter.Node.nodeStartPoint node_272\n      TreeSitter.Node.TSPoint\n        r2_275\n        c2_276 = TreeSitter.Node.nodeEndPoint node_272\n\nderiving instance GHC.Classes.Eq a_277 => GHC.Classes.Eq (Field a_277)\n\nderiving instance GHC.Classes.Ord a_278 => GHC.Classes.Ord (Field a_278)\n\nderiving instance GHC.Show.Show a_279 => GHC.Show.Show (Field a_279)\n\ninstance AST.Unmarshal.Unmarshal Field\n\ninstance Data.Foldable.Foldable Field where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Field where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Field where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FullAggregateBody a = FullAggregateBody\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: AsExprs GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: OrderBys GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: VarDecl GHC.Generics.:+: Variable) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_280.\n      AST.Traversable1.Class.Traversable1 a_280\n    )\n\ninstance AST.Unmarshal.SymbolMatching FullAggregateBody where\n  matchedSymbols _ = [124]\n  showFailure _ node_281 =\n    \"expected \"\n      GHC.Base.<> ( \"full_aggregate_body\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_281 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_281) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_282 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_283 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_284 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_285 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_282\n        c1_283 = TreeSitter.Node.nodeStartPoint node_281\n      TreeSitter.Node.TSPoint\n        r2_284\n        c2_285 = TreeSitter.Node.nodeEndPoint node_281\n\nderiving instance GHC.Classes.Eq a_286 => GHC.Classes.Eq (FullAggregateBody a_286)\n\nderiving instance GHC.Classes.Ord a_287 => GHC.Classes.Ord (FullAggregateBody a_287)\n\nderiving instance GHC.Show.Show a_288 => GHC.Show.Show (FullAggregateBody a_288)\n\ninstance AST.Unmarshal.Unmarshal FullAggregateBody\n\ninstance Data.Foldable.Foldable FullAggregateBody where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FullAggregateBody where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FullAggregateBody where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata HigherOrderTerm a = HigherOrderTerm\n  { ann :: a,\n    name :: (AST.Parse.Err (LiteralId a)),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: Eq GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PredicateExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Underscore GHC.Generics.:+: Variable) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_289.\n      AST.Traversable1.Class.Traversable1 a_289\n    )\n\ninstance AST.Unmarshal.SymbolMatching HigherOrderTerm where\n  matchedSymbols _ = [102]\n  showFailure _ node_290 =\n    \"expected \"\n      GHC.Base.<> ( \"higherOrderTerm\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_290 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_290) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_291 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_292 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_293 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_294 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_291\n        c1_292 = TreeSitter.Node.nodeStartPoint node_290\n      TreeSitter.Node.TSPoint\n        r2_293\n        c2_294 = TreeSitter.Node.nodeEndPoint node_290\n\nderiving instance GHC.Classes.Eq a_295 => GHC.Classes.Eq (HigherOrderTerm a_295)\n\nderiving instance GHC.Classes.Ord a_296 => GHC.Classes.Ord (HigherOrderTerm a_296)\n\nderiving instance GHC.Show.Show a_297 => GHC.Show.Show (HigherOrderTerm a_297)\n\ninstance AST.Unmarshal.Unmarshal HigherOrderTerm\n\ninstance Data.Foldable.Foldable HigherOrderTerm where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor HigherOrderTerm where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable HigherOrderTerm where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IfTerm a = IfTerm\n  { ann :: a,\n    first :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a)),\n    second :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a)),\n    cond :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_298.\n      AST.Traversable1.Class.Traversable1 a_298\n    )\n\ninstance AST.Unmarshal.SymbolMatching IfTerm where\n  matchedSymbols _ = [112]\n  showFailure _ node_299 =\n    \"expected \"\n      GHC.Base.<> ( \"if_term\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_299 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_299) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_300 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_301 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_302 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_303 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_300\n        c1_301 = TreeSitter.Node.nodeStartPoint node_299\n      TreeSitter.Node.TSPoint\n        r2_302\n        c2_303 = TreeSitter.Node.nodeEndPoint node_299\n\nderiving instance GHC.Classes.Eq a_304 => GHC.Classes.Eq (IfTerm a_304)\n\nderiving instance GHC.Classes.Ord a_305 => GHC.Classes.Ord (IfTerm a_305)\n\nderiving instance GHC.Show.Show a_306 => GHC.Show.Show (IfTerm a_306)\n\ninstance AST.Unmarshal.Unmarshal IfTerm\n\ninstance Data.Foldable.Foldable IfTerm where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IfTerm where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IfTerm where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Implication a = Implication\n  { ann :: a,\n    left :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a)),\n    right :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_307.\n      AST.Traversable1.Class.Traversable1 a_307\n    )\n\ninstance AST.Unmarshal.SymbolMatching Implication where\n  matchedSymbols _ = [115]\n  showFailure _ node_308 =\n    \"expected \"\n      GHC.Base.<> ( \"implication\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_308 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_308) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_309 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_310 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_311 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_312 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_309\n        c1_310 = TreeSitter.Node.nodeStartPoint node_308\n      TreeSitter.Node.TSPoint\n        r2_311\n        c2_312 = TreeSitter.Node.nodeEndPoint node_308\n\nderiving instance GHC.Classes.Eq a_313 => GHC.Classes.Eq (Implication a_313)\n\nderiving instance GHC.Classes.Ord a_314 => GHC.Classes.Ord (Implication a_314)\n\nderiving instance GHC.Show.Show a_315 => GHC.Show.Show (Implication a_315)\n\ninstance AST.Unmarshal.Unmarshal Implication\n\ninstance Data.Foldable.Foldable Implication where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Implication where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Implication where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImportModuleExpr a = ImportModuleExpr\n  { ann :: a,\n    name :: ([AST.Parse.Err (SimpleId a)]),\n    extraChildren :: (AST.Parse.Err (QualModuleExpr a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_316.\n      AST.Traversable1.Class.Traversable1 a_316\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImportModuleExpr where\n  matchedSymbols _ = [151]\n  showFailure _ node_317 =\n    \"expected \"\n      GHC.Base.<> ( \"importModuleExpr\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_317 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_317) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_318 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_319 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_320 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_321 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_318\n        c1_319 = TreeSitter.Node.nodeStartPoint node_317\n      TreeSitter.Node.TSPoint\n        r2_320\n        c2_321 = TreeSitter.Node.nodeEndPoint node_317\n\nderiving instance GHC.Classes.Eq a_322 => GHC.Classes.Eq (ImportModuleExpr a_322)\n\nderiving instance GHC.Classes.Ord a_323 => GHC.Classes.Ord (ImportModuleExpr a_323)\n\nderiving instance GHC.Show.Show a_324 => GHC.Show.Show (ImportModuleExpr a_324)\n\ninstance AST.Unmarshal.Unmarshal ImportModuleExpr\n\ninstance Data.Foldable.Foldable ImportModuleExpr where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImportModuleExpr where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImportModuleExpr where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Imprt a = Imprt\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((As GHC.Generics.:+: Import GHC.Generics.:+: ImportModuleExpr GHC.Generics.:+: ModuleName) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_325.\n      AST.Traversable1.Class.Traversable1 a_325\n    )\n\ninstance AST.Unmarshal.SymbolMatching Imprt where\n  matchedSymbols _ = [85]\n  showFailure _ node_326 =\n    \"expected \"\n      GHC.Base.<> ( \"imprt\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_326 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_326) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_327 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_328 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_329 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_330 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_327\n        c1_328 = TreeSitter.Node.nodeStartPoint node_326\n      TreeSitter.Node.TSPoint\n        r2_329\n        c2_330 = TreeSitter.Node.nodeEndPoint node_326\n\nderiving instance GHC.Classes.Eq a_331 => GHC.Classes.Eq (Imprt a_331)\n\nderiving instance GHC.Classes.Ord a_332 => GHC.Classes.Ord (Imprt a_332)\n\nderiving instance GHC.Show.Show a_333 => GHC.Show.Show (Imprt a_333)\n\ninstance AST.Unmarshal.Unmarshal Imprt\n\ninstance Data.Foldable.Foldable Imprt where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Imprt where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Imprt where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata InExpr a = InExpr\n  { ann :: a,\n    left :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a)),\n    right :: (AST.Parse.Err (Range a)),\n    extraChildren :: (AST.Parse.Err (In a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_334.\n      AST.Traversable1.Class.Traversable1 a_334\n    )\n\ninstance AST.Unmarshal.SymbolMatching InExpr where\n  matchedSymbols _ = [108]\n  showFailure _ node_335 =\n    \"expected \"\n      GHC.Base.<> ( \"in_expr\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_335 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_335) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_336 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_337 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_338 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_339 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_336\n        c1_337 = TreeSitter.Node.nodeStartPoint node_335\n      TreeSitter.Node.TSPoint\n        r2_338\n        c2_339 = TreeSitter.Node.nodeEndPoint node_335\n\nderiving instance GHC.Classes.Eq a_340 => GHC.Classes.Eq (InExpr a_340)\n\nderiving instance GHC.Classes.Ord a_341 => GHC.Classes.Ord (InExpr a_341)\n\nderiving instance GHC.Show.Show a_342 => GHC.Show.Show (InExpr a_342)\n\ninstance AST.Unmarshal.Unmarshal InExpr\n\ninstance Data.Foldable.Foldable InExpr where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor InExpr where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable InExpr where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata InstanceOf a = InstanceOf\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Instanceof GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: TypeExpr GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_343.\n      AST.Traversable1.Class.Traversable1 a_343\n    )\n\ninstance AST.Unmarshal.SymbolMatching InstanceOf where\n  matchedSymbols _ = [110]\n  showFailure _ node_344 =\n    \"expected \"\n      GHC.Base.<> ( \"instance_of\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_344 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_344) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_345 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_346 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_347 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_348 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_345\n        c1_346 = TreeSitter.Node.nodeStartPoint node_344\n      TreeSitter.Node.TSPoint\n        r2_347\n        c2_348 = TreeSitter.Node.nodeEndPoint node_344\n\nderiving instance GHC.Classes.Eq a_349 => GHC.Classes.Eq (InstanceOf a_349)\n\nderiving instance GHC.Classes.Ord a_350 => GHC.Classes.Ord (InstanceOf a_350)\n\nderiving instance GHC.Show.Show a_351 => GHC.Show.Show (InstanceOf a_351)\n\ninstance AST.Unmarshal.Unmarshal InstanceOf\n\ninstance Data.Foldable.Foldable InstanceOf where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor InstanceOf where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable InstanceOf where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Literal a = Literal\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Bool GHC.Generics.:+: Float GHC.Generics.:+: Integer GHC.Generics.:+: String) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_352.\n      AST.Traversable1.Class.Traversable1 a_352\n    )\n\ninstance AST.Unmarshal.SymbolMatching Literal where\n  matchedSymbols _ = [131]\n  showFailure _ node_353 =\n    \"expected \"\n      GHC.Base.<> ( \"literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_353 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_353) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_354 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_355 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_356 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_357 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_354\n        c1_355 = TreeSitter.Node.nodeStartPoint node_353\n      TreeSitter.Node.TSPoint\n        r2_356\n        c2_357 = TreeSitter.Node.nodeEndPoint node_353\n\nderiving instance GHC.Classes.Eq a_358 => GHC.Classes.Eq (Literal a_358)\n\nderiving instance GHC.Classes.Ord a_359 => GHC.Classes.Ord (Literal a_359)\n\nderiving instance GHC.Show.Show a_360 => GHC.Show.Show (Literal a_360)\n\ninstance AST.Unmarshal.Unmarshal Literal\n\ninstance Data.Foldable.Foldable Literal where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Literal where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Literal where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata LiteralId a = LiteralId {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_361.\n      AST.Traversable1.Class.Traversable1 a_361\n    )\n\ninstance AST.Unmarshal.SymbolMatching LiteralId where\n  matchedSymbols _ = [145]\n  showFailure _ node_362 =\n    \"expected \"\n      GHC.Base.<> ( \"literalId\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_362 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_362) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_363 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_364 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_365 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_366 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_363\n        c1_364 = TreeSitter.Node.nodeStartPoint node_362\n      TreeSitter.Node.TSPoint\n        r2_365\n        c2_366 = TreeSitter.Node.nodeEndPoint node_362\n\nderiving instance GHC.Classes.Eq a_367 => GHC.Classes.Eq (LiteralId a_367)\n\nderiving instance GHC.Classes.Ord a_368 => GHC.Classes.Ord (LiteralId a_368)\n\nderiving instance GHC.Show.Show a_369 => GHC.Show.Show (LiteralId a_369)\n\ninstance AST.Unmarshal.Unmarshal LiteralId\n\ninstance Data.Foldable.Foldable LiteralId where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor LiteralId where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable LiteralId where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MemberPredicate a = MemberPredicate\n  { ann :: a,\n    name :: (AST.Parse.Err (PredicateName a)),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Body GHC.Generics.:+: Empty GHC.Generics.:+: HigherOrderTerm GHC.Generics.:+: ReturnType GHC.Generics.:+: VarDecl) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_370.\n      AST.Traversable1.Class.Traversable1 a_370\n    )\n\ninstance AST.Unmarshal.SymbolMatching MemberPredicate where\n  matchedSymbols _ = [97]\n  showFailure _ node_371 =\n    \"expected \"\n      GHC.Base.<> ( \"memberPredicate\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_371 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_371) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_372 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_373 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_374 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_375 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_372\n        c1_373 = TreeSitter.Node.nodeStartPoint node_371\n      TreeSitter.Node.TSPoint\n        r2_374\n        c2_375 = TreeSitter.Node.nodeEndPoint node_371\n\nderiving instance GHC.Classes.Eq a_376 => GHC.Classes.Eq (MemberPredicate a_376)\n\nderiving instance GHC.Classes.Ord a_377 => GHC.Classes.Ord (MemberPredicate a_377)\n\nderiving instance GHC.Show.Show a_378 => GHC.Show.Show (MemberPredicate a_378)\n\ninstance AST.Unmarshal.Unmarshal MemberPredicate\n\ninstance Data.Foldable.Foldable MemberPredicate where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MemberPredicate where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MemberPredicate where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Module a = Module\n  { ann :: a,\n    name :: (AST.Parse.Err (ModuleName a)),\n    extraChildren :: ([AST.Parse.Err ((ModuleAliasBody GHC.Generics.:+: ModuleMember) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_379.\n      AST.Traversable1.Class.Traversable1 a_379\n    )\n\ninstance AST.Unmarshal.SymbolMatching Module where\n  matchedSymbols _ = [83]\n  showFailure _ node_380 =\n    \"expected \"\n      GHC.Base.<> ( \"module\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_380 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_380) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_381 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_382 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_383 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_384 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_381\n        c1_382 = TreeSitter.Node.nodeStartPoint node_380\n      TreeSitter.Node.TSPoint\n        r2_383\n        c2_384 = TreeSitter.Node.nodeEndPoint node_380\n\nderiving instance GHC.Classes.Eq a_385 => GHC.Classes.Eq (Module a_385)\n\nderiving instance GHC.Classes.Ord a_386 => GHC.Classes.Ord (Module a_386)\n\nderiving instance GHC.Show.Show a_387 => GHC.Show.Show (Module a_387)\n\ninstance AST.Unmarshal.Unmarshal Module\n\ninstance Data.Foldable.Foldable Module where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Module where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Module where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ModuleAliasBody a = ModuleAliasBody\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Eq GHC.Generics.:+: ModuleExpr) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_388.\n      AST.Traversable1.Class.Traversable1 a_388\n    )\n\ninstance AST.Unmarshal.SymbolMatching ModuleAliasBody where\n  matchedSymbols _ = [86]\n  showFailure _ node_389 =\n    \"expected \"\n      GHC.Base.<> ( \"moduleAliasBody\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_389 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_389) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_390 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_391 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_392 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_393 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_390\n        c1_391 = TreeSitter.Node.nodeStartPoint node_389\n      TreeSitter.Node.TSPoint\n        r2_392\n        c2_393 = TreeSitter.Node.nodeEndPoint node_389\n\nderiving instance GHC.Classes.Eq a_394 => GHC.Classes.Eq (ModuleAliasBody a_394)\n\nderiving instance GHC.Classes.Ord a_395 => GHC.Classes.Ord (ModuleAliasBody a_395)\n\nderiving instance GHC.Show.Show a_396 => GHC.Show.Show (ModuleAliasBody a_396)\n\ninstance AST.Unmarshal.Unmarshal ModuleAliasBody\n\ninstance Data.Foldable.Foldable ModuleAliasBody where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ModuleAliasBody where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ModuleAliasBody where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ModuleExpr a = ModuleExpr\n  { ann :: a,\n    name :: (GHC.Maybe.Maybe (AST.Parse.Err (SimpleId a))),\n    extraChildren :: (AST.Parse.Err ((ModuleExpr GHC.Generics.:+: SimpleId) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_397.\n      AST.Traversable1.Class.Traversable1 a_397\n    )\n\ninstance AST.Unmarshal.SymbolMatching ModuleExpr where\n  matchedSymbols _ = [152]\n  showFailure _ node_398 =\n    \"expected \"\n      GHC.Base.<> ( \"moduleExpr\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_398 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_398) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_399 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_400 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_401 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_402 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_399\n        c1_400 = TreeSitter.Node.nodeStartPoint node_398\n      TreeSitter.Node.TSPoint\n        r2_401\n        c2_402 = TreeSitter.Node.nodeEndPoint node_398\n\nderiving instance GHC.Classes.Eq a_403 => GHC.Classes.Eq (ModuleExpr a_403)\n\nderiving instance GHC.Classes.Ord a_404 => GHC.Classes.Ord (ModuleExpr a_404)\n\nderiving instance GHC.Show.Show a_405 => GHC.Show.Show (ModuleExpr a_405)\n\ninstance AST.Unmarshal.Unmarshal ModuleExpr\n\ninstance Data.Foldable.Foldable ModuleExpr where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ModuleExpr where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ModuleExpr where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ModuleMember a = ModuleMember\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Annotation GHC.Generics.:+: ClasslessPredicate GHC.Generics.:+: Dataclass GHC.Generics.:+: Datatype GHC.Generics.:+: Imprt GHC.Generics.:+: Module GHC.Generics.:+: Qldoc GHC.Generics.:+: Select) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_406.\n      AST.Traversable1.Class.Traversable1 a_406\n    )\n\ninstance AST.Unmarshal.SymbolMatching ModuleMember where\n  matchedSymbols _ = [84]\n  showFailure _ node_407 =\n    \"expected \"\n      GHC.Base.<> ( \"moduleMember\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_407 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_407) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_408 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_409 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_410 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_411 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_408\n        c1_409 = TreeSitter.Node.nodeStartPoint node_407\n      TreeSitter.Node.TSPoint\n        r2_410\n        c2_411 = TreeSitter.Node.nodeEndPoint node_407\n\nderiving instance GHC.Classes.Eq a_412 => GHC.Classes.Eq (ModuleMember a_412)\n\nderiving instance GHC.Classes.Ord a_413 => GHC.Classes.Ord (ModuleMember a_413)\n\nderiving instance GHC.Show.Show a_414 => GHC.Show.Show (ModuleMember a_414)\n\ninstance AST.Unmarshal.Unmarshal ModuleMember\n\ninstance Data.Foldable.Foldable ModuleMember where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ModuleMember where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ModuleMember where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ModuleName a = ModuleName\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (SimpleId a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_415.\n      AST.Traversable1.Class.Traversable1 a_415\n    )\n\ninstance AST.Unmarshal.SymbolMatching ModuleName where\n  matchedSymbols _ = [149]\n  showFailure _ node_416 =\n    \"expected \"\n      GHC.Base.<> ( \"moduleName\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_416 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_416) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_417 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_418 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_419 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_420 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_417\n        c1_418 = TreeSitter.Node.nodeStartPoint node_416\n      TreeSitter.Node.TSPoint\n        r2_419\n        c2_420 = TreeSitter.Node.nodeEndPoint node_416\n\nderiving instance GHC.Classes.Eq a_421 => GHC.Classes.Eq (ModuleName a_421)\n\nderiving instance GHC.Classes.Ord a_422 => GHC.Classes.Ord (ModuleName a_422)\n\nderiving instance GHC.Show.Show a_423 => GHC.Show.Show (ModuleName a_423)\n\ninstance AST.Unmarshal.Unmarshal ModuleName\n\ninstance Data.Foldable.Foldable ModuleName where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ModuleName where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ModuleName where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MulExpr a = MulExpr\n  { ann :: a,\n    left :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a)),\n    right :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a)),\n    extraChildren :: (AST.Parse.Err (Mulop a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_424.\n      AST.Traversable1.Class.Traversable1 a_424\n    )\n\ninstance AST.Unmarshal.SymbolMatching MulExpr where\n  matchedSymbols _ = [106]\n  showFailure _ node_425 =\n    \"expected \"\n      GHC.Base.<> ( \"mul_expr\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_425 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_425) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_426 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_427 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_428 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_429 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_426\n        c1_427 = TreeSitter.Node.nodeStartPoint node_425\n      TreeSitter.Node.TSPoint\n        r2_428\n        c2_429 = TreeSitter.Node.nodeEndPoint node_425\n\nderiving instance GHC.Classes.Eq a_430 => GHC.Classes.Eq (MulExpr a_430)\n\nderiving instance GHC.Classes.Ord a_431 => GHC.Classes.Ord (MulExpr a_431)\n\nderiving instance GHC.Show.Show a_432 => GHC.Show.Show (MulExpr a_432)\n\ninstance AST.Unmarshal.Unmarshal MulExpr\n\ninstance Data.Foldable.Foldable MulExpr where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MulExpr where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MulExpr where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Mulop a = Mulop\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Mod GHC.Generics.:+: Slash GHC.Generics.:+: Star) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_433.\n      AST.Traversable1.Class.Traversable1 a_433\n    )\n\ninstance AST.Unmarshal.SymbolMatching Mulop where\n  matchedSymbols _ = [136]\n  showFailure _ node_434 =\n    \"expected \"\n      GHC.Base.<> ( \"mulop\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_434 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_434) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_435 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_436 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_437 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_438 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_435\n        c1_436 = TreeSitter.Node.nodeStartPoint node_434\n      TreeSitter.Node.TSPoint\n        r2_437\n        c2_438 = TreeSitter.Node.nodeEndPoint node_434\n\nderiving instance GHC.Classes.Eq a_439 => GHC.Classes.Eq (Mulop a_439)\n\nderiving instance GHC.Classes.Ord a_440 => GHC.Classes.Ord (Mulop a_440)\n\nderiving instance GHC.Show.Show a_441 => GHC.Show.Show (Mulop a_441)\n\ninstance AST.Unmarshal.Unmarshal Mulop\n\ninstance Data.Foldable.Foldable Mulop where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Mulop where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Mulop where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Negation a = Negation\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: Not GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_442.\n      AST.Traversable1.Class.Traversable1 a_442\n    )\n\ninstance AST.Unmarshal.SymbolMatching Negation where\n  matchedSymbols _ = [111]\n  showFailure _ node_443 =\n    \"expected \"\n      GHC.Base.<> ( \"negation\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_443 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_443) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_444 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_445 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_446 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_447 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_444\n        c1_445 = TreeSitter.Node.nodeStartPoint node_443\n      TreeSitter.Node.TSPoint\n        r2_446\n        c2_447 = TreeSitter.Node.nodeEndPoint node_443\n\nderiving instance GHC.Classes.Eq a_448 => GHC.Classes.Eq (Negation a_448)\n\nderiving instance GHC.Classes.Ord a_449 => GHC.Classes.Ord (Negation a_449)\n\nderiving instance GHC.Show.Show a_450 => GHC.Show.Show (Negation a_450)\n\ninstance AST.Unmarshal.Unmarshal Negation\n\ninstance Data.Foldable.Foldable Negation where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Negation where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Negation where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata OrderBy a = OrderBy\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Direction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_451.\n      AST.Traversable1.Class.Traversable1 a_451\n    )\n\ninstance AST.Unmarshal.SymbolMatching OrderBy where\n  matchedSymbols _ = [144]\n  showFailure _ node_452 =\n    \"expected \"\n      GHC.Base.<> ( \"orderBy\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_452 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_452) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_453 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_454 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_455 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_456 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_453\n        c1_454 = TreeSitter.Node.nodeStartPoint node_452\n      TreeSitter.Node.TSPoint\n        r2_455\n        c2_456 = TreeSitter.Node.nodeEndPoint node_452\n\nderiving instance GHC.Classes.Eq a_457 => GHC.Classes.Eq (OrderBy a_457)\n\nderiving instance GHC.Classes.Ord a_458 => GHC.Classes.Ord (OrderBy a_458)\n\nderiving instance GHC.Show.Show a_459 => GHC.Show.Show (OrderBy a_459)\n\ninstance AST.Unmarshal.Unmarshal OrderBy\n\ninstance Data.Foldable.Foldable OrderBy where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor OrderBy where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable OrderBy where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata OrderBys a = OrderBys\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (OrderBy a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_460.\n      AST.Traversable1.Class.Traversable1 a_460\n    )\n\ninstance AST.Unmarshal.SymbolMatching OrderBys where\n  matchedSymbols _ = [143]\n  showFailure _ node_461 =\n    \"expected \"\n      GHC.Base.<> ( \"orderBys\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_461 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_461) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_462 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_463 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_464 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_465 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_462\n        c1_463 = TreeSitter.Node.nodeStartPoint node_461\n      TreeSitter.Node.TSPoint\n        r2_464\n        c2_465 = TreeSitter.Node.nodeEndPoint node_461\n\nderiving instance GHC.Classes.Eq a_466 => GHC.Classes.Eq (OrderBys a_466)\n\nderiving instance GHC.Classes.Ord a_467 => GHC.Classes.Ord (OrderBys a_467)\n\nderiving instance GHC.Show.Show a_468 => GHC.Show.Show (OrderBys a_468)\n\ninstance AST.Unmarshal.Unmarshal OrderBys\n\ninstance Data.Foldable.Foldable OrderBys where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor OrderBys where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable OrderBys where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ParExpr a = ParExpr\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_469.\n      AST.Traversable1.Class.Traversable1 a_469\n    )\n\ninstance AST.Unmarshal.SymbolMatching ParExpr where\n  matchedSymbols _ = [128]\n  showFailure _ node_470 =\n    \"expected \"\n      GHC.Base.<> ( \"par_expr\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_470 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_470) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_471 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_472 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_473 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_474 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_471\n        c1_472 = TreeSitter.Node.nodeStartPoint node_470\n      TreeSitter.Node.TSPoint\n        r2_473\n        c2_474 = TreeSitter.Node.nodeEndPoint node_470\n\nderiving instance GHC.Classes.Eq a_475 => GHC.Classes.Eq (ParExpr a_475)\n\nderiving instance GHC.Classes.Ord a_476 => GHC.Classes.Ord (ParExpr a_476)\n\nderiving instance GHC.Show.Show a_477 => GHC.Show.Show (ParExpr a_477)\n\ninstance AST.Unmarshal.Unmarshal ParExpr\n\ninstance Data.Foldable.Foldable ParExpr where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ParExpr where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ParExpr where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PredicateAliasBody a = PredicateAliasBody\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Eq GHC.Generics.:+: PredicateExpr) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_478.\n      AST.Traversable1.Class.Traversable1 a_478\n    )\n\ninstance AST.Unmarshal.SymbolMatching PredicateAliasBody where\n  matchedSymbols _ = [87]\n  showFailure _ node_479 =\n    \"expected \"\n      GHC.Base.<> ( \"predicateAliasBody\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_479 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_479) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_480 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_481 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_482 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_483 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_480\n        c1_481 = TreeSitter.Node.nodeStartPoint node_479\n      TreeSitter.Node.TSPoint\n        r2_482\n        c2_483 = TreeSitter.Node.nodeEndPoint node_479\n\nderiving instance GHC.Classes.Eq a_484 => GHC.Classes.Eq (PredicateAliasBody a_484)\n\nderiving instance GHC.Classes.Ord a_485 => GHC.Classes.Ord (PredicateAliasBody a_485)\n\nderiving instance GHC.Show.Show a_486 => GHC.Show.Show (PredicateAliasBody a_486)\n\ninstance AST.Unmarshal.Unmarshal PredicateAliasBody\n\ninstance Data.Foldable.Foldable PredicateAliasBody where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PredicateAliasBody where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PredicateAliasBody where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PredicateExpr a = PredicateExpr\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((AritylessPredicateExpr GHC.Generics.:+: Integer GHC.Generics.:+: Slash) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_487.\n      AST.Traversable1.Class.Traversable1 a_487\n    )\n\ninstance AST.Unmarshal.SymbolMatching PredicateExpr where\n  matchedSymbols _ = [161]\n  showFailure _ node_488 =\n    \"expected \"\n      GHC.Base.<> ( \"predicateExpr\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_488 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_488) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_489 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_490 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_491 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_492 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_489\n        c1_490 = TreeSitter.Node.nodeStartPoint node_488\n      TreeSitter.Node.TSPoint\n        r2_491\n        c2_492 = TreeSitter.Node.nodeEndPoint node_488\n\nderiving instance GHC.Classes.Eq a_493 => GHC.Classes.Eq (PredicateExpr a_493)\n\nderiving instance GHC.Classes.Ord a_494 => GHC.Classes.Ord (PredicateExpr a_494)\n\nderiving instance GHC.Show.Show a_495 => GHC.Show.Show (PredicateExpr a_495)\n\ninstance AST.Unmarshal.Unmarshal PredicateExpr\n\ninstance Data.Foldable.Foldable PredicateExpr where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PredicateExpr where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PredicateExpr where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PredicateName a = PredicateName {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_496.\n      AST.Traversable1.Class.Traversable1 a_496\n    )\n\ninstance AST.Unmarshal.SymbolMatching PredicateName where\n  matchedSymbols _ = [159]\n  showFailure _ node_497 =\n    \"expected \"\n      GHC.Base.<> ( \"predicateName\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_497 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_497) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_498 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_499 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_500 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_501 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_498\n        c1_499 = TreeSitter.Node.nodeStartPoint node_497\n      TreeSitter.Node.TSPoint\n        r2_500\n        c2_501 = TreeSitter.Node.nodeEndPoint node_497\n\nderiving instance GHC.Classes.Eq a_502 => GHC.Classes.Eq (PredicateName a_502)\n\nderiving instance GHC.Classes.Ord a_503 => GHC.Classes.Ord (PredicateName a_503)\n\nderiving instance GHC.Show.Show a_504 => GHC.Show.Show (PredicateName a_504)\n\ninstance AST.Unmarshal.Unmarshal PredicateName\n\ninstance Data.Foldable.Foldable PredicateName where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PredicateName where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PredicateName where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PrefixCast a = PrefixCast\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: TypeExpr GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_505.\n      AST.Traversable1.Class.Traversable1 a_505\n    )\n\ninstance AST.Unmarshal.SymbolMatching PrefixCast where\n  matchedSymbols _ = [104]\n  showFailure _ node_506 =\n    \"expected \"\n      GHC.Base.<> ( \"prefix_cast\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_506 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_506) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_507 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_508 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_509 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_510 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_507\n        c1_508 = TreeSitter.Node.nodeStartPoint node_506\n      TreeSitter.Node.TSPoint\n        r2_509\n        c2_510 = TreeSitter.Node.nodeEndPoint node_506\n\nderiving instance GHC.Classes.Eq a_511 => GHC.Classes.Eq (PrefixCast a_511)\n\nderiving instance GHC.Classes.Ord a_512 => GHC.Classes.Ord (PrefixCast a_512)\n\nderiving instance GHC.Show.Show a_513 => GHC.Show.Show (PrefixCast a_513)\n\ninstance AST.Unmarshal.Unmarshal PrefixCast\n\ninstance Data.Foldable.Foldable PrefixCast where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PrefixCast where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PrefixCast where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Ql a = Ql\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (ModuleMember a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_514.\n      AST.Traversable1.Class.Traversable1 a_514\n    )\n\ninstance AST.Unmarshal.SymbolMatching Ql where\n  matchedSymbols _ = [82]\n  showFailure _ node_515 =\n    \"expected \"\n      GHC.Base.<> ( \"ql\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_515 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_515) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_516 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_517 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_518 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_519 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_516\n        c1_517 = TreeSitter.Node.nodeStartPoint node_515\n      TreeSitter.Node.TSPoint\n        r2_518\n        c2_519 = TreeSitter.Node.nodeEndPoint node_515\n\nderiving instance GHC.Classes.Eq a_520 => GHC.Classes.Eq (Ql a_520)\n\nderiving instance GHC.Classes.Ord a_521 => GHC.Classes.Ord (Ql a_521)\n\nderiving instance GHC.Show.Show a_522 => GHC.Show.Show (Ql a_522)\n\ninstance AST.Unmarshal.Unmarshal Ql\n\ninstance Data.Foldable.Foldable Ql where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Ql where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Ql where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata QualModuleExpr a = QualModuleExpr\n  { ann :: a,\n    name :: (GHC.Base.NonEmpty (AST.Parse.Err (SimpleId a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_523.\n      AST.Traversable1.Class.Traversable1 a_523\n    )\n\ninstance AST.Unmarshal.SymbolMatching QualModuleExpr where\n  matchedSymbols _ = [150]\n  showFailure _ node_524 =\n    \"expected \"\n      GHC.Base.<> ( \"qualModuleExpr\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_524 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_524) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_525 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_526 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_527 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_528 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_525\n        c1_526 = TreeSitter.Node.nodeStartPoint node_524\n      TreeSitter.Node.TSPoint\n        r2_527\n        c2_528 = TreeSitter.Node.nodeEndPoint node_524\n\nderiving instance GHC.Classes.Eq a_529 => GHC.Classes.Eq (QualModuleExpr a_529)\n\nderiving instance GHC.Classes.Ord a_530 => GHC.Classes.Ord (QualModuleExpr a_530)\n\nderiving instance GHC.Show.Show a_531 => GHC.Show.Show (QualModuleExpr a_531)\n\ninstance AST.Unmarshal.Unmarshal QualModuleExpr\n\ninstance Data.Foldable.Foldable QualModuleExpr where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor QualModuleExpr where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable QualModuleExpr where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata QualifiedRhs a = QualifiedRhs\n  { ann :: a,\n    name :: (GHC.Maybe.Maybe (AST.Parse.Err (PredicateName a))),\n    extraChildren :: ([AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: Closure GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: TypeExpr GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Underscore GHC.Generics.:+: Variable) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_532.\n      AST.Traversable1.Class.Traversable1 a_532\n    )\n\ninstance AST.Unmarshal.SymbolMatching QualifiedRhs where\n  matchedSymbols _ = [120]\n  showFailure _ node_533 =\n    \"expected \"\n      GHC.Base.<> ( \"qualifiedRhs\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_533 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_533) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_534 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_535 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_536 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_537 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_534\n        c1_535 = TreeSitter.Node.nodeStartPoint node_533\n      TreeSitter.Node.TSPoint\n        r2_536\n        c2_537 = TreeSitter.Node.nodeEndPoint node_533\n\nderiving instance GHC.Classes.Eq a_538 => GHC.Classes.Eq (QualifiedRhs a_538)\n\nderiving instance GHC.Classes.Ord a_539 => GHC.Classes.Ord (QualifiedRhs a_539)\n\nderiving instance GHC.Show.Show a_540 => GHC.Show.Show (QualifiedRhs a_540)\n\ninstance AST.Unmarshal.Unmarshal QualifiedRhs\n\ninstance Data.Foldable.Foldable QualifiedRhs where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor QualifiedRhs where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable QualifiedRhs where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata QualifiedExpr a = QualifiedExpr\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: Literal GHC.Generics.:+: ParExpr GHC.Generics.:+: QualifiedRhs GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Range GHC.Generics.:+: SuperRef GHC.Generics.:+: Variable) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_541.\n      AST.Traversable1.Class.Traversable1 a_541\n    )\n\ninstance AST.Unmarshal.SymbolMatching QualifiedExpr where\n  matchedSymbols _ = [122]\n  showFailure _ node_542 =\n    \"expected \"\n      GHC.Base.<> ( \"qualified_expr\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_542 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_542) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_543 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_544 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_545 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_546 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_543\n        c1_544 = TreeSitter.Node.nodeStartPoint node_542\n      TreeSitter.Node.TSPoint\n        r2_545\n        c2_546 = TreeSitter.Node.nodeEndPoint node_542\n\nderiving instance GHC.Classes.Eq a_547 => GHC.Classes.Eq (QualifiedExpr a_547)\n\nderiving instance GHC.Classes.Ord a_548 => GHC.Classes.Ord (QualifiedExpr a_548)\n\nderiving instance GHC.Show.Show a_549 => GHC.Show.Show (QualifiedExpr a_549)\n\ninstance AST.Unmarshal.Unmarshal QualifiedExpr\n\ninstance Data.Foldable.Foldable QualifiedExpr where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor QualifiedExpr where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable QualifiedExpr where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Quantified a = Quantified\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Quantifier GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: VarDecl GHC.Generics.:+: Variable) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_550.\n      AST.Traversable1.Class.Traversable1 a_550\n    )\n\ninstance AST.Unmarshal.SymbolMatching Quantified where\n  matchedSymbols _ = [116]\n  showFailure _ node_551 =\n    \"expected \"\n      GHC.Base.<> ( \"quantified\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_551 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_551) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_552 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_553 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_554 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_555 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_552\n        c1_553 = TreeSitter.Node.nodeStartPoint node_551\n      TreeSitter.Node.TSPoint\n        r2_554\n        c2_555 = TreeSitter.Node.nodeEndPoint node_551\n\nderiving instance GHC.Classes.Eq a_556 => GHC.Classes.Eq (Quantified a_556)\n\nderiving instance GHC.Classes.Ord a_557 => GHC.Classes.Ord (Quantified a_557)\n\nderiving instance GHC.Show.Show a_558 => GHC.Show.Show (Quantified a_558)\n\ninstance AST.Unmarshal.Unmarshal Quantified\n\ninstance Data.Foldable.Foldable Quantified where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Quantified where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Quantified where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Quantifier a = Quantifier\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Exists GHC.Generics.:+: Forall GHC.Generics.:+: Forex) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_559.\n      AST.Traversable1.Class.Traversable1 a_559\n    )\n\ninstance AST.Unmarshal.SymbolMatching Quantifier where\n  matchedSymbols _ = [118]\n  showFailure _ node_560 =\n    \"expected \"\n      GHC.Base.<> ( \"quantifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_560 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_560) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_561 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_562 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_563 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_564 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_561\n        c1_562 = TreeSitter.Node.nodeStartPoint node_560\n      TreeSitter.Node.TSPoint\n        r2_563\n        c2_564 = TreeSitter.Node.nodeEndPoint node_560\n\nderiving instance GHC.Classes.Eq a_565 => GHC.Classes.Eq (Quantifier a_565)\n\nderiving instance GHC.Classes.Ord a_566 => GHC.Classes.Ord (Quantifier a_566)\n\nderiving instance GHC.Show.Show a_567 => GHC.Show.Show (Quantifier a_567)\n\ninstance AST.Unmarshal.Unmarshal Quantifier\n\ninstance Data.Foldable.Foldable Quantifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Quantifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Quantifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Range a = Range\n  { ann :: a,\n    upper :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a)),\n    lower :: (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Variable) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_568.\n      AST.Traversable1.Class.Traversable1 a_568\n    )\n\ninstance AST.Unmarshal.SymbolMatching Range where\n  matchedSymbols _ = [127]\n  showFailure _ node_569 =\n    \"expected \"\n      GHC.Base.<> ( \"range\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_569 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_569) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_570 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_571 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_572 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_573 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_570\n        c1_571 = TreeSitter.Node.nodeStartPoint node_569\n      TreeSitter.Node.TSPoint\n        r2_572\n        c2_573 = TreeSitter.Node.nodeEndPoint node_569\n\nderiving instance GHC.Classes.Eq a_574 => GHC.Classes.Eq (Range a_574)\n\nderiving instance GHC.Classes.Ord a_575 => GHC.Classes.Ord (Range a_575)\n\nderiving instance GHC.Show.Show a_576 => GHC.Show.Show (Range a_576)\n\ninstance AST.Unmarshal.Unmarshal Range\n\ninstance Data.Foldable.Foldable Range where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Range where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Range where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ReturnType a = ReturnType\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Predicate GHC.Generics.:+: TypeExpr) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_577.\n      AST.Traversable1.Class.Traversable1 a_577\n    )\n\ninstance AST.Unmarshal.SymbolMatching ReturnType where\n  matchedSymbols _ = [157]\n  showFailure _ node_578 =\n    \"expected \"\n      GHC.Base.<> ( \"returnType\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_578 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_578) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_579 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_580 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_581 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_582 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_579\n        c1_580 = TreeSitter.Node.nodeStartPoint node_578\n      TreeSitter.Node.TSPoint\n        r2_581\n        c2_582 = TreeSitter.Node.nodeEndPoint node_578\n\nderiving instance GHC.Classes.Eq a_583 => GHC.Classes.Eq (ReturnType a_583)\n\nderiving instance GHC.Classes.Ord a_584 => GHC.Classes.Ord (ReturnType a_584)\n\nderiving instance GHC.Show.Show a_585 => GHC.Show.Show (ReturnType a_585)\n\ninstance AST.Unmarshal.Unmarshal ReturnType\n\ninstance Data.Foldable.Foldable ReturnType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ReturnType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ReturnType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Select a = Select\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: AsExprs GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: OrderBys GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: VarDecl GHC.Generics.:+: Variable) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_586.\n      AST.Traversable1.Class.Traversable1 a_586\n    )\n\ninstance AST.Unmarshal.SymbolMatching Select where\n  matchedSymbols _ = [93]\n  showFailure _ node_587 =\n    \"expected \"\n      GHC.Base.<> ( \"select\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_587 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_587) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_588 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_589 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_590 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_591 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_588\n        c1_589 = TreeSitter.Node.nodeStartPoint node_587\n      TreeSitter.Node.TSPoint\n        r2_590\n        c2_591 = TreeSitter.Node.nodeEndPoint node_587\n\nderiving instance GHC.Classes.Eq a_592 => GHC.Classes.Eq (Select a_592)\n\nderiving instance GHC.Classes.Ord a_593 => GHC.Classes.Ord (Select a_593)\n\nderiving instance GHC.Show.Show a_594 => GHC.Show.Show (Select a_594)\n\ninstance AST.Unmarshal.Unmarshal Select\n\ninstance Data.Foldable.Foldable Select where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Select where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Select where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SimpleId a = SimpleId {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_595.\n      AST.Traversable1.Class.Traversable1 a_595\n    )\n\ninstance AST.Unmarshal.SymbolMatching SimpleId where\n  matchedSymbols _ = [154]\n  showFailure _ node_596 =\n    \"expected \"\n      GHC.Base.<> ( \"simpleId\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_596 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_596) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_597 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_598 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_599 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_600 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_597\n        c1_598 = TreeSitter.Node.nodeStartPoint node_596\n      TreeSitter.Node.TSPoint\n        r2_599\n        c2_600 = TreeSitter.Node.nodeEndPoint node_596\n\nderiving instance GHC.Classes.Eq a_601 => GHC.Classes.Eq (SimpleId a_601)\n\nderiving instance GHC.Classes.Ord a_602 => GHC.Classes.Ord (SimpleId a_602)\n\nderiving instance GHC.Show.Show a_603 => GHC.Show.Show (SimpleId a_603)\n\ninstance AST.Unmarshal.Unmarshal SimpleId\n\ninstance Data.Foldable.Foldable SimpleId where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SimpleId where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SimpleId where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SpecialId a = SpecialId {ann :: a, extraChildren :: (AST.Parse.Err (None a))}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_604.\n      AST.Traversable1.Class.Traversable1 a_604\n    )\n\ninstance AST.Unmarshal.SymbolMatching SpecialId where\n  matchedSymbols _ = [117]\n  showFailure _ node_605 =\n    \"expected \"\n      GHC.Base.<> ( \"specialId\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_605 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_605) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_606 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_607 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_608 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_609 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_606\n        c1_607 = TreeSitter.Node.nodeStartPoint node_605\n      TreeSitter.Node.TSPoint\n        r2_608\n        c2_609 = TreeSitter.Node.nodeEndPoint node_605\n\nderiving instance GHC.Classes.Eq a_610 => GHC.Classes.Eq (SpecialId a_610)\n\nderiving instance GHC.Classes.Ord a_611 => GHC.Classes.Ord (SpecialId a_611)\n\nderiving instance GHC.Show.Show a_612 => GHC.Show.Show (SpecialId a_612)\n\ninstance AST.Unmarshal.Unmarshal SpecialId\n\ninstance Data.Foldable.Foldable SpecialId where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SpecialId where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SpecialId where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SpecialCall a = SpecialCall\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (SpecialId a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_613.\n      AST.Traversable1.Class.Traversable1 a_613\n    )\n\ninstance AST.Unmarshal.SymbolMatching SpecialCall where\n  matchedSymbols _ = [103]\n  showFailure _ node_614 =\n    \"expected \"\n      GHC.Base.<> ( \"special_call\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_614 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_614) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_615 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_616 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_617 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_618 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_615\n        c1_616 = TreeSitter.Node.nodeStartPoint node_614\n      TreeSitter.Node.TSPoint\n        r2_617\n        c2_618 = TreeSitter.Node.nodeEndPoint node_614\n\nderiving instance GHC.Classes.Eq a_619 => GHC.Classes.Eq (SpecialCall a_619)\n\nderiving instance GHC.Classes.Ord a_620 => GHC.Classes.Ord (SpecialCall a_620)\n\nderiving instance GHC.Show.Show a_621 => GHC.Show.Show (SpecialCall a_621)\n\ninstance AST.Unmarshal.Unmarshal SpecialCall\n\ninstance Data.Foldable.Foldable SpecialCall where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SpecialCall where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SpecialCall where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SuperRef a = SuperRef\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Super GHC.Generics.:+: TypeExpr) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_622.\n      AST.Traversable1.Class.Traversable1 a_622\n    )\n\ninstance AST.Unmarshal.SymbolMatching SuperRef where\n  matchedSymbols _ = [123]\n  showFailure _ node_623 =\n    \"expected \"\n      GHC.Base.<> ( \"super_ref\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_623 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_623) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_624 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_625 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_626 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_627 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_624\n        c1_625 = TreeSitter.Node.nodeStartPoint node_623\n      TreeSitter.Node.TSPoint\n        r2_626\n        c2_627 = TreeSitter.Node.nodeEndPoint node_623\n\nderiving instance GHC.Classes.Eq a_628 => GHC.Classes.Eq (SuperRef a_628)\n\nderiving instance GHC.Classes.Ord a_629 => GHC.Classes.Ord (SuperRef a_629)\n\nderiving instance GHC.Show.Show a_630 => GHC.Show.Show (SuperRef a_630)\n\ninstance AST.Unmarshal.Unmarshal SuperRef\n\ninstance Data.Foldable.Foldable SuperRef where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SuperRef where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SuperRef where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeAliasBody a = TypeAliasBody\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Eq GHC.Generics.:+: TypeExpr) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_631.\n      AST.Traversable1.Class.Traversable1 a_631\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeAliasBody where\n  matchedSymbols _ = [88]\n  showFailure _ node_632 =\n    \"expected \"\n      GHC.Base.<> ( \"typeAliasBody\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_632 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_632) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_633 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_634 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_635 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_636 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_633\n        c1_634 = TreeSitter.Node.nodeStartPoint node_632\n      TreeSitter.Node.TSPoint\n        r2_635\n        c2_636 = TreeSitter.Node.nodeEndPoint node_632\n\nderiving instance GHC.Classes.Eq a_637 => GHC.Classes.Eq (TypeAliasBody a_637)\n\nderiving instance GHC.Classes.Ord a_638 => GHC.Classes.Ord (TypeAliasBody a_638)\n\nderiving instance GHC.Show.Show a_639 => GHC.Show.Show (TypeAliasBody a_639)\n\ninstance AST.Unmarshal.Unmarshal TypeAliasBody\n\ninstance Data.Foldable.Foldable TypeAliasBody where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeAliasBody where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeAliasBody where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeExpr a = TypeExpr\n  { ann :: a,\n    name :: (GHC.Maybe.Maybe (AST.Parse.Err (ClassName a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((ModuleExpr GHC.Generics.:+: TypeLiteral) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_640.\n      AST.Traversable1.Class.Traversable1 a_640\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeExpr where\n  matchedSymbols _ = [158]\n  showFailure _ node_641 =\n    \"expected \"\n      GHC.Base.<> ( \"typeExpr\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_641 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_641) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_642 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_643 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_644 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_645 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_642\n        c1_643 = TreeSitter.Node.nodeStartPoint node_641\n      TreeSitter.Node.TSPoint\n        r2_644\n        c2_645 = TreeSitter.Node.nodeEndPoint node_641\n\nderiving instance GHC.Classes.Eq a_646 => GHC.Classes.Eq (TypeExpr a_646)\n\nderiving instance GHC.Classes.Ord a_647 => GHC.Classes.Ord (TypeExpr a_647)\n\nderiving instance GHC.Show.Show a_648 => GHC.Show.Show (TypeExpr a_648)\n\ninstance AST.Unmarshal.Unmarshal TypeExpr\n\ninstance Data.Foldable.Foldable TypeExpr where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeExpr where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeExpr where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeLiteral a = TypeLiteral\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((Boolean GHC.Generics.:+: Date GHC.Generics.:+: Dbtype) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_649.\n      AST.Traversable1.Class.Traversable1 a_649\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeLiteral where\n  matchedSymbols _ = [153]\n  showFailure _ node_650 =\n    \"expected \"\n      GHC.Base.<> ( \"typeLiteral\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_650 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_650) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_651 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_652 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_653 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_654 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_651\n        c1_652 = TreeSitter.Node.nodeStartPoint node_650\n      TreeSitter.Node.TSPoint\n        r2_653\n        c2_654 = TreeSitter.Node.nodeEndPoint node_650\n\nderiving instance GHC.Classes.Eq a_655 => GHC.Classes.Eq (TypeLiteral a_655)\n\nderiving instance GHC.Classes.Ord a_656 => GHC.Classes.Ord (TypeLiteral a_656)\n\nderiving instance GHC.Show.Show a_657 => GHC.Show.Show (TypeLiteral a_657)\n\ninstance AST.Unmarshal.Unmarshal TypeLiteral\n\ninstance Data.Foldable.Foldable TypeLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UnaryExpr a = UnaryExpr\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((AddExpr GHC.Generics.:+: Aggregate GHC.Generics.:+: ClasslessPredicateCall GHC.Generics.:+: CompTerm GHC.Generics.:+: Conjunction GHC.Generics.:+: Disjunction GHC.Generics.:+: IfTerm GHC.Generics.:+: Implication GHC.Generics.:+: InExpr GHC.Generics.:+: InstanceOf GHC.Generics.:+: Literal GHC.Generics.:+: MulExpr GHC.Generics.:+: Negation GHC.Generics.:+: ParExpr GHC.Generics.:+: PrefixCast GHC.Generics.:+: QualifiedExpr GHC.Generics.:+: Quantified GHC.Generics.:+: Range GHC.Generics.:+: SpecialCall GHC.Generics.:+: SuperRef GHC.Generics.:+: UnaryExpr GHC.Generics.:+: Unop GHC.Generics.:+: Variable) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_658.\n      AST.Traversable1.Class.Traversable1 a_658\n    )\n\ninstance AST.Unmarshal.SymbolMatching UnaryExpr where\n  matchedSymbols _ = [105]\n  showFailure _ node_659 =\n    \"expected \"\n      GHC.Base.<> ( \"unary_expr\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_659 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_659) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_660 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_661 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_662 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_663 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_660\n        c1_661 = TreeSitter.Node.nodeStartPoint node_659\n      TreeSitter.Node.TSPoint\n        r2_662\n        c2_663 = TreeSitter.Node.nodeEndPoint node_659\n\nderiving instance GHC.Classes.Eq a_664 => GHC.Classes.Eq (UnaryExpr a_664)\n\nderiving instance GHC.Classes.Ord a_665 => GHC.Classes.Ord (UnaryExpr a_665)\n\nderiving instance GHC.Show.Show a_666 => GHC.Show.Show (UnaryExpr a_666)\n\ninstance AST.Unmarshal.Unmarshal UnaryExpr\n\ninstance Data.Foldable.Foldable UnaryExpr where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UnaryExpr where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UnaryExpr where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Unop a = Unop\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Minus GHC.Generics.:+: Plus) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_667.\n      AST.Traversable1.Class.Traversable1 a_667\n    )\n\ninstance AST.Unmarshal.SymbolMatching Unop where\n  matchedSymbols _ = [135]\n  showFailure _ node_668 =\n    \"expected \"\n      GHC.Base.<> ( \"unop\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_668 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_668) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_669 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_670 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_671 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_672 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_669\n        c1_670 = TreeSitter.Node.nodeStartPoint node_668\n      TreeSitter.Node.TSPoint\n        r2_671\n        c2_672 = TreeSitter.Node.nodeEndPoint node_668\n\nderiving instance GHC.Classes.Eq a_673 => GHC.Classes.Eq (Unop a_673)\n\nderiving instance GHC.Classes.Ord a_674 => GHC.Classes.Ord (Unop a_674)\n\nderiving instance GHC.Show.Show a_675 => GHC.Show.Show (Unop a_675)\n\ninstance AST.Unmarshal.Unmarshal Unop\n\ninstance Data.Foldable.Foldable Unop where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Unop where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Unop where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata VarDecl a = VarDecl\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((TypeExpr GHC.Generics.:+: VarName) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_676.\n      AST.Traversable1.Class.Traversable1 a_676\n    )\n\ninstance AST.Unmarshal.SymbolMatching VarDecl where\n  matchedSymbols _ = [140]\n  showFailure _ node_677 =\n    \"expected \"\n      GHC.Base.<> ( \"varDecl\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_677 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_677) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_678 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_679 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_680 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_681 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_678\n        c1_679 = TreeSitter.Node.nodeStartPoint node_677\n      TreeSitter.Node.TSPoint\n        r2_680\n        c2_681 = TreeSitter.Node.nodeEndPoint node_677\n\nderiving instance GHC.Classes.Eq a_682 => GHC.Classes.Eq (VarDecl a_682)\n\nderiving instance GHC.Classes.Ord a_683 => GHC.Classes.Ord (VarDecl a_683)\n\nderiving instance GHC.Show.Show a_684 => GHC.Show.Show (VarDecl a_684)\n\ninstance AST.Unmarshal.Unmarshal VarDecl\n\ninstance Data.Foldable.Foldable VarDecl where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor VarDecl where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable VarDecl where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata VarName a = VarName {ann :: a, extraChildren :: (AST.Parse.Err (SimpleId a))}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_685.\n      AST.Traversable1.Class.Traversable1 a_685\n    )\n\ninstance AST.Unmarshal.SymbolMatching VarName where\n  matchedSymbols _ = [162]\n  showFailure _ node_686 =\n    \"expected \"\n      GHC.Base.<> ( \"varName\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_686 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_686) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_687 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_688 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_689 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_690 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_687\n        c1_688 = TreeSitter.Node.nodeStartPoint node_686\n      TreeSitter.Node.TSPoint\n        r2_689\n        c2_690 = TreeSitter.Node.nodeEndPoint node_686\n\nderiving instance GHC.Classes.Eq a_691 => GHC.Classes.Eq (VarName a_691)\n\nderiving instance GHC.Classes.Ord a_692 => GHC.Classes.Ord (VarName a_692)\n\nderiving instance GHC.Show.Show a_693 => GHC.Show.Show (VarName a_693)\n\ninstance AST.Unmarshal.Unmarshal VarName\n\ninstance Data.Foldable.Foldable VarName where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor VarName where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable VarName where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Variable a = Variable\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Result GHC.Generics.:+: This GHC.Generics.:+: VarName) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_694.\n      AST.Traversable1.Class.Traversable1 a_694\n    )\n\ninstance AST.Unmarshal.SymbolMatching Variable where\n  matchedSymbols _ = [133]\n  showFailure _ node_695 =\n    \"expected \"\n      GHC.Base.<> ( \"variable\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_695 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_695) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_696 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_697 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_698 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_699 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_696\n        c1_697 = TreeSitter.Node.nodeStartPoint node_695\n      TreeSitter.Node.TSPoint\n        r2_698\n        c2_699 = TreeSitter.Node.nodeEndPoint node_695\n\nderiving instance GHC.Classes.Eq a_700 => GHC.Classes.Eq (Variable a_700)\n\nderiving instance GHC.Classes.Ord a_701 => GHC.Classes.Ord (Variable a_701)\n\nderiving instance GHC.Show.Show a_702 => GHC.Show.Show (Variable a_702)\n\ninstance AST.Unmarshal.Unmarshal Variable\n\ninstance Data.Foldable.Foldable Variable where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Variable where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Variable where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousLParen = AST.Token.Token \"(\" 6\n\ntype AnonymousRParen = AST.Token.Token \")\" 8\n\ntype AnonymousComma = AST.Token.Token \",\" 7\n\ntype AnonymousDot = AST.Token.Token \".\" 19\n\ntype AnonymousDotDot = AST.Token.Token \"..\" 22\n\ntype AnonymousColonColon = AST.Token.Token \"::\" 26\n\ntype AnonymousSemicolon = AST.Token.Token \";\" 5\n\ntype AnonymousLBracket = AST.Token.Token \"[\" 20\n\ntype AnonymousRBracket = AST.Token.Token \"]\" 21\n\ntype AnonymousAnd = AST.Token.Token \"and\" 16\n\ndata Any a = Any {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_703.\n      AST.Traversable1.Class.Traversable1 a_703\n    )\n\ninstance AST.Unmarshal.SymbolMatching Any where\n  matchedSymbols _ = [37]\n  showFailure _ node_704 =\n    \"expected \"\n      GHC.Base.<> ( \"any\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_704 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_704) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_705 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_706 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_707 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_708 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_705\n        c1_706 = TreeSitter.Node.nodeStartPoint node_704\n      TreeSitter.Node.TSPoint\n        r2_707\n        c2_708 = TreeSitter.Node.nodeEndPoint node_704\n\nderiving instance GHC.Classes.Eq a_709 => GHC.Classes.Eq (Any a_709)\n\nderiving instance GHC.Classes.Ord a_710 => GHC.Classes.Ord (Any a_710)\n\nderiving instance GHC.Show.Show a_711 => GHC.Show.Show (Any a_711)\n\ninstance AST.Unmarshal.Unmarshal Any\n\ninstance Data.Foldable.Foldable Any where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Any where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Any where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata As a = As {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_712.\n      AST.Traversable1.Class.Traversable1 a_712\n    )\n\ninstance AST.Unmarshal.SymbolMatching As where\n  matchedSymbols _ = [38]\n  showFailure _ node_713 =\n    \"expected \"\n      GHC.Base.<> ( \"as\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_713 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_713) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_714 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_715 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_716 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_717 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_714\n        c1_715 = TreeSitter.Node.nodeStartPoint node_713\n      TreeSitter.Node.TSPoint\n        r2_716\n        c2_717 = TreeSitter.Node.nodeEndPoint node_713\n\nderiving instance GHC.Classes.Eq a_718 => GHC.Classes.Eq (As a_718)\n\nderiving instance GHC.Classes.Ord a_719 => GHC.Classes.Ord (As a_719)\n\nderiving instance GHC.Show.Show a_720 => GHC.Show.Show (As a_720)\n\ninstance AST.Unmarshal.Unmarshal As\n\ninstance Data.Foldable.Foldable As where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor As where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable As where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Asc a = Asc {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_721.\n      AST.Traversable1.Class.Traversable1 a_721\n    )\n\ninstance AST.Unmarshal.SymbolMatching Asc where\n  matchedSymbols _ = [39]\n  showFailure _ node_722 =\n    \"expected \"\n      GHC.Base.<> ( \"asc\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_722 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_722) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_723 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_724 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_725 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_726 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_723\n        c1_724 = TreeSitter.Node.nodeStartPoint node_722\n      TreeSitter.Node.TSPoint\n        r2_725\n        c2_726 = TreeSitter.Node.nodeEndPoint node_722\n\nderiving instance GHC.Classes.Eq a_727 => GHC.Classes.Eq (Asc a_727)\n\nderiving instance GHC.Classes.Ord a_728 => GHC.Classes.Ord (Asc a_728)\n\nderiving instance GHC.Show.Show a_729 => GHC.Show.Show (Asc a_729)\n\ninstance AST.Unmarshal.Unmarshal Asc\n\ninstance Data.Foldable.Foldable Asc where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Asc where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Asc where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Avg a = Avg {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_730.\n      AST.Traversable1.Class.Traversable1 a_730\n    )\n\ninstance AST.Unmarshal.SymbolMatching Avg where\n  matchedSymbols _ = [40]\n  showFailure _ node_731 =\n    \"expected \"\n      GHC.Base.<> ( \"avg\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_731 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_731) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_732 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_733 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_734 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_735 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_732\n        c1_733 = TreeSitter.Node.nodeStartPoint node_731\n      TreeSitter.Node.TSPoint\n        r2_734\n        c2_735 = TreeSitter.Node.nodeEndPoint node_731\n\nderiving instance GHC.Classes.Eq a_736 => GHC.Classes.Eq (Avg a_736)\n\nderiving instance GHC.Classes.Ord a_737 => GHC.Classes.Ord (Avg a_737)\n\nderiving instance GHC.Show.Show a_738 => GHC.Show.Show (Avg a_738)\n\ninstance AST.Unmarshal.Unmarshal Avg\n\ninstance Data.Foldable.Foldable Avg where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Avg where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Avg where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Boolean a = Boolean {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_739.\n      AST.Traversable1.Class.Traversable1 a_739\n    )\n\ninstance AST.Unmarshal.SymbolMatching Boolean where\n  matchedSymbols _ = [41]\n  showFailure _ node_740 =\n    \"expected \"\n      GHC.Base.<> ( \"boolean\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_740 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_740) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_741 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_742 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_743 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_744 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_741\n        c1_742 = TreeSitter.Node.nodeStartPoint node_740\n      TreeSitter.Node.TSPoint\n        r2_743\n        c2_744 = TreeSitter.Node.nodeEndPoint node_740\n\nderiving instance GHC.Classes.Eq a_745 => GHC.Classes.Eq (Boolean a_745)\n\nderiving instance GHC.Classes.Ord a_746 => GHC.Classes.Ord (Boolean a_746)\n\nderiving instance GHC.Show.Show a_747 => GHC.Show.Show (Boolean a_747)\n\ninstance AST.Unmarshal.Unmarshal Boolean\n\ninstance Data.Foldable.Foldable Boolean where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Boolean where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Boolean where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousBy = AST.Token.Token \"by\" 24\n\ndata Class a = Class {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_748.\n      AST.Traversable1.Class.Traversable1 a_748\n    )\n\ninstance AST.Unmarshal.SymbolMatching Class where\n  matchedSymbols _ = [42]\n  showFailure _ node_749 =\n    \"expected \"\n      GHC.Base.<> ( \"class\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_749 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_749) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_750 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_751 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_752 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_753 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_750\n        c1_751 = TreeSitter.Node.nodeStartPoint node_749\n      TreeSitter.Node.TSPoint\n        r2_752\n        c2_753 = TreeSitter.Node.nodeEndPoint node_749\n\nderiving instance GHC.Classes.Eq a_754 => GHC.Classes.Eq (Class a_754)\n\nderiving instance GHC.Classes.Ord a_755 => GHC.Classes.Ord (Class a_755)\n\nderiving instance GHC.Show.Show a_756 => GHC.Show.Show (Class a_756)\n\ninstance AST.Unmarshal.Unmarshal Class\n\ninstance Data.Foldable.Foldable Class where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Class where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Class where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Concat a = Concat {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_757.\n      AST.Traversable1.Class.Traversable1 a_757\n    )\n\ninstance AST.Unmarshal.SymbolMatching Concat where\n  matchedSymbols _ = [65]\n  showFailure _ node_758 =\n    \"expected \"\n      GHC.Base.<> ( \"concat\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_758 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_758) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_759 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_760 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_761 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_762 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_759\n        c1_760 = TreeSitter.Node.nodeStartPoint node_758\n      TreeSitter.Node.TSPoint\n        r2_761\n        c2_762 = TreeSitter.Node.nodeEndPoint node_758\n\nderiving instance GHC.Classes.Eq a_763 => GHC.Classes.Eq (Concat a_763)\n\nderiving instance GHC.Classes.Ord a_764 => GHC.Classes.Ord (Concat a_764)\n\nderiving instance GHC.Show.Show a_765 => GHC.Show.Show (Concat a_765)\n\ninstance AST.Unmarshal.Unmarshal Concat\n\ninstance Data.Foldable.Foldable Concat where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Concat where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Concat where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Count a = Count {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_766.\n      AST.Traversable1.Class.Traversable1 a_766\n    )\n\ninstance AST.Unmarshal.SymbolMatching Count where\n  matchedSymbols _ = [44]\n  showFailure _ node_767 =\n    \"expected \"\n      GHC.Base.<> ( \"count\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_767 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_767) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_768 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_769 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_770 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_771 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_768\n        c1_769 = TreeSitter.Node.nodeStartPoint node_767\n      TreeSitter.Node.TSPoint\n        r2_770\n        c2_771 = TreeSitter.Node.nodeEndPoint node_767\n\nderiving instance GHC.Classes.Eq a_772 => GHC.Classes.Eq (Count a_772)\n\nderiving instance GHC.Classes.Ord a_773 => GHC.Classes.Ord (Count a_773)\n\nderiving instance GHC.Show.Show a_774 => GHC.Show.Show (Count a_774)\n\ninstance AST.Unmarshal.Unmarshal Count\n\ninstance Data.Foldable.Foldable Count where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Count where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Count where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Date a = Date {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_775.\n      AST.Traversable1.Class.Traversable1 a_775\n    )\n\ninstance AST.Unmarshal.SymbolMatching Date where\n  matchedSymbols _ = [45]\n  showFailure _ node_776 =\n    \"expected \"\n      GHC.Base.<> ( \"date\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_776 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_776) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_777 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_778 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_779 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_780 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_777\n        c1_778 = TreeSitter.Node.nodeStartPoint node_776\n      TreeSitter.Node.TSPoint\n        r2_779\n        c2_780 = TreeSitter.Node.nodeEndPoint node_776\n\nderiving instance GHC.Classes.Eq a_781 => GHC.Classes.Eq (Date a_781)\n\nderiving instance GHC.Classes.Ord a_782 => GHC.Classes.Ord (Date a_782)\n\nderiving instance GHC.Show.Show a_783 => GHC.Show.Show (Date a_783)\n\ninstance AST.Unmarshal.Unmarshal Date\n\ninstance Data.Foldable.Foldable Date where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Date where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Date where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Desc a = Desc {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_784.\n      AST.Traversable1.Class.Traversable1 a_784\n    )\n\ninstance AST.Unmarshal.SymbolMatching Desc where\n  matchedSymbols _ = [46]\n  showFailure _ node_785 =\n    \"expected \"\n      GHC.Base.<> ( \"desc\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_785 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_785) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_786 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_787 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_788 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_789 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_786\n        c1_787 = TreeSitter.Node.nodeStartPoint node_785\n      TreeSitter.Node.TSPoint\n        r2_788\n        c2_789 = TreeSitter.Node.nodeEndPoint node_785\n\nderiving instance GHC.Classes.Eq a_790 => GHC.Classes.Eq (Desc a_790)\n\nderiving instance GHC.Classes.Ord a_791 => GHC.Classes.Ord (Desc a_791)\n\nderiving instance GHC.Show.Show a_792 => GHC.Show.Show (Desc a_792)\n\ninstance AST.Unmarshal.Unmarshal Desc\n\ninstance Data.Foldable.Foldable Desc where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Desc where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Desc where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousElse = AST.Token.Token \"else\" 15\n\ndata Eq a = Eq {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_793.\n      AST.Traversable1.Class.Traversable1 a_793\n    )\n\ninstance AST.Unmarshal.SymbolMatching Eq where\n  matchedSymbols _ = [72]\n  showFailure _ node_794 =\n    \"expected \"\n      GHC.Base.<> ( \"eq\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_794 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_794) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_795 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_796 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_797 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_798 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_795\n        c1_796 = TreeSitter.Node.nodeStartPoint node_794\n      TreeSitter.Node.TSPoint\n        r2_797\n        c2_798 = TreeSitter.Node.nodeEndPoint node_794\n\nderiving instance GHC.Classes.Eq a_799 => GHC.Classes.Eq (Eq a_799)\n\nderiving instance GHC.Classes.Ord a_800 => GHC.Classes.Ord (Eq a_800)\n\nderiving instance GHC.Show.Show a_801 => GHC.Show.Show (Eq a_801)\n\ninstance AST.Unmarshal.Unmarshal Eq\n\ninstance Data.Foldable.Foldable Eq where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Eq where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Eq where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Exists a = Exists {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_802.\n      AST.Traversable1.Class.Traversable1 a_802\n    )\n\ninstance AST.Unmarshal.SymbolMatching Exists where\n  matchedSymbols _ = [47]\n  showFailure _ node_803 =\n    \"expected \"\n      GHC.Base.<> ( \"exists\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_803 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_803) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_804 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_805 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_806 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_807 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_804\n        c1_805 = TreeSitter.Node.nodeStartPoint node_803\n      TreeSitter.Node.TSPoint\n        r2_806\n        c2_807 = TreeSitter.Node.nodeEndPoint node_803\n\nderiving instance GHC.Classes.Eq a_808 => GHC.Classes.Eq (Exists a_808)\n\nderiving instance GHC.Classes.Ord a_809 => GHC.Classes.Ord (Exists a_809)\n\nderiving instance GHC.Show.Show a_810 => GHC.Show.Show (Exists a_810)\n\ninstance AST.Unmarshal.Unmarshal Exists\n\ninstance Data.Foldable.Foldable Exists where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Exists where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Exists where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Extends a = Extends {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_811.\n      AST.Traversable1.Class.Traversable1 a_811\n    )\n\ninstance AST.Unmarshal.SymbolMatching Extends where\n  matchedSymbols _ = [48]\n  showFailure _ node_812 =\n    \"expected \"\n      GHC.Base.<> ( \"extends\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_812 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_812) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_813 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_814 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_815 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_816 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_813\n        c1_814 = TreeSitter.Node.nodeStartPoint node_812\n      TreeSitter.Node.TSPoint\n        r2_815\n        c2_816 = TreeSitter.Node.nodeEndPoint node_812\n\nderiving instance GHC.Classes.Eq a_817 => GHC.Classes.Eq (Extends a_817)\n\nderiving instance GHC.Classes.Ord a_818 => GHC.Classes.Ord (Extends a_818)\n\nderiving instance GHC.Show.Show a_819 => GHC.Show.Show (Extends a_819)\n\ninstance AST.Unmarshal.Unmarshal Extends\n\ninstance Data.Foldable.Foldable Extends where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Extends where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Extends where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata False a = False {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_820.\n      AST.Traversable1.Class.Traversable1 a_820\n    )\n\ninstance AST.Unmarshal.SymbolMatching False where\n  matchedSymbols _ = [49]\n  showFailure _ node_821 =\n    \"expected \"\n      GHC.Base.<> ( \"false\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_821 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_821) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_822 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_823 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_824 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_825 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_822\n        c1_823 = TreeSitter.Node.nodeStartPoint node_821\n      TreeSitter.Node.TSPoint\n        r2_824\n        c2_825 = TreeSitter.Node.nodeEndPoint node_821\n\nderiving instance GHC.Classes.Eq a_826 => GHC.Classes.Eq (False a_826)\n\nderiving instance GHC.Classes.Ord a_827 => GHC.Classes.Ord (False a_827)\n\nderiving instance GHC.Show.Show a_828 => GHC.Show.Show (False a_828)\n\ninstance AST.Unmarshal.Unmarshal False\n\ninstance Data.Foldable.Foldable False where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor False where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable False where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousFloat = AST.Token.Token \"float\" 27\n\ndata Float a = Float {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_829.\n      AST.Traversable1.Class.Traversable1 a_829\n    )\n\ninstance AST.Unmarshal.SymbolMatching Float where\n  matchedSymbols _ = [33]\n  showFailure _ node_830 =\n    \"expected \"\n      GHC.Base.<> ( \"float\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_830 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_830) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_831 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_832 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_833 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_834 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_831\n        c1_832 = TreeSitter.Node.nodeStartPoint node_830\n      TreeSitter.Node.TSPoint\n        r2_833\n        c2_834 = TreeSitter.Node.nodeEndPoint node_830\n\nderiving instance GHC.Classes.Eq a_835 => GHC.Classes.Eq (Float a_835)\n\nderiving instance GHC.Classes.Ord a_836 => GHC.Classes.Ord (Float a_836)\n\nderiving instance GHC.Show.Show a_837 => GHC.Show.Show (Float a_837)\n\ninstance AST.Unmarshal.Unmarshal Float\n\ninstance Data.Foldable.Foldable Float where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Float where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Float where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Forall a = Forall {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_838.\n      AST.Traversable1.Class.Traversable1 a_838\n    )\n\ninstance AST.Unmarshal.SymbolMatching Forall where\n  matchedSymbols _ = [50]\n  showFailure _ node_839 =\n    \"expected \"\n      GHC.Base.<> ( \"forall\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_839 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_839) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_840 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_841 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_842 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_843 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_840\n        c1_841 = TreeSitter.Node.nodeStartPoint node_839\n      TreeSitter.Node.TSPoint\n        r2_842\n        c2_843 = TreeSitter.Node.nodeEndPoint node_839\n\nderiving instance GHC.Classes.Eq a_844 => GHC.Classes.Eq (Forall a_844)\n\nderiving instance GHC.Classes.Ord a_845 => GHC.Classes.Ord (Forall a_845)\n\nderiving instance GHC.Show.Show a_846 => GHC.Show.Show (Forall a_846)\n\ninstance AST.Unmarshal.Unmarshal Forall\n\ninstance Data.Foldable.Foldable Forall where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Forall where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Forall where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Forex a = Forex {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_847.\n      AST.Traversable1.Class.Traversable1 a_847\n    )\n\ninstance AST.Unmarshal.SymbolMatching Forex where\n  matchedSymbols _ = [51]\n  showFailure _ node_848 =\n    \"expected \"\n      GHC.Base.<> ( \"forex\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_848 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_848) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_849 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_850 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_851 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_852 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_849\n        c1_850 = TreeSitter.Node.nodeStartPoint node_848\n      TreeSitter.Node.TSPoint\n        r2_851\n        c2_852 = TreeSitter.Node.nodeEndPoint node_848\n\nderiving instance GHC.Classes.Eq a_853 => GHC.Classes.Eq (Forex a_853)\n\nderiving instance GHC.Classes.Ord a_854 => GHC.Classes.Ord (Forex a_854)\n\nderiving instance GHC.Show.Show a_855 => GHC.Show.Show (Forex a_855)\n\ninstance AST.Unmarshal.Unmarshal Forex\n\ninstance Data.Foldable.Foldable Forex where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Forex where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Forex where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousFrom = AST.Token.Token \"from\" 10\n\ndata Ge a = Ge {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_856.\n      AST.Traversable1.Class.Traversable1 a_856\n    )\n\ninstance AST.Unmarshal.SymbolMatching Ge where\n  matchedSymbols _ = [74]\n  showFailure _ node_857 =\n    \"expected \"\n      GHC.Base.<> ( \"ge\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_857 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_857) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_858 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_859 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_860 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_861 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_858\n        c1_859 = TreeSitter.Node.nodeStartPoint node_857\n      TreeSitter.Node.TSPoint\n        r2_860\n        c2_861 = TreeSitter.Node.nodeEndPoint node_857\n\nderiving instance GHC.Classes.Eq a_862 => GHC.Classes.Eq (Ge a_862)\n\nderiving instance GHC.Classes.Ord a_863 => GHC.Classes.Ord (Ge a_863)\n\nderiving instance GHC.Show.Show a_864 => GHC.Show.Show (Ge a_864)\n\ninstance AST.Unmarshal.Unmarshal Ge\n\ninstance Data.Foldable.Foldable Ge where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Ge where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Ge where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Gt a = Gt {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_865.\n      AST.Traversable1.Class.Traversable1 a_865\n    )\n\ninstance AST.Unmarshal.SymbolMatching Gt where\n  matchedSymbols _ = [73]\n  showFailure _ node_866 =\n    \"expected \"\n      GHC.Base.<> ( \"gt\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_866 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_866) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_867 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_868 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_869 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_870 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_867\n        c1_868 = TreeSitter.Node.nodeStartPoint node_866\n      TreeSitter.Node.TSPoint\n        r2_869\n        c2_870 = TreeSitter.Node.nodeEndPoint node_866\n\nderiving instance GHC.Classes.Eq a_871 => GHC.Classes.Eq (Gt a_871)\n\nderiving instance GHC.Classes.Ord a_872 => GHC.Classes.Ord (Gt a_872)\n\nderiving instance GHC.Show.Show a_873 => GHC.Show.Show (Gt a_873)\n\ninstance AST.Unmarshal.Unmarshal Gt\n\ninstance Data.Foldable.Foldable Gt where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Gt where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Gt where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousIf = AST.Token.Token \"if\" 13\n\ntype AnonymousImplies = AST.Token.Token \"implies\" 17\n\ndata Import a = Import {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_874.\n      AST.Traversable1.Class.Traversable1 a_874\n    )\n\ninstance AST.Unmarshal.SymbolMatching Import where\n  matchedSymbols _ = [52]\n  showFailure _ node_875 =\n    \"expected \"\n      GHC.Base.<> ( \"import\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_875 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_875) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_876 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_877 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_878 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_879 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_876\n        c1_877 = TreeSitter.Node.nodeStartPoint node_875\n      TreeSitter.Node.TSPoint\n        r2_878\n        c2_879 = TreeSitter.Node.nodeEndPoint node_875\n\nderiving instance GHC.Classes.Eq a_880 => GHC.Classes.Eq (Import a_880)\n\nderiving instance GHC.Classes.Ord a_881 => GHC.Classes.Ord (Import a_881)\n\nderiving instance GHC.Show.Show a_882 => GHC.Show.Show (Import a_882)\n\ninstance AST.Unmarshal.Unmarshal Import\n\ninstance Data.Foldable.Foldable Import where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Import where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Import where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata In a = In {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_883.\n      AST.Traversable1.Class.Traversable1 a_883\n    )\n\ninstance AST.Unmarshal.SymbolMatching In where\n  matchedSymbols _ = [53]\n  showFailure _ node_884 =\n    \"expected \"\n      GHC.Base.<> ( \"in\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_884 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_884) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_885 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_886 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_887 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_888 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_885\n        c1_886 = TreeSitter.Node.nodeStartPoint node_884\n      TreeSitter.Node.TSPoint\n        r2_887\n        c2_888 = TreeSitter.Node.nodeEndPoint node_884\n\nderiving instance GHC.Classes.Eq a_889 => GHC.Classes.Eq (In a_889)\n\nderiving instance GHC.Classes.Ord a_890 => GHC.Classes.Ord (In a_890)\n\nderiving instance GHC.Show.Show a_891 => GHC.Show.Show (In a_891)\n\ninstance AST.Unmarshal.Unmarshal In\n\ninstance Data.Foldable.Foldable In where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor In where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable In where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Instanceof a = Instanceof {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_892.\n      AST.Traversable1.Class.Traversable1 a_892\n    )\n\ninstance AST.Unmarshal.SymbolMatching Instanceof where\n  matchedSymbols _ = [54]\n  showFailure _ node_893 =\n    \"expected \"\n      GHC.Base.<> ( \"instanceof\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_893 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_893) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_894 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_895 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_896 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_897 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_894\n        c1_895 = TreeSitter.Node.nodeStartPoint node_893\n      TreeSitter.Node.TSPoint\n        r2_896\n        c2_897 = TreeSitter.Node.nodeEndPoint node_893\n\nderiving instance GHC.Classes.Eq a_898 => GHC.Classes.Eq (Instanceof a_898)\n\nderiving instance GHC.Classes.Ord a_899 => GHC.Classes.Ord (Instanceof a_899)\n\nderiving instance GHC.Show.Show a_900 => GHC.Show.Show (Instanceof a_900)\n\ninstance AST.Unmarshal.Unmarshal Instanceof\n\ninstance Data.Foldable.Foldable Instanceof where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Instanceof where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Instanceof where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousInt = AST.Token.Token \"int\" 28\n\ndata Integer a = Integer {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_901.\n      AST.Traversable1.Class.Traversable1 a_901\n    )\n\ninstance AST.Unmarshal.SymbolMatching Integer where\n  matchedSymbols _ = [32]\n  showFailure _ node_902 =\n    \"expected \"\n      GHC.Base.<> ( \"integer\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_902 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_902) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_903 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_904 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_905 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_906 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_903\n        c1_904 = TreeSitter.Node.nodeStartPoint node_902\n      TreeSitter.Node.TSPoint\n        r2_905\n        c2_906 = TreeSitter.Node.nodeEndPoint node_902\n\nderiving instance GHC.Classes.Eq a_907 => GHC.Classes.Eq (Integer a_907)\n\nderiving instance GHC.Classes.Ord a_908 => GHC.Classes.Ord (Integer a_908)\n\nderiving instance GHC.Show.Show a_909 => GHC.Show.Show (Integer a_909)\n\ninstance AST.Unmarshal.Unmarshal Integer\n\ninstance Data.Foldable.Foldable Integer where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Integer where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Integer where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Le a = Le {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_910.\n      AST.Traversable1.Class.Traversable1 a_910\n    )\n\ninstance AST.Unmarshal.SymbolMatching Le where\n  matchedSymbols _ = [71]\n  showFailure _ node_911 =\n    \"expected \"\n      GHC.Base.<> ( \"le\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_911 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_911) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_912 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_913 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_914 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_915 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_912\n        c1_913 = TreeSitter.Node.nodeStartPoint node_911\n      TreeSitter.Node.TSPoint\n        r2_914\n        c2_915 = TreeSitter.Node.nodeEndPoint node_911\n\nderiving instance GHC.Classes.Eq a_916 => GHC.Classes.Eq (Le a_916)\n\nderiving instance GHC.Classes.Ord a_917 => GHC.Classes.Ord (Le a_917)\n\nderiving instance GHC.Show.Show a_918 => GHC.Show.Show (Le a_918)\n\ninstance AST.Unmarshal.Unmarshal Le\n\ninstance Data.Foldable.Foldable Le where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Le where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Le where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Lt a = Lt {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_919.\n      AST.Traversable1.Class.Traversable1 a_919\n    )\n\ninstance AST.Unmarshal.SymbolMatching Lt where\n  matchedSymbols _ = [70]\n  showFailure _ node_920 =\n    \"expected \"\n      GHC.Base.<> ( \"lt\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_920 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_920) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_921 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_922 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_923 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_924 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_921\n        c1_922 = TreeSitter.Node.nodeStartPoint node_920\n      TreeSitter.Node.TSPoint\n        r2_923\n        c2_924 = TreeSitter.Node.nodeEndPoint node_920\n\nderiving instance GHC.Classes.Eq a_925 => GHC.Classes.Eq (Lt a_925)\n\nderiving instance GHC.Classes.Ord a_926 => GHC.Classes.Ord (Lt a_926)\n\nderiving instance GHC.Show.Show a_927 => GHC.Show.Show (Lt a_927)\n\ninstance AST.Unmarshal.Unmarshal Lt\n\ninstance Data.Foldable.Foldable Lt where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Lt where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Lt where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Max a = Max {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_928.\n      AST.Traversable1.Class.Traversable1 a_928\n    )\n\ninstance AST.Unmarshal.SymbolMatching Max where\n  matchedSymbols _ = [55]\n  showFailure _ node_929 =\n    \"expected \"\n      GHC.Base.<> ( \"max\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_929 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_929) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_930 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_931 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_932 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_933 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_930\n        c1_931 = TreeSitter.Node.nodeStartPoint node_929\n      TreeSitter.Node.TSPoint\n        r2_932\n        c2_933 = TreeSitter.Node.nodeEndPoint node_929\n\nderiving instance GHC.Classes.Eq a_934 => GHC.Classes.Eq (Max a_934)\n\nderiving instance GHC.Classes.Ord a_935 => GHC.Classes.Ord (Max a_935)\n\nderiving instance GHC.Show.Show a_936 => GHC.Show.Show (Max a_936)\n\ninstance AST.Unmarshal.Unmarshal Max\n\ninstance Data.Foldable.Foldable Max where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Max where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Max where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Min a = Min {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_937.\n      AST.Traversable1.Class.Traversable1 a_937\n    )\n\ninstance AST.Unmarshal.SymbolMatching Min where\n  matchedSymbols _ = [56]\n  showFailure _ node_938 =\n    \"expected \"\n      GHC.Base.<> ( \"min\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_938 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_938) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_939 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_940 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_941 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_942 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_939\n        c1_940 = TreeSitter.Node.nodeStartPoint node_938\n      TreeSitter.Node.TSPoint\n        r2_941\n        c2_942 = TreeSitter.Node.nodeEndPoint node_938\n\nderiving instance GHC.Classes.Eq a_943 => GHC.Classes.Eq (Min a_943)\n\nderiving instance GHC.Classes.Ord a_944 => GHC.Classes.Ord (Min a_944)\n\nderiving instance GHC.Show.Show a_945 => GHC.Show.Show (Min a_945)\n\ninstance AST.Unmarshal.Unmarshal Min\n\ninstance Data.Foldable.Foldable Min where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Min where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Min where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Minus a = Minus {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_946.\n      AST.Traversable1.Class.Traversable1 a_946\n    )\n\ninstance AST.Unmarshal.SymbolMatching Minus where\n  matchedSymbols _ = [76]\n  showFailure _ node_947 =\n    \"expected \"\n      GHC.Base.<> ( \"minus\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_947 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_947) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_948 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_949 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_950 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_951 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_948\n        c1_949 = TreeSitter.Node.nodeStartPoint node_947\n      TreeSitter.Node.TSPoint\n        r2_950\n        c2_951 = TreeSitter.Node.nodeEndPoint node_947\n\nderiving instance GHC.Classes.Eq a_952 => GHC.Classes.Eq (Minus a_952)\n\nderiving instance GHC.Classes.Ord a_953 => GHC.Classes.Ord (Minus a_953)\n\nderiving instance GHC.Show.Show a_954 => GHC.Show.Show (Minus a_954)\n\ninstance AST.Unmarshal.Unmarshal Minus\n\ninstance Data.Foldable.Foldable Minus where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Minus where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Minus where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Mod a = Mod {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_955.\n      AST.Traversable1.Class.Traversable1 a_955\n    )\n\ninstance AST.Unmarshal.SymbolMatching Mod where\n  matchedSymbols _ = [80]\n  showFailure _ node_956 =\n    \"expected \"\n      GHC.Base.<> ( \"mod\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_956 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_956) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_957 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_958 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_959 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_960 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_957\n        c1_958 = TreeSitter.Node.nodeStartPoint node_956\n      TreeSitter.Node.TSPoint\n        r2_959\n        c2_960 = TreeSitter.Node.nodeEndPoint node_956\n\nderiving instance GHC.Classes.Eq a_961 => GHC.Classes.Eq (Mod a_961)\n\nderiving instance GHC.Classes.Ord a_962 => GHC.Classes.Ord (Mod a_962)\n\nderiving instance GHC.Show.Show a_963 => GHC.Show.Show (Mod a_963)\n\ninstance AST.Unmarshal.Unmarshal Mod\n\ninstance Data.Foldable.Foldable Mod where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Mod where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Mod where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousModule = AST.Token.Token \"module\" 2\n\ndata Ne a = Ne {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_964.\n      AST.Traversable1.Class.Traversable1 a_964\n    )\n\ninstance AST.Unmarshal.SymbolMatching Ne where\n  matchedSymbols _ = [77]\n  showFailure _ node_965 =\n    \"expected \"\n      GHC.Base.<> ( \"ne\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_965 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_965) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_966 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_967 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_968 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_969 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_966\n        c1_967 = TreeSitter.Node.nodeStartPoint node_965\n      TreeSitter.Node.TSPoint\n        r2_968\n        c2_969 = TreeSitter.Node.nodeEndPoint node_965\n\nderiving instance GHC.Classes.Eq a_970 => GHC.Classes.Eq (Ne a_970)\n\nderiving instance GHC.Classes.Ord a_971 => GHC.Classes.Ord (Ne a_971)\n\nderiving instance GHC.Show.Show a_972 => GHC.Show.Show (Ne a_972)\n\ninstance AST.Unmarshal.Unmarshal Ne\n\ninstance Data.Foldable.Foldable Ne where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Ne where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Ne where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Newtype a = Newtype {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_973.\n      AST.Traversable1.Class.Traversable1 a_973\n    )\n\ninstance AST.Unmarshal.SymbolMatching Newtype where\n  matchedSymbols _ = [43]\n  showFailure _ node_974 =\n    \"expected \"\n      GHC.Base.<> ( \"newtype\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_974 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_974) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_975 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_976 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_977 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_978 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_975\n        c1_976 = TreeSitter.Node.nodeStartPoint node_974\n      TreeSitter.Node.TSPoint\n        r2_977\n        c2_978 = TreeSitter.Node.nodeEndPoint node_974\n\nderiving instance GHC.Classes.Eq a_979 => GHC.Classes.Eq (Newtype a_979)\n\nderiving instance GHC.Classes.Ord a_980 => GHC.Classes.Ord (Newtype a_980)\n\nderiving instance GHC.Show.Show a_981 => GHC.Show.Show (Newtype a_981)\n\ninstance AST.Unmarshal.Unmarshal Newtype\n\ninstance Data.Foldable.Foldable Newtype where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Newtype where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Newtype where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata None a = None {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_982.\n      AST.Traversable1.Class.Traversable1 a_982\n    )\n\ninstance AST.Unmarshal.SymbolMatching None where\n  matchedSymbols _ = [58]\n  showFailure _ node_983 =\n    \"expected \"\n      GHC.Base.<> ( \"none\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_983 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_983) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_984 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_985 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_986 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_987 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_984\n        c1_985 = TreeSitter.Node.nodeStartPoint node_983\n      TreeSitter.Node.TSPoint\n        r2_986\n        c2_987 = TreeSitter.Node.nodeEndPoint node_983\n\nderiving instance GHC.Classes.Eq a_988 => GHC.Classes.Eq (None a_988)\n\nderiving instance GHC.Classes.Ord a_989 => GHC.Classes.Ord (None a_989)\n\nderiving instance GHC.Show.Show a_990 => GHC.Show.Show (None a_990)\n\ninstance AST.Unmarshal.Unmarshal None\n\ninstance Data.Foldable.Foldable None where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor None where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable None where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Not a = Not {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_991.\n      AST.Traversable1.Class.Traversable1 a_991\n    )\n\ninstance AST.Unmarshal.SymbolMatching Not where\n  matchedSymbols _ = [57]\n  showFailure _ node_992 =\n    \"expected \"\n      GHC.Base.<> ( \"not\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_992 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_992) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_993 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_994 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_995 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_996 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_993\n        c1_994 = TreeSitter.Node.nodeStartPoint node_992\n      TreeSitter.Node.TSPoint\n        r2_995\n        c2_996 = TreeSitter.Node.nodeEndPoint node_992\n\nderiving instance GHC.Classes.Eq a_997 => GHC.Classes.Eq (Not a_997)\n\nderiving instance GHC.Classes.Ord a_998 => GHC.Classes.Ord (Not a_998)\n\nderiving instance GHC.Show.Show a_999 => GHC.Show.Show (Not a_999)\n\ninstance AST.Unmarshal.Unmarshal Not\n\ninstance Data.Foldable.Foldable Not where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Not where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Not where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousOr = AST.Token.Token \"or\" 9\n\ntype AnonymousOrder = AST.Token.Token \"order\" 23\n\ndata Plus a = Plus {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1000.\n      AST.Traversable1.Class.Traversable1 a_1000\n    )\n\ninstance AST.Unmarshal.SymbolMatching Plus where\n  matchedSymbols _ = [81]\n  showFailure _ node_1001 =\n    \"expected \"\n      GHC.Base.<> ( \"plus\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1001 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1001) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1002 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1003 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1004 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1005 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1002\n        c1_1003 = TreeSitter.Node.nodeStartPoint node_1001\n      TreeSitter.Node.TSPoint\n        r2_1004\n        c2_1005 = TreeSitter.Node.nodeEndPoint node_1001\n\nderiving instance GHC.Classes.Eq a_1006 => GHC.Classes.Eq (Plus a_1006)\n\nderiving instance GHC.Classes.Ord a_1007 => GHC.Classes.Ord (Plus a_1007)\n\nderiving instance GHC.Show.Show a_1008 => GHC.Show.Show (Plus a_1008)\n\ninstance AST.Unmarshal.Unmarshal Plus\n\ninstance Data.Foldable.Foldable Plus where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Plus where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Plus where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Predicate a = Predicate {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1009.\n      AST.Traversable1.Class.Traversable1 a_1009\n    )\n\ninstance AST.Unmarshal.SymbolMatching Predicate where\n  matchedSymbols _ = [59]\n  showFailure _ node_1010 =\n    \"expected \"\n      GHC.Base.<> ( \"predicate\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1010 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1010) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1011 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1012 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1013 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1014 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1011\n        c1_1012 = TreeSitter.Node.nodeStartPoint node_1010\n      TreeSitter.Node.TSPoint\n        r2_1013\n        c2_1014 = TreeSitter.Node.nodeEndPoint node_1010\n\nderiving instance GHC.Classes.Eq a_1015 => GHC.Classes.Eq (Predicate a_1015)\n\nderiving instance GHC.Classes.Ord a_1016 => GHC.Classes.Ord (Predicate a_1016)\n\nderiving instance GHC.Show.Show a_1017 => GHC.Show.Show (Predicate a_1017)\n\ninstance AST.Unmarshal.Unmarshal Predicate\n\ninstance Data.Foldable.Foldable Predicate where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Predicate where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Predicate where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Qldoc a = Qldoc {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1018.\n      AST.Traversable1.Class.Traversable1 a_1018\n    )\n\ninstance AST.Unmarshal.SymbolMatching Qldoc where\n  matchedSymbols _ = [25]\n  showFailure _ node_1019 =\n    \"expected \"\n      GHC.Base.<> ( \"qldoc\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1019 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1019) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1020 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1021 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1022 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1023 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1020\n        c1_1021 = TreeSitter.Node.nodeStartPoint node_1019\n      TreeSitter.Node.TSPoint\n        r2_1022\n        c2_1023 = TreeSitter.Node.nodeEndPoint node_1019\n\nderiving instance GHC.Classes.Eq a_1024 => GHC.Classes.Eq (Qldoc a_1024)\n\nderiving instance GHC.Classes.Ord a_1025 => GHC.Classes.Ord (Qldoc a_1025)\n\nderiving instance GHC.Show.Show a_1026 => GHC.Show.Show (Qldoc a_1026)\n\ninstance AST.Unmarshal.Unmarshal Qldoc\n\ninstance Data.Foldable.Foldable Qldoc where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Qldoc where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Qldoc where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Rank a = Rank {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1027.\n      AST.Traversable1.Class.Traversable1 a_1027\n    )\n\ninstance AST.Unmarshal.SymbolMatching Rank where\n  matchedSymbols _ = [60]\n  showFailure _ node_1028 =\n    \"expected \"\n      GHC.Base.<> ( \"rank\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1028 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1028) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1029 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1030 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1031 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1032 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1029\n        c1_1030 = TreeSitter.Node.nodeStartPoint node_1028\n      TreeSitter.Node.TSPoint\n        r2_1031\n        c2_1032 = TreeSitter.Node.nodeEndPoint node_1028\n\nderiving instance GHC.Classes.Eq a_1033 => GHC.Classes.Eq (Rank a_1033)\n\nderiving instance GHC.Classes.Ord a_1034 => GHC.Classes.Ord (Rank a_1034)\n\nderiving instance GHC.Show.Show a_1035 => GHC.Show.Show (Rank a_1035)\n\ninstance AST.Unmarshal.Unmarshal Rank\n\ninstance Data.Foldable.Foldable Rank where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Rank where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Rank where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Result a = Result {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1036.\n      AST.Traversable1.Class.Traversable1 a_1036\n    )\n\ninstance AST.Unmarshal.SymbolMatching Result where\n  matchedSymbols _ = [61]\n  showFailure _ node_1037 =\n    \"expected \"\n      GHC.Base.<> ( \"result\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1037 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1037) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1038 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1039 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1040 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1041 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1038\n        c1_1039 = TreeSitter.Node.nodeStartPoint node_1037\n      TreeSitter.Node.TSPoint\n        r2_1040\n        c2_1041 = TreeSitter.Node.nodeEndPoint node_1037\n\nderiving instance GHC.Classes.Eq a_1042 => GHC.Classes.Eq (Result a_1042)\n\nderiving instance GHC.Classes.Ord a_1043 => GHC.Classes.Ord (Result a_1043)\n\nderiving instance GHC.Show.Show a_1044 => GHC.Show.Show (Result a_1044)\n\ninstance AST.Unmarshal.Unmarshal Result\n\ninstance Data.Foldable.Foldable Result where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Result where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Result where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousSelect = AST.Token.Token \"select\" 12\n\ndata Slash a = Slash {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1045.\n      AST.Traversable1.Class.Traversable1 a_1045\n    )\n\ninstance AST.Unmarshal.SymbolMatching Slash where\n  matchedSymbols _ = [78]\n  showFailure _ node_1046 =\n    \"expected \"\n      GHC.Base.<> ( \"slash\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1046 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1046) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1047 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1048 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1049 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1050 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1047\n        c1_1048 = TreeSitter.Node.nodeStartPoint node_1046\n      TreeSitter.Node.TSPoint\n        r2_1049\n        c2_1050 = TreeSitter.Node.nodeEndPoint node_1046\n\nderiving instance GHC.Classes.Eq a_1051 => GHC.Classes.Eq (Slash a_1051)\n\nderiving instance GHC.Classes.Ord a_1052 => GHC.Classes.Ord (Slash a_1052)\n\nderiving instance GHC.Show.Show a_1053 => GHC.Show.Show (Slash a_1053)\n\ninstance AST.Unmarshal.Unmarshal Slash\n\ninstance Data.Foldable.Foldable Slash where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Slash where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Slash where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Star a = Star {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1054.\n      AST.Traversable1.Class.Traversable1 a_1054\n    )\n\ninstance AST.Unmarshal.SymbolMatching Star where\n  matchedSymbols _ = [79]\n  showFailure _ node_1055 =\n    \"expected \"\n      GHC.Base.<> ( \"star\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1055 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1055) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1056 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1057 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1058 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1059 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1056\n        c1_1057 = TreeSitter.Node.nodeStartPoint node_1055\n      TreeSitter.Node.TSPoint\n        r2_1058\n        c2_1059 = TreeSitter.Node.nodeEndPoint node_1055\n\nderiving instance GHC.Classes.Eq a_1060 => GHC.Classes.Eq (Star a_1060)\n\nderiving instance GHC.Classes.Ord a_1061 => GHC.Classes.Ord (Star a_1061)\n\nderiving instance GHC.Show.Show a_1062 => GHC.Show.Show (Star a_1062)\n\ninstance AST.Unmarshal.Unmarshal Star\n\ninstance Data.Foldable.Foldable Star where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Star where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Star where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Strictconcat a = Strictconcat {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1063.\n      AST.Traversable1.Class.Traversable1 a_1063\n    )\n\ninstance AST.Unmarshal.SymbolMatching Strictconcat where\n  matchedSymbols _ = [64]\n  showFailure _ node_1064 =\n    \"expected \"\n      GHC.Base.<> ( \"strictconcat\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1064 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1064) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1065 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1066 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1067 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1068 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1065\n        c1_1066 = TreeSitter.Node.nodeStartPoint node_1064\n      TreeSitter.Node.TSPoint\n        r2_1067\n        c2_1068 = TreeSitter.Node.nodeEndPoint node_1064\n\nderiving instance GHC.Classes.Eq a_1069 => GHC.Classes.Eq (Strictconcat a_1069)\n\nderiving instance GHC.Classes.Ord a_1070 => GHC.Classes.Ord (Strictconcat a_1070)\n\nderiving instance GHC.Show.Show a_1071 => GHC.Show.Show (Strictconcat a_1071)\n\ninstance AST.Unmarshal.Unmarshal Strictconcat\n\ninstance Data.Foldable.Foldable Strictconcat where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Strictconcat where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Strictconcat where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Strictcount a = Strictcount {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1072.\n      AST.Traversable1.Class.Traversable1 a_1072\n    )\n\ninstance AST.Unmarshal.SymbolMatching Strictcount where\n  matchedSymbols _ = [62]\n  showFailure _ node_1073 =\n    \"expected \"\n      GHC.Base.<> ( \"strictcount\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1073 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1073) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1074 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1075 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1076 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1077 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1074\n        c1_1075 = TreeSitter.Node.nodeStartPoint node_1073\n      TreeSitter.Node.TSPoint\n        r2_1076\n        c2_1077 = TreeSitter.Node.nodeEndPoint node_1073\n\nderiving instance GHC.Classes.Eq a_1078 => GHC.Classes.Eq (Strictcount a_1078)\n\nderiving instance GHC.Classes.Ord a_1079 => GHC.Classes.Ord (Strictcount a_1079)\n\nderiving instance GHC.Show.Show a_1080 => GHC.Show.Show (Strictcount a_1080)\n\ninstance AST.Unmarshal.Unmarshal Strictcount\n\ninstance Data.Foldable.Foldable Strictcount where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Strictcount where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Strictcount where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Strictsum a = Strictsum {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1081.\n      AST.Traversable1.Class.Traversable1 a_1081\n    )\n\ninstance AST.Unmarshal.SymbolMatching Strictsum where\n  matchedSymbols _ = [63]\n  showFailure _ node_1082 =\n    \"expected \"\n      GHC.Base.<> ( \"strictsum\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1082 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1082) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1083 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1084 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1085 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1086 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1083\n        c1_1084 = TreeSitter.Node.nodeStartPoint node_1082\n      TreeSitter.Node.TSPoint\n        r2_1085\n        c2_1086 = TreeSitter.Node.nodeEndPoint node_1082\n\nderiving instance GHC.Classes.Eq a_1087 => GHC.Classes.Eq (Strictsum a_1087)\n\nderiving instance GHC.Classes.Ord a_1088 => GHC.Classes.Ord (Strictsum a_1088)\n\nderiving instance GHC.Show.Show a_1089 => GHC.Show.Show (Strictsum a_1089)\n\ninstance AST.Unmarshal.Unmarshal Strictsum\n\ninstance Data.Foldable.Foldable Strictsum where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Strictsum where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Strictsum where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata String a = String {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1090.\n      AST.Traversable1.Class.Traversable1 a_1090\n    )\n\ninstance AST.Unmarshal.SymbolMatching String where\n  matchedSymbols _ = [34]\n  showFailure _ node_1091 =\n    \"expected \"\n      GHC.Base.<> ( \"string\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1091 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1091) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1092 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1093 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1094 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1095 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1092\n        c1_1093 = TreeSitter.Node.nodeStartPoint node_1091\n      TreeSitter.Node.TSPoint\n        r2_1094\n        c2_1095 = TreeSitter.Node.nodeEndPoint node_1091\n\nderiving instance GHC.Classes.Eq a_1096 => GHC.Classes.Eq (String a_1096)\n\nderiving instance GHC.Classes.Ord a_1097 => GHC.Classes.Ord (String a_1097)\n\nderiving instance GHC.Show.Show a_1098 => GHC.Show.Show (String a_1098)\n\ninstance AST.Unmarshal.Unmarshal String\n\ninstance Data.Foldable.Foldable String where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor String where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable String where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousString = AST.Token.Token \"string\" 29\n\ndata Sum a = Sum {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1099.\n      AST.Traversable1.Class.Traversable1 a_1099\n    )\n\ninstance AST.Unmarshal.SymbolMatching Sum where\n  matchedSymbols _ = [66]\n  showFailure _ node_1100 =\n    \"expected \"\n      GHC.Base.<> ( \"sum\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1100 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1100) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1101 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1102 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1103 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1104 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1101\n        c1_1102 = TreeSitter.Node.nodeStartPoint node_1100\n      TreeSitter.Node.TSPoint\n        r2_1103\n        c2_1104 = TreeSitter.Node.nodeEndPoint node_1100\n\nderiving instance GHC.Classes.Eq a_1105 => GHC.Classes.Eq (Sum a_1105)\n\nderiving instance GHC.Classes.Ord a_1106 => GHC.Classes.Ord (Sum a_1106)\n\nderiving instance GHC.Show.Show a_1107 => GHC.Show.Show (Sum a_1107)\n\ninstance AST.Unmarshal.Unmarshal Sum\n\ninstance Data.Foldable.Foldable Sum where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Sum where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Sum where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Super a = Super {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1108.\n      AST.Traversable1.Class.Traversable1 a_1108\n    )\n\ninstance AST.Unmarshal.SymbolMatching Super where\n  matchedSymbols _ = [67]\n  showFailure _ node_1109 =\n    \"expected \"\n      GHC.Base.<> ( \"super\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1109 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1109) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1110 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1111 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1112 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1113 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1110\n        c1_1111 = TreeSitter.Node.nodeStartPoint node_1109\n      TreeSitter.Node.TSPoint\n        r2_1112\n        c2_1113 = TreeSitter.Node.nodeEndPoint node_1109\n\nderiving instance GHC.Classes.Eq a_1114 => GHC.Classes.Eq (Super a_1114)\n\nderiving instance GHC.Classes.Ord a_1115 => GHC.Classes.Ord (Super a_1115)\n\nderiving instance GHC.Show.Show a_1116 => GHC.Show.Show (Super a_1116)\n\ninstance AST.Unmarshal.Unmarshal Super\n\ninstance Data.Foldable.Foldable Super where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Super where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Super where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousThen = AST.Token.Token \"then\" 14\n\ndata This a = This {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1117.\n      AST.Traversable1.Class.Traversable1 a_1117\n    )\n\ninstance AST.Unmarshal.SymbolMatching This where\n  matchedSymbols _ = [68]\n  showFailure _ node_1118 =\n    \"expected \"\n      GHC.Base.<> ( \"this\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1118 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1118) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1119 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1120 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1121 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1122 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1119\n        c1_1120 = TreeSitter.Node.nodeStartPoint node_1118\n      TreeSitter.Node.TSPoint\n        r2_1121\n        c2_1122 = TreeSitter.Node.nodeEndPoint node_1118\n\nderiving instance GHC.Classes.Eq a_1123 => GHC.Classes.Eq (This a_1123)\n\nderiving instance GHC.Classes.Ord a_1124 => GHC.Classes.Ord (This a_1124)\n\nderiving instance GHC.Show.Show a_1125 => GHC.Show.Show (This a_1125)\n\ninstance AST.Unmarshal.Unmarshal This\n\ninstance Data.Foldable.Foldable This where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor This where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable This where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata True a = True {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1126.\n      AST.Traversable1.Class.Traversable1 a_1126\n    )\n\ninstance AST.Unmarshal.SymbolMatching True where\n  matchedSymbols _ = [69]\n  showFailure _ node_1127 =\n    \"expected \"\n      GHC.Base.<> ( \"true\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1127 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1127) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1128 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1129 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1130 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1131 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1128\n        c1_1129 = TreeSitter.Node.nodeStartPoint node_1127\n      TreeSitter.Node.TSPoint\n        r2_1130\n        c2_1131 = TreeSitter.Node.nodeEndPoint node_1127\n\nderiving instance GHC.Classes.Eq a_1132 => GHC.Classes.Eq (True a_1132)\n\nderiving instance GHC.Classes.Ord a_1133 => GHC.Classes.Ord (True a_1133)\n\nderiving instance GHC.Show.Show a_1134 => GHC.Show.Show (True a_1134)\n\ninstance AST.Unmarshal.Unmarshal True\n\ninstance Data.Foldable.Foldable True where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor True where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable True where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Underscore a = Underscore {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1135.\n      AST.Traversable1.Class.Traversable1 a_1135\n    )\n\ninstance AST.Unmarshal.SymbolMatching Underscore where\n  matchedSymbols _ = [75]\n  showFailure _ node_1136 =\n    \"expected \"\n      GHC.Base.<> ( \"underscore\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1136 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1136) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1137 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1138 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1139 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1140 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1137\n        c1_1138 = TreeSitter.Node.nodeStartPoint node_1136\n      TreeSitter.Node.TSPoint\n        r2_1139\n        c2_1140 = TreeSitter.Node.nodeEndPoint node_1136\n\nderiving instance GHC.Classes.Eq a_1141 => GHC.Classes.Eq (Underscore a_1141)\n\nderiving instance GHC.Classes.Ord a_1142 => GHC.Classes.Ord (Underscore a_1142)\n\nderiving instance GHC.Show.Show a_1143 => GHC.Show.Show (Underscore a_1143)\n\ninstance AST.Unmarshal.Unmarshal Underscore\n\ninstance Data.Foldable.Foldable Underscore where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Underscore where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Underscore where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousWhere = AST.Token.Token \"where\" 11\n\ntype AnonymousLBrace = AST.Token.Token \"{\" 3\n\ntype AnonymousPipe = AST.Token.Token \"|\" 18\n\ntype AnonymousRBrace = AST.Token.Token \"}\" 4\n"
  },
  {
    "path": "semantic-codeql/src/Language/CodeQL/Grammar.hs",
    "content": "{-# LANGUAGE TemplateHaskell #-}\nmodule Language.CodeQL.Grammar\n( tree_sitter_ql\n, Grammar(..)\n) where\n\nimport AST.Grammar.TH\nimport Language.Haskell.TH\nimport TreeSitter.QL (tree_sitter_ql)\n\n-- | Statically-known rules corresponding to symbols in the grammar.\nmkStaticallyKnownRuleGrammarData (mkName \"Grammar\") tree_sitter_ql\n"
  },
  {
    "path": "semantic-codeql/src/Language/CodeQL/Tags.hs",
    "content": "{-# LANGUAGE DefaultSignatures #-}\n{-# LANGUAGE DisambiguateRecordFields #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE NamedFieldPuns #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n\nmodule Language.CodeQL.Tags\n  ( ToTags (..),\n  )\nwhere\n\nimport AST.Element\nimport qualified AST.Parse as Parse\nimport AST.Token\nimport AST.Traversable1\nimport Control.Effect.Reader\nimport Control.Effect.Writer\nimport Control.Effect.State\nimport Data.Foldable (for_)\nimport qualified Language.CodeQL.AST as CodeQL\nimport Proto.Semantic as P\nimport Source.Loc\nimport Source.Source as Source\nimport qualified Tags.Tagging.Precise as Tags\n\nclass ToTags t where\n  tags ::\n    ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n      Has (Writer Tags.Tags) sig m\n    ) =>\n    t Loc ->\n    m ()\n  default tags ::\n    ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n      Has (Writer Tags.Tags) sig m,\n      Traversable1 ToTags t\n    ) =>\n    t Loc ->\n    m ()\n  tags = gtags\n\ninstance ToTags (Token sym n) where tags _ = pure ()\n\ninstance (ToTags l, ToTags r) => ToTags (l :+: r) where\n  tags (L1 l) = tags l\n  tags (R1 r) = tags r\n\ngtags ::\n  ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n    Has (Writer Tags.Tags) sig m,\n    Traversable1 ToTags t\n  ) =>\n  t Loc ->\n  m ()\ngtags = traverse1_ @ToTags (const (pure ())) tags\n\ninstance ToTags CodeQL.Module where\n  tags\n    t@CodeQL.Module\n      { ann = Loc {byteRange},\n        name = Parse.Success (CodeQL.ModuleName {extraChildren = Parse.Success (CodeQL.SimpleId {text, ann})})\n      } = Tags.yield text P.MODULE P.DEFINITION ann byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags CodeQL.ClasslessPredicate where\n  tags\n    t@CodeQL.ClasslessPredicate\n      { ann = Loc {byteRange},\n        name = Parse.Success (CodeQL.PredicateName {text, ann})\n      } = Tags.yield text P.FUNCTION P.DEFINITION ann byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags CodeQL.AritylessPredicateExpr where\n  tags\n    t@CodeQL.AritylessPredicateExpr\n      { ann = Loc {byteRange},\n        name = Parse.Success (CodeQL.LiteralId {text, ann})\n      } = Tags.yield text P.CALL P.REFERENCE ann byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags CodeQL.Dataclass where\n  tags\n    t@CodeQL.Dataclass\n      { ann = Loc {byteRange},\n        name = Parse.Success (CodeQL.ClassName {text, ann})\n      } = Tags.yield text P.CLASS P.DEFINITION ann byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags CodeQL.MemberPredicate where\n  tags\n    t@CodeQL.MemberPredicate\n      { ann = Loc {byteRange},\n        name = Parse.Success (CodeQL.PredicateName {text, ann})\n      } = Tags.yield text P.METHOD P.DEFINITION ann byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags CodeQL.Datatype where\n  tags\n    t@CodeQL.Datatype\n      { ann = Loc {byteRange},\n        name = Parse.Success (CodeQL.ClassName {text, ann})\n      } = Tags.yield text P.CLASS P.DEFINITION ann byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags CodeQL.DatatypeBranch where\n  tags\n    t@CodeQL.DatatypeBranch\n      { ann = Loc {byteRange},\n        name = Parse.Success (CodeQL.ClassName {text, ann})\n      } = Tags.yield text P.CLASS P.DEFINITION ann byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags CodeQL.ClasslessPredicateCall where\n  tags\n    CodeQL.ClasslessPredicateCall\n      { extraChildren\n      } = for_ extraChildren $ \\x -> case x of\n      EPrj t@CodeQL.AritylessPredicateExpr {} -> tags t\n      _ -> pure ()\n\ninstance ToTags CodeQL.QualifiedRhs where\n  tags\n    t@CodeQL.QualifiedRhs\n      { ann = Loc {byteRange},\n        name = expr\n      } = case expr of\n      Just (EPrj CodeQL.PredicateName {text, ann}) -> Tags.yield text P.CALL P.REFERENCE ann byteRange >> gtags t\n      _ -> gtags t\n\ninstance ToTags CodeQL.TypeExpr where\n  tags\n    t@CodeQL.TypeExpr\n      { ann = Loc {byteRange},\n        name = expr\n      } = case expr of\n      Just (EPrj CodeQL.ClassName {text, ann}) -> Tags.yield text P.TYPE P.REFERENCE ann byteRange >> gtags t\n      _ -> gtags t\n\ninstance ToTags CodeQL.AddExpr\ninstance ToTags CodeQL.Addop\ninstance ToTags CodeQL.AggId\ninstance ToTags CodeQL.Aggregate\ninstance ToTags CodeQL.AnnotArg\ninstance ToTags CodeQL.Annotation\ninstance ToTags CodeQL.AnnotName\ninstance ToTags CodeQL.Any\ninstance ToTags CodeQL.As\ninstance ToTags CodeQL.Asc\ninstance ToTags CodeQL.AsExpr\ninstance ToTags CodeQL.AsExprs\ninstance ToTags CodeQL.Avg\ninstance ToTags CodeQL.Body\ninstance ToTags CodeQL.Bool\ninstance ToTags CodeQL.Boolean\ninstance ToTags CodeQL.Charpred\ninstance ToTags CodeQL.ClassMember\ninstance ToTags CodeQL.ClassName\ninstance ToTags CodeQL.Closure\ninstance ToTags CodeQL.Compop\ninstance ToTags CodeQL.CompTerm\ninstance ToTags CodeQL.Concat\ninstance ToTags CodeQL.Conjunction\ninstance ToTags CodeQL.Count\ninstance ToTags CodeQL.Class\ninstance ToTags CodeQL.DatatypeBranches\ninstance ToTags CodeQL.Date\ninstance ToTags CodeQL.Dbtype\ninstance ToTags CodeQL.Desc\ninstance ToTags CodeQL.Direction\ninstance ToTags CodeQL.Disjunction\ninstance ToTags CodeQL.Empty\ninstance ToTags CodeQL.Eq\ninstance ToTags CodeQL.Exists\ninstance ToTags CodeQL.ExprAggregateBody\ninstance ToTags CodeQL.Extends\ninstance ToTags CodeQL.False\ninstance ToTags CodeQL.Field\ninstance ToTags CodeQL.Float\ninstance ToTags CodeQL.Forall\ninstance ToTags CodeQL.Forex\ninstance ToTags CodeQL.FullAggregateBody\ninstance ToTags CodeQL.Ge\ninstance ToTags CodeQL.Gt\ninstance ToTags CodeQL.HigherOrderTerm\ninstance ToTags CodeQL.IfTerm\ninstance ToTags CodeQL.Implication\ninstance ToTags CodeQL.Import\ninstance ToTags CodeQL.ImportModuleExpr\ninstance ToTags CodeQL.Imprt\ninstance ToTags CodeQL.In\ninstance ToTags CodeQL.InExpr\ninstance ToTags CodeQL.InstanceOf\ninstance ToTags CodeQL.Instanceof\ninstance ToTags CodeQL.Integer\ninstance ToTags CodeQL.Le\ninstance ToTags CodeQL.Literal\ninstance ToTags CodeQL.LiteralId\ninstance ToTags CodeQL.Lt\ninstance ToTags CodeQL.Max\ninstance ToTags CodeQL.Mod\ninstance ToTags CodeQL.ModuleAliasBody\ninstance ToTags CodeQL.ModuleExpr\ninstance ToTags CodeQL.ModuleMember\ninstance ToTags CodeQL.ModuleName\ninstance ToTags CodeQL.Min\ninstance ToTags CodeQL.Minus\ninstance ToTags CodeQL.MulExpr\ninstance ToTags CodeQL.Mulop\ninstance ToTags CodeQL.Ne\ninstance ToTags CodeQL.Negation\ninstance ToTags CodeQL.Newtype\ninstance ToTags CodeQL.None\ninstance ToTags CodeQL.Not\ninstance ToTags CodeQL.OrderBy\ninstance ToTags CodeQL.OrderBys\ninstance ToTags CodeQL.ParExpr\ninstance ToTags CodeQL.Plus\ninstance ToTags CodeQL.Predicate\ninstance ToTags CodeQL.PredicateAliasBody\ninstance ToTags CodeQL.PredicateExpr\ninstance ToTags CodeQL.PredicateName\ninstance ToTags CodeQL.PrefixCast\ninstance ToTags CodeQL.Ql\ninstance ToTags CodeQL.Qldoc\ninstance ToTags CodeQL.QualifiedExpr\ninstance ToTags CodeQL.QualModuleExpr\ninstance ToTags CodeQL.Quantified\ninstance ToTags CodeQL.Quantifier\ninstance ToTags CodeQL.Range\ninstance ToTags CodeQL.Rank\ninstance ToTags CodeQL.Result\ninstance ToTags CodeQL.ReturnType\ninstance ToTags CodeQL.Select\ninstance ToTags CodeQL.SimpleId\ninstance ToTags CodeQL.Slash\ninstance ToTags CodeQL.SpecialCall\ninstance ToTags CodeQL.SpecialId\ninstance ToTags CodeQL.Star\ninstance ToTags CodeQL.Strictconcat\ninstance ToTags CodeQL.Strictcount\ninstance ToTags CodeQL.Strictsum\ninstance ToTags CodeQL.String\ninstance ToTags CodeQL.Sum\ninstance ToTags CodeQL.Super\ninstance ToTags CodeQL.SuperRef\ninstance ToTags CodeQL.This\ninstance ToTags CodeQL.True\ninstance ToTags CodeQL.TypeAliasBody\ninstance ToTags CodeQL.TypeLiteral\ninstance ToTags CodeQL.UnaryExpr\ninstance ToTags CodeQL.Underscore\ninstance ToTags CodeQL.Unop\ninstance ToTags CodeQL.VarDecl\ninstance ToTags CodeQL.Variable\ninstance ToTags CodeQL.VarName\n"
  },
  {
    "path": "semantic-codeql/src/Language/CodeQL.hs",
    "content": "{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# OPTIONS_GHC -freduction-depth=0 #-}\n-- | Semantic functionality for CodeQL programs.\nmodule Language.CodeQL\n( Term(..)\n, TreeSitter.QL.tree_sitter_ql\n) where\n\nimport           AST.Marshal.JSON\nimport qualified AST.Unmarshal as TS\nimport           Data.Proxy\nimport qualified Language.CodeQL.AST as CodeQL\nimport qualified Language.CodeQL.Tags as CodeQLTags\nimport qualified Tags.Tagging.Precise as Tags\nimport qualified TreeSitter.QL (tree_sitter_ql)\n\nnewtype Term a = Term { getTerm :: CodeQL.Ql a }\n  deriving MarshalJSON\n\ninstance TS.SymbolMatching Term where\n  matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy CodeQL.Ql)\n  showFailure _ = TS.showFailure (Proxy :: Proxy CodeQL.Ql)\n\ninstance TS.Unmarshal Term where\n  matchers = fmap (fmap (TS.hoist Term)) TS.matchers\n\ninstance Tags.ToTags Term where\n  tags src = Tags.runTagging src . CodeQLTags.tags . getTerm\n"
  },
  {
    "path": "semantic-codeql/test/PreciseTest.hs",
    "content": "{-# LANGUAGE CPP #-}\n{-# LANGUAGE DisambiguateRecordFields #-}\n{-# LANGUAGE ImplicitParams #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE TypeApplications #-}\n{-# OPTIONS_GHC -Wno-unused-imports #-}\nmodule Main (main) where\n\nimport           AST.TestHelpers\nimport           AST.Unmarshal\nimport qualified Language.CodeQL.AST as CodeQL\nimport           Language.CodeQL.Grammar\nimport qualified System.Path.Fixture as Fixture\nimport           Test.Tasty\n\nmain :: IO ()\nmain = do\n#if BAZEL_BUILD\n  rf <- Fixture.create\n  let ?project = \"external/tree-sitter-ql\"\n      ?runfiles = rf\n\n  let dirs = Fixture.absRelDir \"test/corpus\"\n#else\n  dirs <- CodeQL.getTestCorpusDir\n#endif\n  let parse = parseByteString @CodeQL.Ql @() tree_sitter_ql\n\n  readCorpusFiles' dirs\n    >>= traverse (testCorpus parse)\n    >>= defaultMain . tests\n\ntests :: [TestTree] -> TestTree\ntests = testGroup \"tree-sitter-ql corpus tests\"\n"
  },
  {
    "path": "semantic-go/BUILD.bazel",
    "content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\n    \"//:build/common.bzl\",\n    \"semantic_language_library\",\n    \"semantic_language_parsing_test\",\n)\nload(\n    \"@rules_haskell//haskell:defs.bzl\",\n    \"haskell_test\",\n)\n\nsemantic_language_library(\n    name = \"semantic-go\",\n    srcs = glob([\"src/**/*.hs\"]),\n    language = \"go\",\n)\n\nsemantic_language_parsing_test(language = \"go\")\n"
  },
  {
    "path": "semantic-go/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 GitHub\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "semantic-go/README.md",
    "content": "# Semantic support for Go\n\nThis package implements `semantic` support for Go.\n"
  },
  {
    "path": "semantic-go/Setup.hs",
    "content": "import Distribution.Simple\nmain = defaultMain\n"
  },
  {
    "path": "semantic-go/semantic-go.cabal",
    "content": "cabal-version:       2.4\n\nname:                semantic-go\nversion:             0.0.0.0\nsynopsis:            Semantic support for Go.\ndescription:         Semantic support for Go.\nhomepage:            https://github.com/github/semantic/tree/master/semantic-go#readme\nbug-reports:         https://github.com/github/semantic/issues\nlicense:             MIT\nlicense-file:        LICENSE\nauthor:              The Semantic authors\nmaintainer:          opensource+semantic@github.com\ncopyright:           (c) 2019 GitHub, Inc.\ncategory:            Language\nbuild-type:          Simple\nstability:           alpha\nextra-source-files:  README.md\n\ntested-with:         GHC == 8.6.5\n\ncommon haskell\n  default-language:    Haskell2010\n  ghc-options:\n    -Weverything\n    -Wno-missing-local-signatures\n    -Wno-missing-import-lists\n    -Wno-implicit-prelude\n    -Wno-safe\n    -Wno-unsafe\n    -Wno-name-shadowing\n    -Wno-monomorphism-restriction\n    -Wno-missed-specialisations\n    -Wno-all-missed-specialisations\n    -Wno-star-is-type\n  if (impl(ghc >= 8.8))\n    ghc-options: -Wno-missing-deriving-strategies\n  if (impl(ghc >= 8.10))\n    ghc-options:\n      -Wno-missing-safe-haskell-mode\n      -Wno-prepositive-qualified-module\n  if (impl(ghc >= 9.2))\n    ghc-options:\n      -Wno-missing-kind-signatures\n  cpp-options:\n    -DBAZEL_BUILD=0\n\nlibrary\n  import: haskell\n  exposed-modules:\n    Language.Go\n    Language.Go.AST\n    Language.Go.Grammar\n    Language.Go.Tags\n  hs-source-dirs: src\n  build-depends:\n    , base  >= 4.13 && < 5\n    , fused-effects ^>= 1.1\n    , semantic-ast\n    , semantic-proto ^>= 0\n    , semantic-source ^>= 0.2\n    , semantic-tags ^>= 0.0\n    , template-haskell  >= 2.15 && < 2.22\n    , text ^>= 1.2.3\n    , tree-sitter ^>= 0.9\n    , tree-sitter-go ^>= 0.5.0.1\n\ntest-suite test\n  import: haskell\n  type:             exitcode-stdio-1.0\n  hs-source-dirs:   test\n  main-is:          PreciseTest.hs\n  build-depends:\n    , base\n    , semantic-ast\n    , semantic-go\n    , tasty\n"
  },
  {
    "path": "semantic-go/src/Language/Go/AST.hs",
    "content": "-- Language definition for Go, generated by ast-generate. Do not edit!\n{-# LANGUAGE CPP #-}\n{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE DeriveTraversable #-}\n{-# LANGUAGE DerivingStrategies #-}\n{-# LANGUAGE DuplicateRecordFields #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE QuantifiedConstraints #-}\n{-# LANGUAGE StandaloneDeriving #-}\n{-# LANGUAGE TemplateHaskell #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\n{-# OPTIONS_GHC -fno-warn-unused-imports #-}\n\nmodule Language.Go.AST (module Language.Go.AST, getTestCorpusDir) where\n\nimport qualified AST.Parse\nimport qualified AST.Token\nimport qualified AST.Traversable1.Class\nimport qualified AST.Unmarshal\nimport qualified Data.Foldable\nimport qualified Data.List as Data.OldList\nimport qualified Data.Maybe as GHC.Maybe\nimport qualified Data.Text.Internal\nimport qualified Data.Traversable\nimport qualified GHC.Base\nimport qualified GHC.Generics\nimport qualified GHC.Records\nimport qualified GHC.Show\nimport TreeSitter.Go (getTestCorpusDir)\nimport qualified TreeSitter.Node\nimport qualified Prelude as GHC.Classes\n\ndebugSymbolNames :: [GHC.Base.String]\ndebugSymbolNames = debugSymbolNames_0\n\ndebugSymbolNames_0 :: [GHC.Base.String]\ndebugSymbolNames_0 =\n  [ \"end\",\n    \"identifier\",\n    \"_\\n\",\n    \"_;\",\n    \"_package\",\n    \"_import\",\n    \"_.\",\n    \"blank_identifier\",\n    \"_(\",\n    \"_)\",\n    \"_const\",\n    \"_,\",\n    \"_=\",\n    \"_var\",\n    \"_func\",\n    \"_...\",\n    \"_type\",\n    \"_*\",\n    \"_[\",\n    \"_]\",\n    \"_struct\",\n    \"_{\",\n    \"_}\",\n    \"_interface\",\n    \"_map\",\n    \"_chan\",\n    \"_<-\",\n    \"_:=\",\n    \"_++\",\n    \"_--\",\n    \"_*=\",\n    \"_/=\",\n    \"_%=\",\n    \"_<<=\",\n    \"_>>=\",\n    \"_&=\",\n    \"_&^=\",\n    \"_+=\",\n    \"_-=\",\n    \"_|=\",\n    \"_^=\",\n    \"_:\",\n    \"_fallthrough\",\n    \"_break\",\n    \"_continue\",\n    \"_goto\",\n    \"_return\",\n    \"_go\",\n    \"_defer\",\n    \"_if\",\n    \"_else\",\n    \"_for\",\n    \"_range\",\n    \"_switch\",\n    \"_case\",\n    \"_default\",\n    \"_select\",\n    \"identifier\",\n    \"identifier\",\n    \"_+\",\n    \"_-\",\n    \"_!\",\n    \"_^\",\n    \"_&\",\n    \"_/\",\n    \"_%\",\n    \"_<<\",\n    \"_>>\",\n    \"_&^\",\n    \"_|\",\n    \"_==\",\n    \"_!=\",\n    \"_<\",\n    \"_<=\",\n    \"_>\",\n    \"_>=\",\n    \"_&&\",\n    \"_||\",\n    \"raw_string_literal\",\n    \"_\\\"\",\n    \"_interpreted_string_literal_token1\",\n    \"escape_sequence\",\n    \"int_literal\",\n    \"float_literal\",\n    \"imaginary_literal\",\n    \"rune_literal\",\n    \"nil\",\n    \"true\",\n    \"false\",\n    \"comment\",\n    \"source_file\",\n    \"package_clause\",\n    \"import_declaration\",\n    \"import_spec\",\n    \"dot\",\n    \"import_spec_list\",\n    \"_declaration\",\n    \"const_declaration\",\n    \"const_spec\",\n    \"var_declaration\",\n    \"var_spec\",\n    \"function_declaration\",\n    \"method_declaration\",\n    \"parameter_list\",\n    \"parameter_declaration\",\n    \"variadic_parameter_declaration\",\n    \"type_alias\",\n    \"type_declaration\",\n    \"type_spec\",\n    \"expression_list\",\n    \"parenthesized_type\",\n    \"_simple_type\",\n    \"pointer_type\",\n    \"array_type\",\n    \"implicit_length_array_type\",\n    \"slice_type\",\n    \"struct_type\",\n    \"field_declaration_list\",\n    \"field_declaration\",\n    \"interface_type\",\n    \"method_spec_list\",\n    \"method_spec\",\n    \"map_type\",\n    \"channel_type\",\n    \"function_type\",\n    \"block\",\n    \"_statement_list\",\n    \"_statement\",\n    \"empty_statement\",\n    \"_simple_statement\",\n    \"send_statement\",\n    \"receive_statement\",\n    \"inc_statement\",\n    \"dec_statement\",\n    \"assignment_statement\",\n    \"short_var_declaration\",\n    \"labeled_statement\",\n    \"labeled_statement\",\n    \"fallthrough_statement\",\n    \"break_statement\",\n    \"continue_statement\",\n    \"goto_statement\",\n    \"return_statement\",\n    \"go_statement\",\n    \"defer_statement\",\n    \"if_statement\",\n    \"for_statement\",\n    \"for_clause\",\n    \"range_clause\",\n    \"expression_switch_statement\",\n    \"expression_case\",\n    \"default_case\",\n    \"type_switch_statement\",\n    \"_type_switch_header\",\n    \"type_case\",\n    \"select_statement\",\n    \"communication_case\",\n    \"_expression\",\n    \"parenthesized_expression\",\n    \"call_expression\",\n    \"variadic_argument\",\n    \"argument_list\",\n    \"argument_list\",\n    \"selector_expression\",\n    \"index_expression\",\n    \"slice_expression\",\n    \"type_assertion_expression\",\n    \"type_conversion_expression\",\n    \"composite_literal\",\n    \"literal_value\",\n    \"keyed_element\",\n    \"element\",\n    \"func_literal\",\n    \"unary_expression\",\n    \"binary_expression\",\n    \"qualified_type\",\n    \"interpreted_string_literal\",\n    \"_source_file_repeat1\",\n    \"_import_spec_list_repeat1\",\n    \"_const_declaration_repeat1\",\n    \"_const_spec_repeat1\",\n    \"_var_declaration_repeat1\",\n    \"_parameter_list_repeat1\",\n    \"_type_declaration_repeat1\",\n    \"_field_name_list_repeat1\",\n    \"_expression_list_repeat1\",\n    \"_field_declaration_list_repeat1\",\n    \"_method_spec_list_repeat1\",\n    \"__statement_list_repeat1\",\n    \"_expression_switch_statement_repeat1\",\n    \"_type_switch_statement_repeat1\",\n    \"_type_case_repeat1\",\n    \"_select_statement_repeat1\",\n    \"_argument_list_repeat1\",\n    \"_literal_value_repeat1\",\n    \"_interpreted_string_literal_repeat1\",\n    \"field_identifier\",\n    \"label_name\",\n    \"package_identifier\",\n    \"type_identifier\"\n  ]\n\nnewtype Expression a = Expression {getExpression :: ((BinaryExpression GHC.Generics.:+: CallExpression GHC.Generics.:+: CompositeLiteral GHC.Generics.:+: False GHC.Generics.:+: FloatLiteral GHC.Generics.:+: FuncLiteral GHC.Generics.:+: Identifier GHC.Generics.:+: ImaginaryLiteral GHC.Generics.:+: IndexExpression GHC.Generics.:+: IntLiteral GHC.Generics.:+: InterpretedStringLiteral GHC.Generics.:+: Nil GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: RawStringLiteral GHC.Generics.:+: RuneLiteral GHC.Generics.:+: SelectorExpression GHC.Generics.:+: SliceExpression GHC.Generics.:+: True GHC.Generics.:+: TypeAssertionExpression GHC.Generics.:+: TypeConversionExpression GHC.Generics.:+: UnaryExpression) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1.\n      AST.Traversable1.Class.Traversable1 a_1\n    )\n\ninstance GHC.Records.HasField \"ann\" (Expression a_2) a_2 where\n  getField = AST.Unmarshal.gann GHC.Base.. getExpression\n\nderiving instance GHC.Classes.Eq a_3 => GHC.Classes.Eq (Expression a_3)\n\nderiving instance GHC.Classes.Ord a_4 => GHC.Classes.Ord (Expression a_4)\n\nderiving instance GHC.Show.Show a_5 => GHC.Show.Show (Expression a_5)\n\ninstance AST.Unmarshal.Unmarshal Expression\n\ninstance Data.Foldable.Foldable Expression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Expression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Expression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype SimpleStatement a = SimpleStatement {getSimpleStatement :: ((Expression GHC.Generics.:+: AssignmentStatement GHC.Generics.:+: DecStatement GHC.Generics.:+: IncStatement GHC.Generics.:+: SendStatement GHC.Generics.:+: ShortVarDeclaration) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_6.\n      AST.Traversable1.Class.Traversable1 a_6\n    )\n\ninstance GHC.Records.HasField \"ann\" (SimpleStatement a_7) a_7 where\n  getField = AST.Unmarshal.gann GHC.Base.. getSimpleStatement\n\nderiving instance GHC.Classes.Eq a_8 => GHC.Classes.Eq (SimpleStatement a_8)\n\nderiving instance GHC.Classes.Ord a_9 => GHC.Classes.Ord (SimpleStatement a_9)\n\nderiving instance GHC.Show.Show a_10 => GHC.Show.Show (SimpleStatement a_10)\n\ninstance AST.Unmarshal.Unmarshal SimpleStatement\n\ninstance Data.Foldable.Foldable SimpleStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SimpleStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SimpleStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype SimpleType a = SimpleType {getSimpleType :: ((ArrayType GHC.Generics.:+: ChannelType GHC.Generics.:+: FunctionType GHC.Generics.:+: InterfaceType GHC.Generics.:+: MapType GHC.Generics.:+: PointerType GHC.Generics.:+: QualifiedType GHC.Generics.:+: SliceType GHC.Generics.:+: StructType GHC.Generics.:+: TypeIdentifier) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_11.\n      AST.Traversable1.Class.Traversable1 a_11\n    )\n\ninstance GHC.Records.HasField \"ann\" (SimpleType a_12) a_12 where\n  getField = AST.Unmarshal.gann GHC.Base.. getSimpleType\n\nderiving instance GHC.Classes.Eq a_13 => GHC.Classes.Eq (SimpleType a_13)\n\nderiving instance GHC.Classes.Ord a_14 => GHC.Classes.Ord (SimpleType a_14)\n\nderiving instance GHC.Show.Show a_15 => GHC.Show.Show (SimpleType a_15)\n\ninstance AST.Unmarshal.Unmarshal SimpleType\n\ninstance Data.Foldable.Foldable SimpleType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SimpleType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SimpleType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Statement a = Statement {getStatement :: ((SimpleStatement GHC.Generics.:+: Block GHC.Generics.:+: BreakStatement GHC.Generics.:+: ConstDeclaration GHC.Generics.:+: ContinueStatement GHC.Generics.:+: DeferStatement GHC.Generics.:+: EmptyStatement GHC.Generics.:+: ExpressionSwitchStatement GHC.Generics.:+: FallthroughStatement GHC.Generics.:+: ForStatement GHC.Generics.:+: GoStatement GHC.Generics.:+: GotoStatement GHC.Generics.:+: IfStatement GHC.Generics.:+: LabeledStatement GHC.Generics.:+: ReturnStatement GHC.Generics.:+: SelectStatement GHC.Generics.:+: TypeDeclaration GHC.Generics.:+: TypeSwitchStatement GHC.Generics.:+: VarDeclaration) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_16.\n      AST.Traversable1.Class.Traversable1 a_16\n    )\n\ninstance GHC.Records.HasField \"ann\" (Statement a_17) a_17 where\n  getField = AST.Unmarshal.gann GHC.Base.. getStatement\n\nderiving instance GHC.Classes.Eq a_18 => GHC.Classes.Eq (Statement a_18)\n\nderiving instance GHC.Classes.Ord a_19 => GHC.Classes.Ord (Statement a_19)\n\nderiving instance GHC.Show.Show a_20 => GHC.Show.Show (Statement a_20)\n\ninstance AST.Unmarshal.Unmarshal Statement\n\ninstance Data.Foldable.Foldable Statement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Statement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Statement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Type a = Type {getType :: ((SimpleType GHC.Generics.:+: ParenthesizedType) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_21.\n      AST.Traversable1.Class.Traversable1 a_21\n    )\n\ninstance GHC.Records.HasField \"ann\" (Type a_22) a_22 where\n  getField = AST.Unmarshal.gann GHC.Base.. getType\n\nderiving instance GHC.Classes.Eq a_23 => GHC.Classes.Eq (Type a_23)\n\nderiving instance GHC.Classes.Ord a_24 => GHC.Classes.Ord (Type a_24)\n\nderiving instance GHC.Show.Show a_25 => GHC.Show.Show (Type a_25)\n\ninstance AST.Unmarshal.Unmarshal Type\n\ninstance Data.Foldable.Foldable Type where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Type where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Type where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ArgumentList a = ArgumentList\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: Type GHC.Generics.:+: VariadicArgument) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_26.\n      AST.Traversable1.Class.Traversable1 a_26\n    )\n\ninstance AST.Unmarshal.SymbolMatching ArgumentList where\n  matchedSymbols _ = [161, 162]\n  showFailure _ node_27 =\n    \"expected \"\n      GHC.Base.<> ( \"argument_list, argument_list\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_27 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_27) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_28 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_29 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_30 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_31 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_28\n        c1_29 = TreeSitter.Node.nodeStartPoint node_27\n      TreeSitter.Node.TSPoint\n        r2_30\n        c2_31 = TreeSitter.Node.nodeEndPoint node_27\n\nderiving instance GHC.Classes.Eq a_32 => GHC.Classes.Eq (ArgumentList a_32)\n\nderiving instance GHC.Classes.Ord a_33 => GHC.Classes.Ord (ArgumentList a_33)\n\nderiving instance GHC.Show.Show a_34 => GHC.Show.Show (ArgumentList a_34)\n\ninstance AST.Unmarshal.Unmarshal ArgumentList\n\ninstance Data.Foldable.Foldable ArgumentList where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ArgumentList where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ArgumentList where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ArrayType a = ArrayType\n  { ann :: a,\n    length :: (AST.Parse.Err (Expression a)),\n    element :: (AST.Parse.Err (Type a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_35.\n      AST.Traversable1.Class.Traversable1 a_35\n    )\n\ninstance AST.Unmarshal.SymbolMatching ArrayType where\n  matchedSymbols _ = [113]\n  showFailure _ node_36 =\n    \"expected \"\n      GHC.Base.<> ( \"array_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_36 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_36) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_37 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_38 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_39 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_40 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_37\n        c1_38 = TreeSitter.Node.nodeStartPoint node_36\n      TreeSitter.Node.TSPoint\n        r2_39\n        c2_40 = TreeSitter.Node.nodeEndPoint node_36\n\nderiving instance GHC.Classes.Eq a_41 => GHC.Classes.Eq (ArrayType a_41)\n\nderiving instance GHC.Classes.Ord a_42 => GHC.Classes.Ord (ArrayType a_42)\n\nderiving instance GHC.Show.Show a_43 => GHC.Show.Show (ArrayType a_43)\n\ninstance AST.Unmarshal.Unmarshal ArrayType\n\ninstance Data.Foldable.Foldable ArrayType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ArrayType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ArrayType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AssignmentStatement a = AssignmentStatement\n  { ann :: a,\n    operator :: (AST.Parse.Err ((AnonymousPercentEqual GHC.Generics.:+: AnonymousAmpersandEqual GHC.Generics.:+: AnonymousAmpersandCaretEqual GHC.Generics.:+: AnonymousStarEqual GHC.Generics.:+: AnonymousPlusEqual GHC.Generics.:+: AnonymousMinusEqual GHC.Generics.:+: AnonymousSlashEqual GHC.Generics.:+: AnonymousLAngleLAngleEqual GHC.Generics.:+: AnonymousEqual GHC.Generics.:+: AnonymousRAngleRAngleEqual GHC.Generics.:+: AnonymousCaretEqual GHC.Generics.:+: AnonymousPipeEqual) a)),\n    left :: (AST.Parse.Err (ExpressionList a)),\n    right :: (AST.Parse.Err (ExpressionList a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_44.\n      AST.Traversable1.Class.Traversable1 a_44\n    )\n\ninstance AST.Unmarshal.SymbolMatching AssignmentStatement where\n  matchedSymbols _ = [134]\n  showFailure _ node_45 =\n    \"expected \"\n      GHC.Base.<> ( \"assignment_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_45 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_45) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_46 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_47 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_48 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_49 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_46\n        c1_47 = TreeSitter.Node.nodeStartPoint node_45\n      TreeSitter.Node.TSPoint\n        r2_48\n        c2_49 = TreeSitter.Node.nodeEndPoint node_45\n\nderiving instance GHC.Classes.Eq a_50 => GHC.Classes.Eq (AssignmentStatement a_50)\n\nderiving instance GHC.Classes.Ord a_51 => GHC.Classes.Ord (AssignmentStatement a_51)\n\nderiving instance GHC.Show.Show a_52 => GHC.Show.Show (AssignmentStatement a_52)\n\ninstance AST.Unmarshal.Unmarshal AssignmentStatement\n\ninstance Data.Foldable.Foldable AssignmentStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AssignmentStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AssignmentStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BinaryExpression a = BinaryExpression\n  { ann :: a,\n    operator :: (AST.Parse.Err ((AnonymousBangEqual GHC.Generics.:+: AnonymousPercent GHC.Generics.:+: AnonymousAmpersand GHC.Generics.:+: AnonymousAmpersandAmpersand GHC.Generics.:+: AnonymousAmpersandCaret GHC.Generics.:+: AnonymousStar GHC.Generics.:+: AnonymousPlus GHC.Generics.:+: AnonymousMinus GHC.Generics.:+: AnonymousSlash GHC.Generics.:+: AnonymousLAngle GHC.Generics.:+: AnonymousLAngleLAngle GHC.Generics.:+: AnonymousLAngleEqual GHC.Generics.:+: AnonymousEqualEqual GHC.Generics.:+: AnonymousRAngle GHC.Generics.:+: AnonymousRAngleEqual GHC.Generics.:+: AnonymousRAngleRAngle GHC.Generics.:+: AnonymousCaret GHC.Generics.:+: AnonymousPipe GHC.Generics.:+: AnonymousPipePipe) a)),\n    left :: (AST.Parse.Err (Expression a)),\n    right :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_53.\n      AST.Traversable1.Class.Traversable1 a_53\n    )\n\ninstance AST.Unmarshal.SymbolMatching BinaryExpression where\n  matchedSymbols _ = [174]\n  showFailure _ node_54 =\n    \"expected \"\n      GHC.Base.<> ( \"binary_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_54 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_54) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_55 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_56 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_57 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_58 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_55\n        c1_56 = TreeSitter.Node.nodeStartPoint node_54\n      TreeSitter.Node.TSPoint\n        r2_57\n        c2_58 = TreeSitter.Node.nodeEndPoint node_54\n\nderiving instance GHC.Classes.Eq a_59 => GHC.Classes.Eq (BinaryExpression a_59)\n\nderiving instance GHC.Classes.Ord a_60 => GHC.Classes.Ord (BinaryExpression a_60)\n\nderiving instance GHC.Show.Show a_61 => GHC.Show.Show (BinaryExpression a_61)\n\ninstance AST.Unmarshal.Unmarshal BinaryExpression\n\ninstance Data.Foldable.Foldable BinaryExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BinaryExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BinaryExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Block a = Block\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (Statement a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_62.\n      AST.Traversable1.Class.Traversable1 a_62\n    )\n\ninstance AST.Unmarshal.SymbolMatching Block where\n  matchedSymbols _ = [125]\n  showFailure _ node_63 =\n    \"expected \"\n      GHC.Base.<> ( \"block\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_63 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_63) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_64 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_65 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_66 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_67 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_64\n        c1_65 = TreeSitter.Node.nodeStartPoint node_63\n      TreeSitter.Node.TSPoint\n        r2_66\n        c2_67 = TreeSitter.Node.nodeEndPoint node_63\n\nderiving instance GHC.Classes.Eq a_68 => GHC.Classes.Eq (Block a_68)\n\nderiving instance GHC.Classes.Ord a_69 => GHC.Classes.Ord (Block a_69)\n\nderiving instance GHC.Show.Show a_70 => GHC.Show.Show (Block a_70)\n\ninstance AST.Unmarshal.Unmarshal Block\n\ninstance Data.Foldable.Foldable Block where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Block where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Block where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BreakStatement a = BreakStatement\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (LabelName a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_71.\n      AST.Traversable1.Class.Traversable1 a_71\n    )\n\ninstance AST.Unmarshal.SymbolMatching BreakStatement where\n  matchedSymbols _ = [139]\n  showFailure _ node_72 =\n    \"expected \"\n      GHC.Base.<> ( \"break_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_72 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_72) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_73 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_74 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_75 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_76 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_73\n        c1_74 = TreeSitter.Node.nodeStartPoint node_72\n      TreeSitter.Node.TSPoint\n        r2_75\n        c2_76 = TreeSitter.Node.nodeEndPoint node_72\n\nderiving instance GHC.Classes.Eq a_77 => GHC.Classes.Eq (BreakStatement a_77)\n\nderiving instance GHC.Classes.Ord a_78 => GHC.Classes.Ord (BreakStatement a_78)\n\nderiving instance GHC.Show.Show a_79 => GHC.Show.Show (BreakStatement a_79)\n\ninstance AST.Unmarshal.Unmarshal BreakStatement\n\ninstance Data.Foldable.Foldable BreakStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BreakStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BreakStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CallExpression a = CallExpression\n  { ann :: a,\n    function :: (AST.Parse.Err (Expression a)),\n    arguments :: (AST.Parse.Err (ArgumentList a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_80.\n      AST.Traversable1.Class.Traversable1 a_80\n    )\n\ninstance AST.Unmarshal.SymbolMatching CallExpression where\n  matchedSymbols _ = [159]\n  showFailure _ node_81 =\n    \"expected \"\n      GHC.Base.<> ( \"call_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_81 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_81) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_82 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_83 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_84 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_85 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_82\n        c1_83 = TreeSitter.Node.nodeStartPoint node_81\n      TreeSitter.Node.TSPoint\n        r2_84\n        c2_85 = TreeSitter.Node.nodeEndPoint node_81\n\nderiving instance GHC.Classes.Eq a_86 => GHC.Classes.Eq (CallExpression a_86)\n\nderiving instance GHC.Classes.Ord a_87 => GHC.Classes.Ord (CallExpression a_87)\n\nderiving instance GHC.Show.Show a_88 => GHC.Show.Show (CallExpression a_88)\n\ninstance AST.Unmarshal.Unmarshal CallExpression\n\ninstance Data.Foldable.Foldable CallExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CallExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CallExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ChannelType a = ChannelType {ann :: a, value :: (AST.Parse.Err (Type a))}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_89.\n      AST.Traversable1.Class.Traversable1 a_89\n    )\n\ninstance AST.Unmarshal.SymbolMatching ChannelType where\n  matchedSymbols _ = [123]\n  showFailure _ node_90 =\n    \"expected \"\n      GHC.Base.<> ( \"channel_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_90 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_90) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_91 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_92 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_93 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_94 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_91\n        c1_92 = TreeSitter.Node.nodeStartPoint node_90\n      TreeSitter.Node.TSPoint\n        r2_93\n        c2_94 = TreeSitter.Node.nodeEndPoint node_90\n\nderiving instance GHC.Classes.Eq a_95 => GHC.Classes.Eq (ChannelType a_95)\n\nderiving instance GHC.Classes.Ord a_96 => GHC.Classes.Ord (ChannelType a_96)\n\nderiving instance GHC.Show.Show a_97 => GHC.Show.Show (ChannelType a_97)\n\ninstance AST.Unmarshal.Unmarshal ChannelType\n\ninstance Data.Foldable.Foldable ChannelType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ChannelType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ChannelType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CommunicationCase a = CommunicationCase\n  { ann :: a,\n    communication :: (AST.Parse.Err ((ReceiveStatement GHC.Generics.:+: SendStatement) a)),\n    extraChildren :: ([AST.Parse.Err (Statement a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_98.\n      AST.Traversable1.Class.Traversable1 a_98\n    )\n\ninstance AST.Unmarshal.SymbolMatching CommunicationCase where\n  matchedSymbols _ = [156]\n  showFailure _ node_99 =\n    \"expected \"\n      GHC.Base.<> ( \"communication_case\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_99 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_99) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_100 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_101 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_102 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_103 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_100\n        c1_101 = TreeSitter.Node.nodeStartPoint node_99\n      TreeSitter.Node.TSPoint\n        r2_102\n        c2_103 = TreeSitter.Node.nodeEndPoint node_99\n\nderiving instance GHC.Classes.Eq a_104 => GHC.Classes.Eq (CommunicationCase a_104)\n\nderiving instance GHC.Classes.Ord a_105 => GHC.Classes.Ord (CommunicationCase a_105)\n\nderiving instance GHC.Show.Show a_106 => GHC.Show.Show (CommunicationCase a_106)\n\ninstance AST.Unmarshal.Unmarshal CommunicationCase\n\ninstance Data.Foldable.Foldable CommunicationCase where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CommunicationCase where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CommunicationCase where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CompositeLiteral a = CompositeLiteral\n  { ann :: a,\n    body :: (AST.Parse.Err (LiteralValue a)),\n    type' :: (AST.Parse.Err ((ArrayType GHC.Generics.:+: ImplicitLengthArrayType GHC.Generics.:+: MapType GHC.Generics.:+: QualifiedType GHC.Generics.:+: SliceType GHC.Generics.:+: StructType GHC.Generics.:+: TypeIdentifier) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_107.\n      AST.Traversable1.Class.Traversable1 a_107\n    )\n\ninstance AST.Unmarshal.SymbolMatching CompositeLiteral where\n  matchedSymbols _ = [168]\n  showFailure _ node_108 =\n    \"expected \"\n      GHC.Base.<> ( \"composite_literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_108 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_108) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_109 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_110 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_111 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_112 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_109\n        c1_110 = TreeSitter.Node.nodeStartPoint node_108\n      TreeSitter.Node.TSPoint\n        r2_111\n        c2_112 = TreeSitter.Node.nodeEndPoint node_108\n\nderiving instance GHC.Classes.Eq a_113 => GHC.Classes.Eq (CompositeLiteral a_113)\n\nderiving instance GHC.Classes.Ord a_114 => GHC.Classes.Ord (CompositeLiteral a_114)\n\nderiving instance GHC.Show.Show a_115 => GHC.Show.Show (CompositeLiteral a_115)\n\ninstance AST.Unmarshal.Unmarshal CompositeLiteral\n\ninstance Data.Foldable.Foldable CompositeLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CompositeLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CompositeLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ConstDeclaration a = ConstDeclaration\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (ConstSpec a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_116.\n      AST.Traversable1.Class.Traversable1 a_116\n    )\n\ninstance AST.Unmarshal.SymbolMatching ConstDeclaration where\n  matchedSymbols _ = [97]\n  showFailure _ node_117 =\n    \"expected \"\n      GHC.Base.<> ( \"const_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_117 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_117) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_118 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_119 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_120 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_121 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_118\n        c1_119 = TreeSitter.Node.nodeStartPoint node_117\n      TreeSitter.Node.TSPoint\n        r2_120\n        c2_121 = TreeSitter.Node.nodeEndPoint node_117\n\nderiving instance GHC.Classes.Eq a_122 => GHC.Classes.Eq (ConstDeclaration a_122)\n\nderiving instance GHC.Classes.Ord a_123 => GHC.Classes.Ord (ConstDeclaration a_123)\n\nderiving instance GHC.Show.Show a_124 => GHC.Show.Show (ConstDeclaration a_124)\n\ninstance AST.Unmarshal.Unmarshal ConstDeclaration\n\ninstance Data.Foldable.Foldable ConstDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ConstDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ConstDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ConstSpec a = ConstSpec\n  { ann :: a,\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err (ExpressionList a))),\n    name :: (GHC.Base.NonEmpty (AST.Parse.Err ((AnonymousComma GHC.Generics.:+: Identifier) a))),\n    type' :: (GHC.Maybe.Maybe (AST.Parse.Err (Type a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_125.\n      AST.Traversable1.Class.Traversable1 a_125\n    )\n\ninstance AST.Unmarshal.SymbolMatching ConstSpec where\n  matchedSymbols _ = [98]\n  showFailure _ node_126 =\n    \"expected \"\n      GHC.Base.<> ( \"const_spec\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_126 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_126) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_127 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_128 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_129 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_130 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_127\n        c1_128 = TreeSitter.Node.nodeStartPoint node_126\n      TreeSitter.Node.TSPoint\n        r2_129\n        c2_130 = TreeSitter.Node.nodeEndPoint node_126\n\nderiving instance GHC.Classes.Eq a_131 => GHC.Classes.Eq (ConstSpec a_131)\n\nderiving instance GHC.Classes.Ord a_132 => GHC.Classes.Ord (ConstSpec a_132)\n\nderiving instance GHC.Show.Show a_133 => GHC.Show.Show (ConstSpec a_133)\n\ninstance AST.Unmarshal.Unmarshal ConstSpec\n\ninstance Data.Foldable.Foldable ConstSpec where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ConstSpec where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ConstSpec where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ContinueStatement a = ContinueStatement\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (LabelName a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_134.\n      AST.Traversable1.Class.Traversable1 a_134\n    )\n\ninstance AST.Unmarshal.SymbolMatching ContinueStatement where\n  matchedSymbols _ = [140]\n  showFailure _ node_135 =\n    \"expected \"\n      GHC.Base.<> ( \"continue_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_135 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_135) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_136 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_137 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_138 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_139 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_136\n        c1_137 = TreeSitter.Node.nodeStartPoint node_135\n      TreeSitter.Node.TSPoint\n        r2_138\n        c2_139 = TreeSitter.Node.nodeEndPoint node_135\n\nderiving instance GHC.Classes.Eq a_140 => GHC.Classes.Eq (ContinueStatement a_140)\n\nderiving instance GHC.Classes.Ord a_141 => GHC.Classes.Ord (ContinueStatement a_141)\n\nderiving instance GHC.Show.Show a_142 => GHC.Show.Show (ContinueStatement a_142)\n\ninstance AST.Unmarshal.Unmarshal ContinueStatement\n\ninstance Data.Foldable.Foldable ContinueStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ContinueStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ContinueStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DecStatement a = DecStatement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_143.\n      AST.Traversable1.Class.Traversable1 a_143\n    )\n\ninstance AST.Unmarshal.SymbolMatching DecStatement where\n  matchedSymbols _ = [133]\n  showFailure _ node_144 =\n    \"expected \"\n      GHC.Base.<> ( \"dec_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_144 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_144) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_145 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_146 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_147 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_148 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_145\n        c1_146 = TreeSitter.Node.nodeStartPoint node_144\n      TreeSitter.Node.TSPoint\n        r2_147\n        c2_148 = TreeSitter.Node.nodeEndPoint node_144\n\nderiving instance GHC.Classes.Eq a_149 => GHC.Classes.Eq (DecStatement a_149)\n\nderiving instance GHC.Classes.Ord a_150 => GHC.Classes.Ord (DecStatement a_150)\n\nderiving instance GHC.Show.Show a_151 => GHC.Show.Show (DecStatement a_151)\n\ninstance AST.Unmarshal.Unmarshal DecStatement\n\ninstance Data.Foldable.Foldable DecStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DecStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DecStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DefaultCase a = DefaultCase\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (Statement a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_152.\n      AST.Traversable1.Class.Traversable1 a_152\n    )\n\ninstance AST.Unmarshal.SymbolMatching DefaultCase where\n  matchedSymbols _ = [151]\n  showFailure _ node_153 =\n    \"expected \"\n      GHC.Base.<> ( \"default_case\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_153 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_153) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_154 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_155 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_156 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_157 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_154\n        c1_155 = TreeSitter.Node.nodeStartPoint node_153\n      TreeSitter.Node.TSPoint\n        r2_156\n        c2_157 = TreeSitter.Node.nodeEndPoint node_153\n\nderiving instance GHC.Classes.Eq a_158 => GHC.Classes.Eq (DefaultCase a_158)\n\nderiving instance GHC.Classes.Ord a_159 => GHC.Classes.Ord (DefaultCase a_159)\n\nderiving instance GHC.Show.Show a_160 => GHC.Show.Show (DefaultCase a_160)\n\ninstance AST.Unmarshal.Unmarshal DefaultCase\n\ninstance Data.Foldable.Foldable DefaultCase where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DefaultCase where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DefaultCase where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DeferStatement a = DeferStatement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_161.\n      AST.Traversable1.Class.Traversable1 a_161\n    )\n\ninstance AST.Unmarshal.SymbolMatching DeferStatement where\n  matchedSymbols _ = [144]\n  showFailure _ node_162 =\n    \"expected \"\n      GHC.Base.<> ( \"defer_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_162 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_162) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_163 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_164 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_165 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_166 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_163\n        c1_164 = TreeSitter.Node.nodeStartPoint node_162\n      TreeSitter.Node.TSPoint\n        r2_165\n        c2_166 = TreeSitter.Node.nodeEndPoint node_162\n\nderiving instance GHC.Classes.Eq a_167 => GHC.Classes.Eq (DeferStatement a_167)\n\nderiving instance GHC.Classes.Ord a_168 => GHC.Classes.Ord (DeferStatement a_168)\n\nderiving instance GHC.Show.Show a_169 => GHC.Show.Show (DeferStatement a_169)\n\ninstance AST.Unmarshal.Unmarshal DeferStatement\n\ninstance Data.Foldable.Foldable DeferStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DeferStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DeferStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Dot a = Dot {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_170.\n      AST.Traversable1.Class.Traversable1 a_170\n    )\n\ninstance AST.Unmarshal.SymbolMatching Dot where\n  matchedSymbols _ = [94]\n  showFailure _ node_171 =\n    \"expected \"\n      GHC.Base.<> ( \"dot\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_171 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_171) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_172 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_173 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_174 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_175 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_172\n        c1_173 = TreeSitter.Node.nodeStartPoint node_171\n      TreeSitter.Node.TSPoint\n        r2_174\n        c2_175 = TreeSitter.Node.nodeEndPoint node_171\n\nderiving instance GHC.Classes.Eq a_176 => GHC.Classes.Eq (Dot a_176)\n\nderiving instance GHC.Classes.Ord a_177 => GHC.Classes.Ord (Dot a_177)\n\nderiving instance GHC.Show.Show a_178 => GHC.Show.Show (Dot a_178)\n\ninstance AST.Unmarshal.Unmarshal Dot\n\ninstance Data.Foldable.Foldable Dot where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Dot where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Dot where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Element a = Element\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: LiteralValue) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_179.\n      AST.Traversable1.Class.Traversable1 a_179\n    )\n\ninstance AST.Unmarshal.SymbolMatching Element where\n  matchedSymbols _ = [171]\n  showFailure _ node_180 =\n    \"expected \"\n      GHC.Base.<> ( \"element\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_180 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_180) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_181 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_182 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_183 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_184 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_181\n        c1_182 = TreeSitter.Node.nodeStartPoint node_180\n      TreeSitter.Node.TSPoint\n        r2_183\n        c2_184 = TreeSitter.Node.nodeEndPoint node_180\n\nderiving instance GHC.Classes.Eq a_185 => GHC.Classes.Eq (Element a_185)\n\nderiving instance GHC.Classes.Ord a_186 => GHC.Classes.Ord (Element a_186)\n\nderiving instance GHC.Show.Show a_187 => GHC.Show.Show (Element a_187)\n\ninstance AST.Unmarshal.Unmarshal Element\n\ninstance Data.Foldable.Foldable Element where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Element where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Element where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata EmptyStatement a = EmptyStatement {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_188.\n      AST.Traversable1.Class.Traversable1 a_188\n    )\n\ninstance AST.Unmarshal.SymbolMatching EmptyStatement where\n  matchedSymbols _ = [128]\n  showFailure _ node_189 =\n    \"expected \"\n      GHC.Base.<> ( \"empty_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_189 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_189) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_190 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_191 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_192 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_193 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_190\n        c1_191 = TreeSitter.Node.nodeStartPoint node_189\n      TreeSitter.Node.TSPoint\n        r2_192\n        c2_193 = TreeSitter.Node.nodeEndPoint node_189\n\nderiving instance GHC.Classes.Eq a_194 => GHC.Classes.Eq (EmptyStatement a_194)\n\nderiving instance GHC.Classes.Ord a_195 => GHC.Classes.Ord (EmptyStatement a_195)\n\nderiving instance GHC.Show.Show a_196 => GHC.Show.Show (EmptyStatement a_196)\n\ninstance AST.Unmarshal.Unmarshal EmptyStatement\n\ninstance Data.Foldable.Foldable EmptyStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EmptyStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EmptyStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExpressionCase a = ExpressionCase\n  { ann :: a,\n    value :: (AST.Parse.Err (ExpressionList a)),\n    extraChildren :: ([AST.Parse.Err (Statement a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_197.\n      AST.Traversable1.Class.Traversable1 a_197\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExpressionCase where\n  matchedSymbols _ = [150]\n  showFailure _ node_198 =\n    \"expected \"\n      GHC.Base.<> ( \"expression_case\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_198 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_198) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_199 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_200 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_201 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_202 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_199\n        c1_200 = TreeSitter.Node.nodeStartPoint node_198\n      TreeSitter.Node.TSPoint\n        r2_201\n        c2_202 = TreeSitter.Node.nodeEndPoint node_198\n\nderiving instance GHC.Classes.Eq a_203 => GHC.Classes.Eq (ExpressionCase a_203)\n\nderiving instance GHC.Classes.Ord a_204 => GHC.Classes.Ord (ExpressionCase a_204)\n\nderiving instance GHC.Show.Show a_205 => GHC.Show.Show (ExpressionCase a_205)\n\ninstance AST.Unmarshal.Unmarshal ExpressionCase\n\ninstance Data.Foldable.Foldable ExpressionCase where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExpressionCase where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExpressionCase where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExpressionList a = ExpressionList\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Expression a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_206.\n      AST.Traversable1.Class.Traversable1 a_206\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExpressionList where\n  matchedSymbols _ = [109]\n  showFailure _ node_207 =\n    \"expected \"\n      GHC.Base.<> ( \"expression_list\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_207 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_207) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_208 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_209 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_210 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_211 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_208\n        c1_209 = TreeSitter.Node.nodeStartPoint node_207\n      TreeSitter.Node.TSPoint\n        r2_210\n        c2_211 = TreeSitter.Node.nodeEndPoint node_207\n\nderiving instance GHC.Classes.Eq a_212 => GHC.Classes.Eq (ExpressionList a_212)\n\nderiving instance GHC.Classes.Ord a_213 => GHC.Classes.Ord (ExpressionList a_213)\n\nderiving instance GHC.Show.Show a_214 => GHC.Show.Show (ExpressionList a_214)\n\ninstance AST.Unmarshal.Unmarshal ExpressionList\n\ninstance Data.Foldable.Foldable ExpressionList where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExpressionList where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExpressionList where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExpressionSwitchStatement a = ExpressionSwitchStatement\n  { ann :: a,\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    initializer :: (GHC.Maybe.Maybe (AST.Parse.Err (SimpleStatement a))),\n    extraChildren :: ([AST.Parse.Err ((DefaultCase GHC.Generics.:+: ExpressionCase) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_215.\n      AST.Traversable1.Class.Traversable1 a_215\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExpressionSwitchStatement where\n  matchedSymbols _ = [149]\n  showFailure _ node_216 =\n    \"expected \"\n      GHC.Base.<> ( \"expression_switch_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_216 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_216) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_217 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_218 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_219 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_220 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_217\n        c1_218 = TreeSitter.Node.nodeStartPoint node_216\n      TreeSitter.Node.TSPoint\n        r2_219\n        c2_220 = TreeSitter.Node.nodeEndPoint node_216\n\nderiving instance GHC.Classes.Eq a_221 => GHC.Classes.Eq (ExpressionSwitchStatement a_221)\n\nderiving instance GHC.Classes.Ord a_222 => GHC.Classes.Ord (ExpressionSwitchStatement a_222)\n\nderiving instance GHC.Show.Show a_223 => GHC.Show.Show (ExpressionSwitchStatement a_223)\n\ninstance AST.Unmarshal.Unmarshal ExpressionSwitchStatement\n\ninstance Data.Foldable.Foldable ExpressionSwitchStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExpressionSwitchStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExpressionSwitchStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FallthroughStatement a = FallthroughStatement {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_224.\n      AST.Traversable1.Class.Traversable1 a_224\n    )\n\ninstance AST.Unmarshal.SymbolMatching FallthroughStatement where\n  matchedSymbols _ = [138]\n  showFailure _ node_225 =\n    \"expected \"\n      GHC.Base.<> ( \"fallthrough_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_225 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_225) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_226 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_227 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_228 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_229 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_226\n        c1_227 = TreeSitter.Node.nodeStartPoint node_225\n      TreeSitter.Node.TSPoint\n        r2_228\n        c2_229 = TreeSitter.Node.nodeEndPoint node_225\n\nderiving instance GHC.Classes.Eq a_230 => GHC.Classes.Eq (FallthroughStatement a_230)\n\nderiving instance GHC.Classes.Ord a_231 => GHC.Classes.Ord (FallthroughStatement a_231)\n\nderiving instance GHC.Show.Show a_232 => GHC.Show.Show (FallthroughStatement a_232)\n\ninstance AST.Unmarshal.Unmarshal FallthroughStatement\n\ninstance Data.Foldable.Foldable FallthroughStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FallthroughStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FallthroughStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FieldDeclaration a = FieldDeclaration\n  { ann :: a,\n    tag :: (GHC.Maybe.Maybe (AST.Parse.Err ((InterpretedStringLiteral GHC.Generics.:+: RawStringLiteral) a))),\n    name :: ([AST.Parse.Err ((AnonymousComma GHC.Generics.:+: FieldIdentifier) a)]),\n    type' :: (AST.Parse.Err ((Type GHC.Generics.:+: QualifiedType GHC.Generics.:+: TypeIdentifier) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_233.\n      AST.Traversable1.Class.Traversable1 a_233\n    )\n\ninstance AST.Unmarshal.SymbolMatching FieldDeclaration where\n  matchedSymbols _ = [118]\n  showFailure _ node_234 =\n    \"expected \"\n      GHC.Base.<> ( \"field_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_234 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_234) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_235 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_236 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_237 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_238 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_235\n        c1_236 = TreeSitter.Node.nodeStartPoint node_234\n      TreeSitter.Node.TSPoint\n        r2_237\n        c2_238 = TreeSitter.Node.nodeEndPoint node_234\n\nderiving instance GHC.Classes.Eq a_239 => GHC.Classes.Eq (FieldDeclaration a_239)\n\nderiving instance GHC.Classes.Ord a_240 => GHC.Classes.Ord (FieldDeclaration a_240)\n\nderiving instance GHC.Show.Show a_241 => GHC.Show.Show (FieldDeclaration a_241)\n\ninstance AST.Unmarshal.Unmarshal FieldDeclaration\n\ninstance Data.Foldable.Foldable FieldDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FieldDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FieldDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FieldDeclarationList a = FieldDeclarationList\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (FieldDeclaration a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_242.\n      AST.Traversable1.Class.Traversable1 a_242\n    )\n\ninstance AST.Unmarshal.SymbolMatching FieldDeclarationList where\n  matchedSymbols _ = [117]\n  showFailure _ node_243 =\n    \"expected \"\n      GHC.Base.<> ( \"field_declaration_list\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_243 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_243) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_244 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_245 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_246 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_247 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_244\n        c1_245 = TreeSitter.Node.nodeStartPoint node_243\n      TreeSitter.Node.TSPoint\n        r2_246\n        c2_247 = TreeSitter.Node.nodeEndPoint node_243\n\nderiving instance GHC.Classes.Eq a_248 => GHC.Classes.Eq (FieldDeclarationList a_248)\n\nderiving instance GHC.Classes.Ord a_249 => GHC.Classes.Ord (FieldDeclarationList a_249)\n\nderiving instance GHC.Show.Show a_250 => GHC.Show.Show (FieldDeclarationList a_250)\n\ninstance AST.Unmarshal.Unmarshal FieldDeclarationList\n\ninstance Data.Foldable.Foldable FieldDeclarationList where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FieldDeclarationList where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FieldDeclarationList where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ForClause a = ForClause\n  { ann :: a,\n    initializer :: (GHC.Maybe.Maybe (AST.Parse.Err (SimpleStatement a))),\n    condition :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    update :: (GHC.Maybe.Maybe (AST.Parse.Err (SimpleStatement a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_251.\n      AST.Traversable1.Class.Traversable1 a_251\n    )\n\ninstance AST.Unmarshal.SymbolMatching ForClause where\n  matchedSymbols _ = [147]\n  showFailure _ node_252 =\n    \"expected \"\n      GHC.Base.<> ( \"for_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_252 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_252) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_253 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_254 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_255 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_256 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_253\n        c1_254 = TreeSitter.Node.nodeStartPoint node_252\n      TreeSitter.Node.TSPoint\n        r2_255\n        c2_256 = TreeSitter.Node.nodeEndPoint node_252\n\nderiving instance GHC.Classes.Eq a_257 => GHC.Classes.Eq (ForClause a_257)\n\nderiving instance GHC.Classes.Ord a_258 => GHC.Classes.Ord (ForClause a_258)\n\nderiving instance GHC.Show.Show a_259 => GHC.Show.Show (ForClause a_259)\n\ninstance AST.Unmarshal.Unmarshal ForClause\n\ninstance Data.Foldable.Foldable ForClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ForClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ForClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ForStatement a = ForStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (Block a)),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: ForClause GHC.Generics.:+: RangeClause) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_260.\n      AST.Traversable1.Class.Traversable1 a_260\n    )\n\ninstance AST.Unmarshal.SymbolMatching ForStatement where\n  matchedSymbols _ = [146]\n  showFailure _ node_261 =\n    \"expected \"\n      GHC.Base.<> ( \"for_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_261 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_261) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_262 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_263 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_264 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_265 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_262\n        c1_263 = TreeSitter.Node.nodeStartPoint node_261\n      TreeSitter.Node.TSPoint\n        r2_264\n        c2_265 = TreeSitter.Node.nodeEndPoint node_261\n\nderiving instance GHC.Classes.Eq a_266 => GHC.Classes.Eq (ForStatement a_266)\n\nderiving instance GHC.Classes.Ord a_267 => GHC.Classes.Ord (ForStatement a_267)\n\nderiving instance GHC.Show.Show a_268 => GHC.Show.Show (ForStatement a_268)\n\ninstance AST.Unmarshal.Unmarshal ForStatement\n\ninstance Data.Foldable.Foldable ForStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ForStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ForStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FuncLiteral a = FuncLiteral\n  { ann :: a,\n    body :: (AST.Parse.Err (Block a)),\n    result :: (GHC.Maybe.Maybe (AST.Parse.Err ((SimpleType GHC.Generics.:+: ParameterList) a))),\n    parameters :: (AST.Parse.Err (ParameterList a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_269.\n      AST.Traversable1.Class.Traversable1 a_269\n    )\n\ninstance AST.Unmarshal.SymbolMatching FuncLiteral where\n  matchedSymbols _ = [172]\n  showFailure _ node_270 =\n    \"expected \"\n      GHC.Base.<> ( \"func_literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_270 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_270) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_271 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_272 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_273 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_274 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_271\n        c1_272 = TreeSitter.Node.nodeStartPoint node_270\n      TreeSitter.Node.TSPoint\n        r2_273\n        c2_274 = TreeSitter.Node.nodeEndPoint node_270\n\nderiving instance GHC.Classes.Eq a_275 => GHC.Classes.Eq (FuncLiteral a_275)\n\nderiving instance GHC.Classes.Ord a_276 => GHC.Classes.Ord (FuncLiteral a_276)\n\nderiving instance GHC.Show.Show a_277 => GHC.Show.Show (FuncLiteral a_277)\n\ninstance AST.Unmarshal.Unmarshal FuncLiteral\n\ninstance Data.Foldable.Foldable FuncLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FuncLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FuncLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FunctionDeclaration a = FunctionDeclaration\n  { ann :: a,\n    body :: (GHC.Maybe.Maybe (AST.Parse.Err (Block a))),\n    result :: (GHC.Maybe.Maybe (AST.Parse.Err ((SimpleType GHC.Generics.:+: ParameterList) a))),\n    name :: (AST.Parse.Err (Identifier a)),\n    parameters :: (AST.Parse.Err (ParameterList a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_278.\n      AST.Traversable1.Class.Traversable1 a_278\n    )\n\ninstance AST.Unmarshal.SymbolMatching FunctionDeclaration where\n  matchedSymbols _ = [101]\n  showFailure _ node_279 =\n    \"expected \"\n      GHC.Base.<> ( \"function_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_279 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_279) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_280 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_281 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_282 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_283 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_280\n        c1_281 = TreeSitter.Node.nodeStartPoint node_279\n      TreeSitter.Node.TSPoint\n        r2_282\n        c2_283 = TreeSitter.Node.nodeEndPoint node_279\n\nderiving instance GHC.Classes.Eq a_284 => GHC.Classes.Eq (FunctionDeclaration a_284)\n\nderiving instance GHC.Classes.Ord a_285 => GHC.Classes.Ord (FunctionDeclaration a_285)\n\nderiving instance GHC.Show.Show a_286 => GHC.Show.Show (FunctionDeclaration a_286)\n\ninstance AST.Unmarshal.Unmarshal FunctionDeclaration\n\ninstance Data.Foldable.Foldable FunctionDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FunctionDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FunctionDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FunctionType a = FunctionType\n  { ann :: a,\n    result :: (GHC.Maybe.Maybe (AST.Parse.Err ((SimpleType GHC.Generics.:+: ParameterList) a))),\n    parameters :: (AST.Parse.Err (ParameterList a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_287.\n      AST.Traversable1.Class.Traversable1 a_287\n    )\n\ninstance AST.Unmarshal.SymbolMatching FunctionType where\n  matchedSymbols _ = [124]\n  showFailure _ node_288 =\n    \"expected \"\n      GHC.Base.<> ( \"function_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_288 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_288) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_289 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_290 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_291 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_292 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_289\n        c1_290 = TreeSitter.Node.nodeStartPoint node_288\n      TreeSitter.Node.TSPoint\n        r2_291\n        c2_292 = TreeSitter.Node.nodeEndPoint node_288\n\nderiving instance GHC.Classes.Eq a_293 => GHC.Classes.Eq (FunctionType a_293)\n\nderiving instance GHC.Classes.Ord a_294 => GHC.Classes.Ord (FunctionType a_294)\n\nderiving instance GHC.Show.Show a_295 => GHC.Show.Show (FunctionType a_295)\n\ninstance AST.Unmarshal.Unmarshal FunctionType\n\ninstance Data.Foldable.Foldable FunctionType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FunctionType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FunctionType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata GoStatement a = GoStatement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_296.\n      AST.Traversable1.Class.Traversable1 a_296\n    )\n\ninstance AST.Unmarshal.SymbolMatching GoStatement where\n  matchedSymbols _ = [143]\n  showFailure _ node_297 =\n    \"expected \"\n      GHC.Base.<> ( \"go_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_297 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_297) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_298 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_299 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_300 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_301 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_298\n        c1_299 = TreeSitter.Node.nodeStartPoint node_297\n      TreeSitter.Node.TSPoint\n        r2_300\n        c2_301 = TreeSitter.Node.nodeEndPoint node_297\n\nderiving instance GHC.Classes.Eq a_302 => GHC.Classes.Eq (GoStatement a_302)\n\nderiving instance GHC.Classes.Ord a_303 => GHC.Classes.Ord (GoStatement a_303)\n\nderiving instance GHC.Show.Show a_304 => GHC.Show.Show (GoStatement a_304)\n\ninstance AST.Unmarshal.Unmarshal GoStatement\n\ninstance Data.Foldable.Foldable GoStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor GoStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable GoStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata GotoStatement a = GotoStatement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (LabelName a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_305.\n      AST.Traversable1.Class.Traversable1 a_305\n    )\n\ninstance AST.Unmarshal.SymbolMatching GotoStatement where\n  matchedSymbols _ = [141]\n  showFailure _ node_306 =\n    \"expected \"\n      GHC.Base.<> ( \"goto_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_306 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_306) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_307 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_308 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_309 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_310 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_307\n        c1_308 = TreeSitter.Node.nodeStartPoint node_306\n      TreeSitter.Node.TSPoint\n        r2_309\n        c2_310 = TreeSitter.Node.nodeEndPoint node_306\n\nderiving instance GHC.Classes.Eq a_311 => GHC.Classes.Eq (GotoStatement a_311)\n\nderiving instance GHC.Classes.Ord a_312 => GHC.Classes.Ord (GotoStatement a_312)\n\nderiving instance GHC.Show.Show a_313 => GHC.Show.Show (GotoStatement a_313)\n\ninstance AST.Unmarshal.Unmarshal GotoStatement\n\ninstance Data.Foldable.Foldable GotoStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor GotoStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable GotoStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IfStatement a = IfStatement\n  { ann :: a,\n    alternative :: (GHC.Maybe.Maybe (AST.Parse.Err ((Block GHC.Generics.:+: IfStatement) a))),\n    initializer :: (GHC.Maybe.Maybe (AST.Parse.Err (SimpleStatement a))),\n    consequence :: (AST.Parse.Err (Block a)),\n    condition :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_314.\n      AST.Traversable1.Class.Traversable1 a_314\n    )\n\ninstance AST.Unmarshal.SymbolMatching IfStatement where\n  matchedSymbols _ = [145]\n  showFailure _ node_315 =\n    \"expected \"\n      GHC.Base.<> ( \"if_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_315 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_315) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_316 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_317 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_318 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_319 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_316\n        c1_317 = TreeSitter.Node.nodeStartPoint node_315\n      TreeSitter.Node.TSPoint\n        r2_318\n        c2_319 = TreeSitter.Node.nodeEndPoint node_315\n\nderiving instance GHC.Classes.Eq a_320 => GHC.Classes.Eq (IfStatement a_320)\n\nderiving instance GHC.Classes.Ord a_321 => GHC.Classes.Ord (IfStatement a_321)\n\nderiving instance GHC.Show.Show a_322 => GHC.Show.Show (IfStatement a_322)\n\ninstance AST.Unmarshal.Unmarshal IfStatement\n\ninstance Data.Foldable.Foldable IfStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IfStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IfStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImplicitLengthArrayType a = ImplicitLengthArrayType\n  { ann :: a,\n    element :: (AST.Parse.Err (Type a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_323.\n      AST.Traversable1.Class.Traversable1 a_323\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImplicitLengthArrayType where\n  matchedSymbols _ = [114]\n  showFailure _ node_324 =\n    \"expected \"\n      GHC.Base.<> ( \"implicit_length_array_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_324 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_324) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_325 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_326 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_327 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_328 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_325\n        c1_326 = TreeSitter.Node.nodeStartPoint node_324\n      TreeSitter.Node.TSPoint\n        r2_327\n        c2_328 = TreeSitter.Node.nodeEndPoint node_324\n\nderiving instance GHC.Classes.Eq a_329 => GHC.Classes.Eq (ImplicitLengthArrayType a_329)\n\nderiving instance GHC.Classes.Ord a_330 => GHC.Classes.Ord (ImplicitLengthArrayType a_330)\n\nderiving instance GHC.Show.Show a_331 => GHC.Show.Show (ImplicitLengthArrayType a_331)\n\ninstance AST.Unmarshal.Unmarshal ImplicitLengthArrayType\n\ninstance Data.Foldable.Foldable ImplicitLengthArrayType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImplicitLengthArrayType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImplicitLengthArrayType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImportDeclaration a = ImportDeclaration\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((ImportSpec GHC.Generics.:+: ImportSpecList) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_332.\n      AST.Traversable1.Class.Traversable1 a_332\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImportDeclaration where\n  matchedSymbols _ = [92]\n  showFailure _ node_333 =\n    \"expected \"\n      GHC.Base.<> ( \"import_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_333 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_333) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_334 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_335 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_336 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_337 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_334\n        c1_335 = TreeSitter.Node.nodeStartPoint node_333\n      TreeSitter.Node.TSPoint\n        r2_336\n        c2_337 = TreeSitter.Node.nodeEndPoint node_333\n\nderiving instance GHC.Classes.Eq a_338 => GHC.Classes.Eq (ImportDeclaration a_338)\n\nderiving instance GHC.Classes.Ord a_339 => GHC.Classes.Ord (ImportDeclaration a_339)\n\nderiving instance GHC.Show.Show a_340 => GHC.Show.Show (ImportDeclaration a_340)\n\ninstance AST.Unmarshal.Unmarshal ImportDeclaration\n\ninstance Data.Foldable.Foldable ImportDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImportDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImportDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImportSpec a = ImportSpec\n  { ann :: a,\n    path :: (AST.Parse.Err ((InterpretedStringLiteral GHC.Generics.:+: RawStringLiteral) a)),\n    name :: (GHC.Maybe.Maybe (AST.Parse.Err ((BlankIdentifier GHC.Generics.:+: Dot GHC.Generics.:+: PackageIdentifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_341.\n      AST.Traversable1.Class.Traversable1 a_341\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImportSpec where\n  matchedSymbols _ = [93]\n  showFailure _ node_342 =\n    \"expected \"\n      GHC.Base.<> ( \"import_spec\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_342 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_342) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_343 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_344 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_345 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_346 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_343\n        c1_344 = TreeSitter.Node.nodeStartPoint node_342\n      TreeSitter.Node.TSPoint\n        r2_345\n        c2_346 = TreeSitter.Node.nodeEndPoint node_342\n\nderiving instance GHC.Classes.Eq a_347 => GHC.Classes.Eq (ImportSpec a_347)\n\nderiving instance GHC.Classes.Ord a_348 => GHC.Classes.Ord (ImportSpec a_348)\n\nderiving instance GHC.Show.Show a_349 => GHC.Show.Show (ImportSpec a_349)\n\ninstance AST.Unmarshal.Unmarshal ImportSpec\n\ninstance Data.Foldable.Foldable ImportSpec where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImportSpec where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImportSpec where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImportSpecList a = ImportSpecList\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (ImportSpec a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_350.\n      AST.Traversable1.Class.Traversable1 a_350\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImportSpecList where\n  matchedSymbols _ = [95]\n  showFailure _ node_351 =\n    \"expected \"\n      GHC.Base.<> ( \"import_spec_list\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_351 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_351) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_352 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_353 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_354 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_355 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_352\n        c1_353 = TreeSitter.Node.nodeStartPoint node_351\n      TreeSitter.Node.TSPoint\n        r2_354\n        c2_355 = TreeSitter.Node.nodeEndPoint node_351\n\nderiving instance GHC.Classes.Eq a_356 => GHC.Classes.Eq (ImportSpecList a_356)\n\nderiving instance GHC.Classes.Ord a_357 => GHC.Classes.Ord (ImportSpecList a_357)\n\nderiving instance GHC.Show.Show a_358 => GHC.Show.Show (ImportSpecList a_358)\n\ninstance AST.Unmarshal.Unmarshal ImportSpecList\n\ninstance Data.Foldable.Foldable ImportSpecList where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImportSpecList where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImportSpecList where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IncStatement a = IncStatement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_359.\n      AST.Traversable1.Class.Traversable1 a_359\n    )\n\ninstance AST.Unmarshal.SymbolMatching IncStatement where\n  matchedSymbols _ = [132]\n  showFailure _ node_360 =\n    \"expected \"\n      GHC.Base.<> ( \"inc_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_360 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_360) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_361 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_362 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_363 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_364 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_361\n        c1_362 = TreeSitter.Node.nodeStartPoint node_360\n      TreeSitter.Node.TSPoint\n        r2_363\n        c2_364 = TreeSitter.Node.nodeEndPoint node_360\n\nderiving instance GHC.Classes.Eq a_365 => GHC.Classes.Eq (IncStatement a_365)\n\nderiving instance GHC.Classes.Ord a_366 => GHC.Classes.Ord (IncStatement a_366)\n\nderiving instance GHC.Show.Show a_367 => GHC.Show.Show (IncStatement a_367)\n\ninstance AST.Unmarshal.Unmarshal IncStatement\n\ninstance Data.Foldable.Foldable IncStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IncStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IncStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IndexExpression a = IndexExpression\n  { ann :: a,\n    operand :: (AST.Parse.Err (Expression a)),\n    index :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_368.\n      AST.Traversable1.Class.Traversable1 a_368\n    )\n\ninstance AST.Unmarshal.SymbolMatching IndexExpression where\n  matchedSymbols _ = [164]\n  showFailure _ node_369 =\n    \"expected \"\n      GHC.Base.<> ( \"index_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_369 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_369) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_370 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_371 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_372 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_373 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_370\n        c1_371 = TreeSitter.Node.nodeStartPoint node_369\n      TreeSitter.Node.TSPoint\n        r2_372\n        c2_373 = TreeSitter.Node.nodeEndPoint node_369\n\nderiving instance GHC.Classes.Eq a_374 => GHC.Classes.Eq (IndexExpression a_374)\n\nderiving instance GHC.Classes.Ord a_375 => GHC.Classes.Ord (IndexExpression a_375)\n\nderiving instance GHC.Show.Show a_376 => GHC.Show.Show (IndexExpression a_376)\n\ninstance AST.Unmarshal.Unmarshal IndexExpression\n\ninstance Data.Foldable.Foldable IndexExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IndexExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IndexExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata InterfaceType a = InterfaceType\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (MethodSpecList a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_377.\n      AST.Traversable1.Class.Traversable1 a_377\n    )\n\ninstance AST.Unmarshal.SymbolMatching InterfaceType where\n  matchedSymbols _ = [119]\n  showFailure _ node_378 =\n    \"expected \"\n      GHC.Base.<> ( \"interface_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_378 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_378) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_379 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_380 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_381 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_382 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_379\n        c1_380 = TreeSitter.Node.nodeStartPoint node_378\n      TreeSitter.Node.TSPoint\n        r2_381\n        c2_382 = TreeSitter.Node.nodeEndPoint node_378\n\nderiving instance GHC.Classes.Eq a_383 => GHC.Classes.Eq (InterfaceType a_383)\n\nderiving instance GHC.Classes.Ord a_384 => GHC.Classes.Ord (InterfaceType a_384)\n\nderiving instance GHC.Show.Show a_385 => GHC.Show.Show (InterfaceType a_385)\n\ninstance AST.Unmarshal.Unmarshal InterfaceType\n\ninstance Data.Foldable.Foldable InterfaceType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor InterfaceType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable InterfaceType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata InterpretedStringLiteral a = InterpretedStringLiteral\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (EscapeSequence a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_386.\n      AST.Traversable1.Class.Traversable1 a_386\n    )\n\ninstance AST.Unmarshal.SymbolMatching InterpretedStringLiteral where\n  matchedSymbols _ = [176]\n  showFailure _ node_387 =\n    \"expected \"\n      GHC.Base.<> ( \"interpreted_string_literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_387 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_387) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_388 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_389 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_390 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_391 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_388\n        c1_389 = TreeSitter.Node.nodeStartPoint node_387\n      TreeSitter.Node.TSPoint\n        r2_390\n        c2_391 = TreeSitter.Node.nodeEndPoint node_387\n\nderiving instance GHC.Classes.Eq a_392 => GHC.Classes.Eq (InterpretedStringLiteral a_392)\n\nderiving instance GHC.Classes.Ord a_393 => GHC.Classes.Ord (InterpretedStringLiteral a_393)\n\nderiving instance GHC.Show.Show a_394 => GHC.Show.Show (InterpretedStringLiteral a_394)\n\ninstance AST.Unmarshal.Unmarshal InterpretedStringLiteral\n\ninstance Data.Foldable.Foldable InterpretedStringLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor InterpretedStringLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable InterpretedStringLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata KeyedElement a = KeyedElement\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: FieldIdentifier GHC.Generics.:+: LiteralValue) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_395.\n      AST.Traversable1.Class.Traversable1 a_395\n    )\n\ninstance AST.Unmarshal.SymbolMatching KeyedElement where\n  matchedSymbols _ = [170]\n  showFailure _ node_396 =\n    \"expected \"\n      GHC.Base.<> ( \"keyed_element\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_396 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_396) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_397 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_398 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_399 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_400 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_397\n        c1_398 = TreeSitter.Node.nodeStartPoint node_396\n      TreeSitter.Node.TSPoint\n        r2_399\n        c2_400 = TreeSitter.Node.nodeEndPoint node_396\n\nderiving instance GHC.Classes.Eq a_401 => GHC.Classes.Eq (KeyedElement a_401)\n\nderiving instance GHC.Classes.Ord a_402 => GHC.Classes.Ord (KeyedElement a_402)\n\nderiving instance GHC.Show.Show a_403 => GHC.Show.Show (KeyedElement a_403)\n\ninstance AST.Unmarshal.Unmarshal KeyedElement\n\ninstance Data.Foldable.Foldable KeyedElement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor KeyedElement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable KeyedElement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata LabeledStatement a = LabeledStatement\n  { ann :: a,\n    label :: (AST.Parse.Err (LabelName a)),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Statement a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_404.\n      AST.Traversable1.Class.Traversable1 a_404\n    )\n\ninstance AST.Unmarshal.SymbolMatching LabeledStatement where\n  matchedSymbols _ = [136, 137]\n  showFailure _ node_405 =\n    \"expected \"\n      GHC.Base.<> ( \"labeled_statement, labeled_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_405 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_405) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_406 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_407 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_408 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_409 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_406\n        c1_407 = TreeSitter.Node.nodeStartPoint node_405\n      TreeSitter.Node.TSPoint\n        r2_408\n        c2_409 = TreeSitter.Node.nodeEndPoint node_405\n\nderiving instance GHC.Classes.Eq a_410 => GHC.Classes.Eq (LabeledStatement a_410)\n\nderiving instance GHC.Classes.Ord a_411 => GHC.Classes.Ord (LabeledStatement a_411)\n\nderiving instance GHC.Show.Show a_412 => GHC.Show.Show (LabeledStatement a_412)\n\ninstance AST.Unmarshal.Unmarshal LabeledStatement\n\ninstance Data.Foldable.Foldable LabeledStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor LabeledStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable LabeledStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata LiteralValue a = LiteralValue\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Element GHC.Generics.:+: KeyedElement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_413.\n      AST.Traversable1.Class.Traversable1 a_413\n    )\n\ninstance AST.Unmarshal.SymbolMatching LiteralValue where\n  matchedSymbols _ = [169]\n  showFailure _ node_414 =\n    \"expected \"\n      GHC.Base.<> ( \"literal_value\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_414 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_414) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_415 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_416 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_417 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_418 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_415\n        c1_416 = TreeSitter.Node.nodeStartPoint node_414\n      TreeSitter.Node.TSPoint\n        r2_417\n        c2_418 = TreeSitter.Node.nodeEndPoint node_414\n\nderiving instance GHC.Classes.Eq a_419 => GHC.Classes.Eq (LiteralValue a_419)\n\nderiving instance GHC.Classes.Ord a_420 => GHC.Classes.Ord (LiteralValue a_420)\n\nderiving instance GHC.Show.Show a_421 => GHC.Show.Show (LiteralValue a_421)\n\ninstance AST.Unmarshal.Unmarshal LiteralValue\n\ninstance Data.Foldable.Foldable LiteralValue where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor LiteralValue where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable LiteralValue where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MapType a = MapType\n  { ann :: a,\n    value :: (AST.Parse.Err (Type a)),\n    key :: (AST.Parse.Err (Type a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_422.\n      AST.Traversable1.Class.Traversable1 a_422\n    )\n\ninstance AST.Unmarshal.SymbolMatching MapType where\n  matchedSymbols _ = [122]\n  showFailure _ node_423 =\n    \"expected \"\n      GHC.Base.<> ( \"map_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_423 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_423) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_424 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_425 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_426 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_427 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_424\n        c1_425 = TreeSitter.Node.nodeStartPoint node_423\n      TreeSitter.Node.TSPoint\n        r2_426\n        c2_427 = TreeSitter.Node.nodeEndPoint node_423\n\nderiving instance GHC.Classes.Eq a_428 => GHC.Classes.Eq (MapType a_428)\n\nderiving instance GHC.Classes.Ord a_429 => GHC.Classes.Ord (MapType a_429)\n\nderiving instance GHC.Show.Show a_430 => GHC.Show.Show (MapType a_430)\n\ninstance AST.Unmarshal.Unmarshal MapType\n\ninstance Data.Foldable.Foldable MapType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MapType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MapType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MethodDeclaration a = MethodDeclaration\n  { ann :: a,\n    body :: (GHC.Maybe.Maybe (AST.Parse.Err (Block a))),\n    result :: (GHC.Maybe.Maybe (AST.Parse.Err ((SimpleType GHC.Generics.:+: ParameterList) a))),\n    receiver :: (AST.Parse.Err (ParameterList a)),\n    name :: (AST.Parse.Err (FieldIdentifier a)),\n    parameters :: (AST.Parse.Err (ParameterList a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_431.\n      AST.Traversable1.Class.Traversable1 a_431\n    )\n\ninstance AST.Unmarshal.SymbolMatching MethodDeclaration where\n  matchedSymbols _ = [102]\n  showFailure _ node_432 =\n    \"expected \"\n      GHC.Base.<> ( \"method_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_432 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_432) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_433 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_434 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_435 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_436 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_433\n        c1_434 = TreeSitter.Node.nodeStartPoint node_432\n      TreeSitter.Node.TSPoint\n        r2_435\n        c2_436 = TreeSitter.Node.nodeEndPoint node_432\n\nderiving instance GHC.Classes.Eq a_437 => GHC.Classes.Eq (MethodDeclaration a_437)\n\nderiving instance GHC.Classes.Ord a_438 => GHC.Classes.Ord (MethodDeclaration a_438)\n\nderiving instance GHC.Show.Show a_439 => GHC.Show.Show (MethodDeclaration a_439)\n\ninstance AST.Unmarshal.Unmarshal MethodDeclaration\n\ninstance Data.Foldable.Foldable MethodDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MethodDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MethodDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MethodSpec a = MethodSpec\n  { ann :: a,\n    result :: (GHC.Maybe.Maybe (AST.Parse.Err ((SimpleType GHC.Generics.:+: ParameterList) a))),\n    name :: (AST.Parse.Err (FieldIdentifier a)),\n    parameters :: (AST.Parse.Err (ParameterList a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_440.\n      AST.Traversable1.Class.Traversable1 a_440\n    )\n\ninstance AST.Unmarshal.SymbolMatching MethodSpec where\n  matchedSymbols _ = [121]\n  showFailure _ node_441 =\n    \"expected \"\n      GHC.Base.<> ( \"method_spec\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_441 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_441) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_442 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_443 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_444 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_445 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_442\n        c1_443 = TreeSitter.Node.nodeStartPoint node_441\n      TreeSitter.Node.TSPoint\n        r2_444\n        c2_445 = TreeSitter.Node.nodeEndPoint node_441\n\nderiving instance GHC.Classes.Eq a_446 => GHC.Classes.Eq (MethodSpec a_446)\n\nderiving instance GHC.Classes.Ord a_447 => GHC.Classes.Ord (MethodSpec a_447)\n\nderiving instance GHC.Show.Show a_448 => GHC.Show.Show (MethodSpec a_448)\n\ninstance AST.Unmarshal.Unmarshal MethodSpec\n\ninstance Data.Foldable.Foldable MethodSpec where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MethodSpec where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MethodSpec where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MethodSpecList a = MethodSpecList\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((MethodSpec GHC.Generics.:+: QualifiedType GHC.Generics.:+: TypeIdentifier) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_449.\n      AST.Traversable1.Class.Traversable1 a_449\n    )\n\ninstance AST.Unmarshal.SymbolMatching MethodSpecList where\n  matchedSymbols _ = [120]\n  showFailure _ node_450 =\n    \"expected \"\n      GHC.Base.<> ( \"method_spec_list\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_450 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_450) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_451 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_452 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_453 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_454 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_451\n        c1_452 = TreeSitter.Node.nodeStartPoint node_450\n      TreeSitter.Node.TSPoint\n        r2_453\n        c2_454 = TreeSitter.Node.nodeEndPoint node_450\n\nderiving instance GHC.Classes.Eq a_455 => GHC.Classes.Eq (MethodSpecList a_455)\n\nderiving instance GHC.Classes.Ord a_456 => GHC.Classes.Ord (MethodSpecList a_456)\n\nderiving instance GHC.Show.Show a_457 => GHC.Show.Show (MethodSpecList a_457)\n\ninstance AST.Unmarshal.Unmarshal MethodSpecList\n\ninstance Data.Foldable.Foldable MethodSpecList where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MethodSpecList where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MethodSpecList where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PackageClause a = PackageClause\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (PackageIdentifier a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_458.\n      AST.Traversable1.Class.Traversable1 a_458\n    )\n\ninstance AST.Unmarshal.SymbolMatching PackageClause where\n  matchedSymbols _ = [91]\n  showFailure _ node_459 =\n    \"expected \"\n      GHC.Base.<> ( \"package_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_459 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_459) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_460 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_461 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_462 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_463 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_460\n        c1_461 = TreeSitter.Node.nodeStartPoint node_459\n      TreeSitter.Node.TSPoint\n        r2_462\n        c2_463 = TreeSitter.Node.nodeEndPoint node_459\n\nderiving instance GHC.Classes.Eq a_464 => GHC.Classes.Eq (PackageClause a_464)\n\nderiving instance GHC.Classes.Ord a_465 => GHC.Classes.Ord (PackageClause a_465)\n\nderiving instance GHC.Show.Show a_466 => GHC.Show.Show (PackageClause a_466)\n\ninstance AST.Unmarshal.Unmarshal PackageClause\n\ninstance Data.Foldable.Foldable PackageClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PackageClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PackageClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ParameterDeclaration a = ParameterDeclaration\n  { ann :: a,\n    name :: ([AST.Parse.Err ((AnonymousComma GHC.Generics.:+: Identifier) a)]),\n    type' :: (AST.Parse.Err (Type a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_467.\n      AST.Traversable1.Class.Traversable1 a_467\n    )\n\ninstance AST.Unmarshal.SymbolMatching ParameterDeclaration where\n  matchedSymbols _ = [104]\n  showFailure _ node_468 =\n    \"expected \"\n      GHC.Base.<> ( \"parameter_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_468 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_468) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_469 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_470 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_471 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_472 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_469\n        c1_470 = TreeSitter.Node.nodeStartPoint node_468\n      TreeSitter.Node.TSPoint\n        r2_471\n        c2_472 = TreeSitter.Node.nodeEndPoint node_468\n\nderiving instance GHC.Classes.Eq a_473 => GHC.Classes.Eq (ParameterDeclaration a_473)\n\nderiving instance GHC.Classes.Ord a_474 => GHC.Classes.Ord (ParameterDeclaration a_474)\n\nderiving instance GHC.Show.Show a_475 => GHC.Show.Show (ParameterDeclaration a_475)\n\ninstance AST.Unmarshal.Unmarshal ParameterDeclaration\n\ninstance Data.Foldable.Foldable ParameterDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ParameterDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ParameterDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ParameterList a = ParameterList\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((ParameterDeclaration GHC.Generics.:+: VariadicParameterDeclaration) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_476.\n      AST.Traversable1.Class.Traversable1 a_476\n    )\n\ninstance AST.Unmarshal.SymbolMatching ParameterList where\n  matchedSymbols _ = [103]\n  showFailure _ node_477 =\n    \"expected \"\n      GHC.Base.<> ( \"parameter_list\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_477 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_477) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_478 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_479 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_480 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_481 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_478\n        c1_479 = TreeSitter.Node.nodeStartPoint node_477\n      TreeSitter.Node.TSPoint\n        r2_480\n        c2_481 = TreeSitter.Node.nodeEndPoint node_477\n\nderiving instance GHC.Classes.Eq a_482 => GHC.Classes.Eq (ParameterList a_482)\n\nderiving instance GHC.Classes.Ord a_483 => GHC.Classes.Ord (ParameterList a_483)\n\nderiving instance GHC.Show.Show a_484 => GHC.Show.Show (ParameterList a_484)\n\ninstance AST.Unmarshal.Unmarshal ParameterList\n\ninstance Data.Foldable.Foldable ParameterList where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ParameterList where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ParameterList where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ParenthesizedExpression a = ParenthesizedExpression\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_485.\n      AST.Traversable1.Class.Traversable1 a_485\n    )\n\ninstance AST.Unmarshal.SymbolMatching ParenthesizedExpression where\n  matchedSymbols _ = [158]\n  showFailure _ node_486 =\n    \"expected \"\n      GHC.Base.<> ( \"parenthesized_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_486 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_486) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_487 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_488 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_489 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_490 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_487\n        c1_488 = TreeSitter.Node.nodeStartPoint node_486\n      TreeSitter.Node.TSPoint\n        r2_489\n        c2_490 = TreeSitter.Node.nodeEndPoint node_486\n\nderiving instance GHC.Classes.Eq a_491 => GHC.Classes.Eq (ParenthesizedExpression a_491)\n\nderiving instance GHC.Classes.Ord a_492 => GHC.Classes.Ord (ParenthesizedExpression a_492)\n\nderiving instance GHC.Show.Show a_493 => GHC.Show.Show (ParenthesizedExpression a_493)\n\ninstance AST.Unmarshal.Unmarshal ParenthesizedExpression\n\ninstance Data.Foldable.Foldable ParenthesizedExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ParenthesizedExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ParenthesizedExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ParenthesizedType a = ParenthesizedType\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Type a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_494.\n      AST.Traversable1.Class.Traversable1 a_494\n    )\n\ninstance AST.Unmarshal.SymbolMatching ParenthesizedType where\n  matchedSymbols _ = [110]\n  showFailure _ node_495 =\n    \"expected \"\n      GHC.Base.<> ( \"parenthesized_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_495 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_495) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_496 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_497 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_498 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_499 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_496\n        c1_497 = TreeSitter.Node.nodeStartPoint node_495\n      TreeSitter.Node.TSPoint\n        r2_498\n        c2_499 = TreeSitter.Node.nodeEndPoint node_495\n\nderiving instance GHC.Classes.Eq a_500 => GHC.Classes.Eq (ParenthesizedType a_500)\n\nderiving instance GHC.Classes.Ord a_501 => GHC.Classes.Ord (ParenthesizedType a_501)\n\nderiving instance GHC.Show.Show a_502 => GHC.Show.Show (ParenthesizedType a_502)\n\ninstance AST.Unmarshal.Unmarshal ParenthesizedType\n\ninstance Data.Foldable.Foldable ParenthesizedType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ParenthesizedType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ParenthesizedType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PointerType a = PointerType {ann :: a, extraChildren :: (AST.Parse.Err (Type a))}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_503.\n      AST.Traversable1.Class.Traversable1 a_503\n    )\n\ninstance AST.Unmarshal.SymbolMatching PointerType where\n  matchedSymbols _ = [112]\n  showFailure _ node_504 =\n    \"expected \"\n      GHC.Base.<> ( \"pointer_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_504 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_504) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_505 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_506 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_507 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_508 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_505\n        c1_506 = TreeSitter.Node.nodeStartPoint node_504\n      TreeSitter.Node.TSPoint\n        r2_507\n        c2_508 = TreeSitter.Node.nodeEndPoint node_504\n\nderiving instance GHC.Classes.Eq a_509 => GHC.Classes.Eq (PointerType a_509)\n\nderiving instance GHC.Classes.Ord a_510 => GHC.Classes.Ord (PointerType a_510)\n\nderiving instance GHC.Show.Show a_511 => GHC.Show.Show (PointerType a_511)\n\ninstance AST.Unmarshal.Unmarshal PointerType\n\ninstance Data.Foldable.Foldable PointerType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PointerType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PointerType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata QualifiedType a = QualifiedType\n  { ann :: a,\n    name :: (AST.Parse.Err (TypeIdentifier a)),\n    package :: (AST.Parse.Err (PackageIdentifier a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_512.\n      AST.Traversable1.Class.Traversable1 a_512\n    )\n\ninstance AST.Unmarshal.SymbolMatching QualifiedType where\n  matchedSymbols _ = [175]\n  showFailure _ node_513 =\n    \"expected \"\n      GHC.Base.<> ( \"qualified_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_513 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_513) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_514 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_515 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_516 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_517 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_514\n        c1_515 = TreeSitter.Node.nodeStartPoint node_513\n      TreeSitter.Node.TSPoint\n        r2_516\n        c2_517 = TreeSitter.Node.nodeEndPoint node_513\n\nderiving instance GHC.Classes.Eq a_518 => GHC.Classes.Eq (QualifiedType a_518)\n\nderiving instance GHC.Classes.Ord a_519 => GHC.Classes.Ord (QualifiedType a_519)\n\nderiving instance GHC.Show.Show a_520 => GHC.Show.Show (QualifiedType a_520)\n\ninstance AST.Unmarshal.Unmarshal QualifiedType\n\ninstance Data.Foldable.Foldable QualifiedType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor QualifiedType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable QualifiedType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata RangeClause a = RangeClause\n  { ann :: a,\n    left :: (GHC.Maybe.Maybe (AST.Parse.Err (ExpressionList a))),\n    right :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_521.\n      AST.Traversable1.Class.Traversable1 a_521\n    )\n\ninstance AST.Unmarshal.SymbolMatching RangeClause where\n  matchedSymbols _ = [148]\n  showFailure _ node_522 =\n    \"expected \"\n      GHC.Base.<> ( \"range_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_522 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_522) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_523 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_524 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_525 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_526 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_523\n        c1_524 = TreeSitter.Node.nodeStartPoint node_522\n      TreeSitter.Node.TSPoint\n        r2_525\n        c2_526 = TreeSitter.Node.nodeEndPoint node_522\n\nderiving instance GHC.Classes.Eq a_527 => GHC.Classes.Eq (RangeClause a_527)\n\nderiving instance GHC.Classes.Ord a_528 => GHC.Classes.Ord (RangeClause a_528)\n\nderiving instance GHC.Show.Show a_529 => GHC.Show.Show (RangeClause a_529)\n\ninstance AST.Unmarshal.Unmarshal RangeClause\n\ninstance Data.Foldable.Foldable RangeClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RangeClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RangeClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ReceiveStatement a = ReceiveStatement\n  { ann :: a,\n    left :: (GHC.Maybe.Maybe (AST.Parse.Err (ExpressionList a))),\n    right :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_530.\n      AST.Traversable1.Class.Traversable1 a_530\n    )\n\ninstance AST.Unmarshal.SymbolMatching ReceiveStatement where\n  matchedSymbols _ = [131]\n  showFailure _ node_531 =\n    \"expected \"\n      GHC.Base.<> ( \"receive_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_531 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_531) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_532 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_533 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_534 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_535 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_532\n        c1_533 = TreeSitter.Node.nodeStartPoint node_531\n      TreeSitter.Node.TSPoint\n        r2_534\n        c2_535 = TreeSitter.Node.nodeEndPoint node_531\n\nderiving instance GHC.Classes.Eq a_536 => GHC.Classes.Eq (ReceiveStatement a_536)\n\nderiving instance GHC.Classes.Ord a_537 => GHC.Classes.Ord (ReceiveStatement a_537)\n\nderiving instance GHC.Show.Show a_538 => GHC.Show.Show (ReceiveStatement a_538)\n\ninstance AST.Unmarshal.Unmarshal ReceiveStatement\n\ninstance Data.Foldable.Foldable ReceiveStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ReceiveStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ReceiveStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ReturnStatement a = ReturnStatement\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ExpressionList a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_539.\n      AST.Traversable1.Class.Traversable1 a_539\n    )\n\ninstance AST.Unmarshal.SymbolMatching ReturnStatement where\n  matchedSymbols _ = [142]\n  showFailure _ node_540 =\n    \"expected \"\n      GHC.Base.<> ( \"return_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_540 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_540) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_541 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_542 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_543 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_544 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_541\n        c1_542 = TreeSitter.Node.nodeStartPoint node_540\n      TreeSitter.Node.TSPoint\n        r2_543\n        c2_544 = TreeSitter.Node.nodeEndPoint node_540\n\nderiving instance GHC.Classes.Eq a_545 => GHC.Classes.Eq (ReturnStatement a_545)\n\nderiving instance GHC.Classes.Ord a_546 => GHC.Classes.Ord (ReturnStatement a_546)\n\nderiving instance GHC.Show.Show a_547 => GHC.Show.Show (ReturnStatement a_547)\n\ninstance AST.Unmarshal.Unmarshal ReturnStatement\n\ninstance Data.Foldable.Foldable ReturnStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ReturnStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ReturnStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SelectStatement a = SelectStatement\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((CommunicationCase GHC.Generics.:+: DefaultCase) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_548.\n      AST.Traversable1.Class.Traversable1 a_548\n    )\n\ninstance AST.Unmarshal.SymbolMatching SelectStatement where\n  matchedSymbols _ = [155]\n  showFailure _ node_549 =\n    \"expected \"\n      GHC.Base.<> ( \"select_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_549 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_549) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_550 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_551 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_552 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_553 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_550\n        c1_551 = TreeSitter.Node.nodeStartPoint node_549\n      TreeSitter.Node.TSPoint\n        r2_552\n        c2_553 = TreeSitter.Node.nodeEndPoint node_549\n\nderiving instance GHC.Classes.Eq a_554 => GHC.Classes.Eq (SelectStatement a_554)\n\nderiving instance GHC.Classes.Ord a_555 => GHC.Classes.Ord (SelectStatement a_555)\n\nderiving instance GHC.Show.Show a_556 => GHC.Show.Show (SelectStatement a_556)\n\ninstance AST.Unmarshal.Unmarshal SelectStatement\n\ninstance Data.Foldable.Foldable SelectStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SelectStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SelectStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SelectorExpression a = SelectorExpression\n  { ann :: a,\n    field :: (AST.Parse.Err (FieldIdentifier a)),\n    operand :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_557.\n      AST.Traversable1.Class.Traversable1 a_557\n    )\n\ninstance AST.Unmarshal.SymbolMatching SelectorExpression where\n  matchedSymbols _ = [163]\n  showFailure _ node_558 =\n    \"expected \"\n      GHC.Base.<> ( \"selector_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_558 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_558) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_559 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_560 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_561 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_562 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_559\n        c1_560 = TreeSitter.Node.nodeStartPoint node_558\n      TreeSitter.Node.TSPoint\n        r2_561\n        c2_562 = TreeSitter.Node.nodeEndPoint node_558\n\nderiving instance GHC.Classes.Eq a_563 => GHC.Classes.Eq (SelectorExpression a_563)\n\nderiving instance GHC.Classes.Ord a_564 => GHC.Classes.Ord (SelectorExpression a_564)\n\nderiving instance GHC.Show.Show a_565 => GHC.Show.Show (SelectorExpression a_565)\n\ninstance AST.Unmarshal.Unmarshal SelectorExpression\n\ninstance Data.Foldable.Foldable SelectorExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SelectorExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SelectorExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SendStatement a = SendStatement\n  { ann :: a,\n    value :: (AST.Parse.Err (Expression a)),\n    channel :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_566.\n      AST.Traversable1.Class.Traversable1 a_566\n    )\n\ninstance AST.Unmarshal.SymbolMatching SendStatement where\n  matchedSymbols _ = [130]\n  showFailure _ node_567 =\n    \"expected \"\n      GHC.Base.<> ( \"send_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_567 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_567) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_568 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_569 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_570 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_571 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_568\n        c1_569 = TreeSitter.Node.nodeStartPoint node_567\n      TreeSitter.Node.TSPoint\n        r2_570\n        c2_571 = TreeSitter.Node.nodeEndPoint node_567\n\nderiving instance GHC.Classes.Eq a_572 => GHC.Classes.Eq (SendStatement a_572)\n\nderiving instance GHC.Classes.Ord a_573 => GHC.Classes.Ord (SendStatement a_573)\n\nderiving instance GHC.Show.Show a_574 => GHC.Show.Show (SendStatement a_574)\n\ninstance AST.Unmarshal.Unmarshal SendStatement\n\ninstance Data.Foldable.Foldable SendStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SendStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SendStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ShortVarDeclaration a = ShortVarDeclaration\n  { ann :: a,\n    left :: (AST.Parse.Err (ExpressionList a)),\n    right :: (AST.Parse.Err (ExpressionList a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_575.\n      AST.Traversable1.Class.Traversable1 a_575\n    )\n\ninstance AST.Unmarshal.SymbolMatching ShortVarDeclaration where\n  matchedSymbols _ = [135]\n  showFailure _ node_576 =\n    \"expected \"\n      GHC.Base.<> ( \"short_var_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_576 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_576) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_577 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_578 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_579 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_580 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_577\n        c1_578 = TreeSitter.Node.nodeStartPoint node_576\n      TreeSitter.Node.TSPoint\n        r2_579\n        c2_580 = TreeSitter.Node.nodeEndPoint node_576\n\nderiving instance GHC.Classes.Eq a_581 => GHC.Classes.Eq (ShortVarDeclaration a_581)\n\nderiving instance GHC.Classes.Ord a_582 => GHC.Classes.Ord (ShortVarDeclaration a_582)\n\nderiving instance GHC.Show.Show a_583 => GHC.Show.Show (ShortVarDeclaration a_583)\n\ninstance AST.Unmarshal.Unmarshal ShortVarDeclaration\n\ninstance Data.Foldable.Foldable ShortVarDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ShortVarDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ShortVarDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SliceExpression a = SliceExpression\n  { ann :: a,\n    start :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    capacity :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    end :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    operand :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_584.\n      AST.Traversable1.Class.Traversable1 a_584\n    )\n\ninstance AST.Unmarshal.SymbolMatching SliceExpression where\n  matchedSymbols _ = [165]\n  showFailure _ node_585 =\n    \"expected \"\n      GHC.Base.<> ( \"slice_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_585 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_585) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_586 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_587 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_588 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_589 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_586\n        c1_587 = TreeSitter.Node.nodeStartPoint node_585\n      TreeSitter.Node.TSPoint\n        r2_588\n        c2_589 = TreeSitter.Node.nodeEndPoint node_585\n\nderiving instance GHC.Classes.Eq a_590 => GHC.Classes.Eq (SliceExpression a_590)\n\nderiving instance GHC.Classes.Ord a_591 => GHC.Classes.Ord (SliceExpression a_591)\n\nderiving instance GHC.Show.Show a_592 => GHC.Show.Show (SliceExpression a_592)\n\ninstance AST.Unmarshal.Unmarshal SliceExpression\n\ninstance Data.Foldable.Foldable SliceExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SliceExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SliceExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SliceType a = SliceType {ann :: a, element :: (AST.Parse.Err (Type a))}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_593.\n      AST.Traversable1.Class.Traversable1 a_593\n    )\n\ninstance AST.Unmarshal.SymbolMatching SliceType where\n  matchedSymbols _ = [115]\n  showFailure _ node_594 =\n    \"expected \"\n      GHC.Base.<> ( \"slice_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_594 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_594) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_595 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_596 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_597 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_598 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_595\n        c1_596 = TreeSitter.Node.nodeStartPoint node_594\n      TreeSitter.Node.TSPoint\n        r2_597\n        c2_598 = TreeSitter.Node.nodeEndPoint node_594\n\nderiving instance GHC.Classes.Eq a_599 => GHC.Classes.Eq (SliceType a_599)\n\nderiving instance GHC.Classes.Ord a_600 => GHC.Classes.Ord (SliceType a_600)\n\nderiving instance GHC.Show.Show a_601 => GHC.Show.Show (SliceType a_601)\n\ninstance AST.Unmarshal.Unmarshal SliceType\n\ninstance Data.Foldable.Foldable SliceType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SliceType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SliceType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SourceFile a = SourceFile\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((ConstDeclaration GHC.Generics.:+: FunctionDeclaration GHC.Generics.:+: ImportDeclaration GHC.Generics.:+: MethodDeclaration GHC.Generics.:+: PackageClause GHC.Generics.:+: TypeDeclaration GHC.Generics.:+: VarDeclaration) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_602.\n      AST.Traversable1.Class.Traversable1 a_602\n    )\n\ninstance AST.Unmarshal.SymbolMatching SourceFile where\n  matchedSymbols _ = [90]\n  showFailure _ node_603 =\n    \"expected \"\n      GHC.Base.<> ( \"source_file\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_603 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_603) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_604 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_605 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_606 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_607 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_604\n        c1_605 = TreeSitter.Node.nodeStartPoint node_603\n      TreeSitter.Node.TSPoint\n        r2_606\n        c2_607 = TreeSitter.Node.nodeEndPoint node_603\n\nderiving instance GHC.Classes.Eq a_608 => GHC.Classes.Eq (SourceFile a_608)\n\nderiving instance GHC.Classes.Ord a_609 => GHC.Classes.Ord (SourceFile a_609)\n\nderiving instance GHC.Show.Show a_610 => GHC.Show.Show (SourceFile a_610)\n\ninstance AST.Unmarshal.Unmarshal SourceFile\n\ninstance Data.Foldable.Foldable SourceFile where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SourceFile where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SourceFile where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata StructType a = StructType\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (FieldDeclarationList a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_611.\n      AST.Traversable1.Class.Traversable1 a_611\n    )\n\ninstance AST.Unmarshal.SymbolMatching StructType where\n  matchedSymbols _ = [116]\n  showFailure _ node_612 =\n    \"expected \"\n      GHC.Base.<> ( \"struct_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_612 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_612) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_613 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_614 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_615 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_616 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_613\n        c1_614 = TreeSitter.Node.nodeStartPoint node_612\n      TreeSitter.Node.TSPoint\n        r2_615\n        c2_616 = TreeSitter.Node.nodeEndPoint node_612\n\nderiving instance GHC.Classes.Eq a_617 => GHC.Classes.Eq (StructType a_617)\n\nderiving instance GHC.Classes.Ord a_618 => GHC.Classes.Ord (StructType a_618)\n\nderiving instance GHC.Show.Show a_619 => GHC.Show.Show (StructType a_619)\n\ninstance AST.Unmarshal.Unmarshal StructType\n\ninstance Data.Foldable.Foldable StructType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor StructType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable StructType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeAlias a = TypeAlias\n  { ann :: a,\n    name :: (AST.Parse.Err (TypeIdentifier a)),\n    type' :: (AST.Parse.Err (Type a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_620.\n      AST.Traversable1.Class.Traversable1 a_620\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeAlias where\n  matchedSymbols _ = [106]\n  showFailure _ node_621 =\n    \"expected \"\n      GHC.Base.<> ( \"type_alias\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_621 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_621) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_622 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_623 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_624 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_625 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_622\n        c1_623 = TreeSitter.Node.nodeStartPoint node_621\n      TreeSitter.Node.TSPoint\n        r2_624\n        c2_625 = TreeSitter.Node.nodeEndPoint node_621\n\nderiving instance GHC.Classes.Eq a_626 => GHC.Classes.Eq (TypeAlias a_626)\n\nderiving instance GHC.Classes.Ord a_627 => GHC.Classes.Ord (TypeAlias a_627)\n\nderiving instance GHC.Show.Show a_628 => GHC.Show.Show (TypeAlias a_628)\n\ninstance AST.Unmarshal.Unmarshal TypeAlias\n\ninstance Data.Foldable.Foldable TypeAlias where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeAlias where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeAlias where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeAssertionExpression a = TypeAssertionExpression\n  { ann :: a,\n    type' :: (AST.Parse.Err (Type a)),\n    operand :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_629.\n      AST.Traversable1.Class.Traversable1 a_629\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeAssertionExpression where\n  matchedSymbols _ = [166]\n  showFailure _ node_630 =\n    \"expected \"\n      GHC.Base.<> ( \"type_assertion_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_630 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_630) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_631 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_632 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_633 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_634 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_631\n        c1_632 = TreeSitter.Node.nodeStartPoint node_630\n      TreeSitter.Node.TSPoint\n        r2_633\n        c2_634 = TreeSitter.Node.nodeEndPoint node_630\n\nderiving instance GHC.Classes.Eq a_635 => GHC.Classes.Eq (TypeAssertionExpression a_635)\n\nderiving instance GHC.Classes.Ord a_636 => GHC.Classes.Ord (TypeAssertionExpression a_636)\n\nderiving instance GHC.Show.Show a_637 => GHC.Show.Show (TypeAssertionExpression a_637)\n\ninstance AST.Unmarshal.Unmarshal TypeAssertionExpression\n\ninstance Data.Foldable.Foldable TypeAssertionExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeAssertionExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeAssertionExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeCase a = TypeCase\n  { ann :: a,\n    type' :: (GHC.Base.NonEmpty (AST.Parse.Err ((AnonymousComma GHC.Generics.:+: Type) a))),\n    extraChildren :: ([AST.Parse.Err (Statement a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_638.\n      AST.Traversable1.Class.Traversable1 a_638\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeCase where\n  matchedSymbols _ = [154]\n  showFailure _ node_639 =\n    \"expected \"\n      GHC.Base.<> ( \"type_case\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_639 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_639) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_640 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_641 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_642 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_643 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_640\n        c1_641 = TreeSitter.Node.nodeStartPoint node_639\n      TreeSitter.Node.TSPoint\n        r2_642\n        c2_643 = TreeSitter.Node.nodeEndPoint node_639\n\nderiving instance GHC.Classes.Eq a_644 => GHC.Classes.Eq (TypeCase a_644)\n\nderiving instance GHC.Classes.Ord a_645 => GHC.Classes.Ord (TypeCase a_645)\n\nderiving instance GHC.Show.Show a_646 => GHC.Show.Show (TypeCase a_646)\n\ninstance AST.Unmarshal.Unmarshal TypeCase\n\ninstance Data.Foldable.Foldable TypeCase where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeCase where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeCase where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeConversionExpression a = TypeConversionExpression\n  { ann :: a,\n    type' :: (AST.Parse.Err (Type a)),\n    operand :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_647.\n      AST.Traversable1.Class.Traversable1 a_647\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeConversionExpression where\n  matchedSymbols _ = [167]\n  showFailure _ node_648 =\n    \"expected \"\n      GHC.Base.<> ( \"type_conversion_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_648 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_648) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_649 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_650 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_651 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_652 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_649\n        c1_650 = TreeSitter.Node.nodeStartPoint node_648\n      TreeSitter.Node.TSPoint\n        r2_651\n        c2_652 = TreeSitter.Node.nodeEndPoint node_648\n\nderiving instance GHC.Classes.Eq a_653 => GHC.Classes.Eq (TypeConversionExpression a_653)\n\nderiving instance GHC.Classes.Ord a_654 => GHC.Classes.Ord (TypeConversionExpression a_654)\n\nderiving instance GHC.Show.Show a_655 => GHC.Show.Show (TypeConversionExpression a_655)\n\ninstance AST.Unmarshal.Unmarshal TypeConversionExpression\n\ninstance Data.Foldable.Foldable TypeConversionExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeConversionExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeConversionExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeDeclaration a = TypeDeclaration\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((TypeAlias GHC.Generics.:+: TypeSpec) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_656.\n      AST.Traversable1.Class.Traversable1 a_656\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeDeclaration where\n  matchedSymbols _ = [107]\n  showFailure _ node_657 =\n    \"expected \"\n      GHC.Base.<> ( \"type_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_657 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_657) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_658 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_659 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_660 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_661 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_658\n        c1_659 = TreeSitter.Node.nodeStartPoint node_657\n      TreeSitter.Node.TSPoint\n        r2_660\n        c2_661 = TreeSitter.Node.nodeEndPoint node_657\n\nderiving instance GHC.Classes.Eq a_662 => GHC.Classes.Eq (TypeDeclaration a_662)\n\nderiving instance GHC.Classes.Ord a_663 => GHC.Classes.Ord (TypeDeclaration a_663)\n\nderiving instance GHC.Show.Show a_664 => GHC.Show.Show (TypeDeclaration a_664)\n\ninstance AST.Unmarshal.Unmarshal TypeDeclaration\n\ninstance Data.Foldable.Foldable TypeDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeSpec a = TypeSpec\n  { ann :: a,\n    name :: (AST.Parse.Err (TypeIdentifier a)),\n    type' :: (AST.Parse.Err (Type a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_665.\n      AST.Traversable1.Class.Traversable1 a_665\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeSpec where\n  matchedSymbols _ = [108]\n  showFailure _ node_666 =\n    \"expected \"\n      GHC.Base.<> ( \"type_spec\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_666 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_666) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_667 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_668 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_669 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_670 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_667\n        c1_668 = TreeSitter.Node.nodeStartPoint node_666\n      TreeSitter.Node.TSPoint\n        r2_669\n        c2_670 = TreeSitter.Node.nodeEndPoint node_666\n\nderiving instance GHC.Classes.Eq a_671 => GHC.Classes.Eq (TypeSpec a_671)\n\nderiving instance GHC.Classes.Ord a_672 => GHC.Classes.Ord (TypeSpec a_672)\n\nderiving instance GHC.Show.Show a_673 => GHC.Show.Show (TypeSpec a_673)\n\ninstance AST.Unmarshal.Unmarshal TypeSpec\n\ninstance Data.Foldable.Foldable TypeSpec where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeSpec where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeSpec where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeSwitchStatement a = TypeSwitchStatement\n  { ann :: a,\n    value :: (AST.Parse.Err (Expression a)),\n    alias :: (GHC.Maybe.Maybe (AST.Parse.Err (ExpressionList a))),\n    initializer :: (GHC.Maybe.Maybe (AST.Parse.Err (SimpleStatement a))),\n    extraChildren :: ([AST.Parse.Err ((DefaultCase GHC.Generics.:+: TypeCase) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_674.\n      AST.Traversable1.Class.Traversable1 a_674\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeSwitchStatement where\n  matchedSymbols _ = [152]\n  showFailure _ node_675 =\n    \"expected \"\n      GHC.Base.<> ( \"type_switch_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_675 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_675) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_676 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_677 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_678 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_679 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_676\n        c1_677 = TreeSitter.Node.nodeStartPoint node_675\n      TreeSitter.Node.TSPoint\n        r2_678\n        c2_679 = TreeSitter.Node.nodeEndPoint node_675\n\nderiving instance GHC.Classes.Eq a_680 => GHC.Classes.Eq (TypeSwitchStatement a_680)\n\nderiving instance GHC.Classes.Ord a_681 => GHC.Classes.Ord (TypeSwitchStatement a_681)\n\nderiving instance GHC.Show.Show a_682 => GHC.Show.Show (TypeSwitchStatement a_682)\n\ninstance AST.Unmarshal.Unmarshal TypeSwitchStatement\n\ninstance Data.Foldable.Foldable TypeSwitchStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeSwitchStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeSwitchStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UnaryExpression a = UnaryExpression\n  { ann :: a,\n    operator :: (AST.Parse.Err ((AnonymousBang GHC.Generics.:+: AnonymousAmpersand GHC.Generics.:+: AnonymousStar GHC.Generics.:+: AnonymousPlus GHC.Generics.:+: AnonymousMinus GHC.Generics.:+: AnonymousLAngleMinus GHC.Generics.:+: AnonymousCaret) a)),\n    operand :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_683.\n      AST.Traversable1.Class.Traversable1 a_683\n    )\n\ninstance AST.Unmarshal.SymbolMatching UnaryExpression where\n  matchedSymbols _ = [173]\n  showFailure _ node_684 =\n    \"expected \"\n      GHC.Base.<> ( \"unary_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_684 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_684) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_685 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_686 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_687 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_688 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_685\n        c1_686 = TreeSitter.Node.nodeStartPoint node_684\n      TreeSitter.Node.TSPoint\n        r2_687\n        c2_688 = TreeSitter.Node.nodeEndPoint node_684\n\nderiving instance GHC.Classes.Eq a_689 => GHC.Classes.Eq (UnaryExpression a_689)\n\nderiving instance GHC.Classes.Ord a_690 => GHC.Classes.Ord (UnaryExpression a_690)\n\nderiving instance GHC.Show.Show a_691 => GHC.Show.Show (UnaryExpression a_691)\n\ninstance AST.Unmarshal.Unmarshal UnaryExpression\n\ninstance Data.Foldable.Foldable UnaryExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UnaryExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UnaryExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata VarDeclaration a = VarDeclaration\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (VarSpec a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_692.\n      AST.Traversable1.Class.Traversable1 a_692\n    )\n\ninstance AST.Unmarshal.SymbolMatching VarDeclaration where\n  matchedSymbols _ = [99]\n  showFailure _ node_693 =\n    \"expected \"\n      GHC.Base.<> ( \"var_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_693 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_693) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_694 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_695 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_696 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_697 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_694\n        c1_695 = TreeSitter.Node.nodeStartPoint node_693\n      TreeSitter.Node.TSPoint\n        r2_696\n        c2_697 = TreeSitter.Node.nodeEndPoint node_693\n\nderiving instance GHC.Classes.Eq a_698 => GHC.Classes.Eq (VarDeclaration a_698)\n\nderiving instance GHC.Classes.Ord a_699 => GHC.Classes.Ord (VarDeclaration a_699)\n\nderiving instance GHC.Show.Show a_700 => GHC.Show.Show (VarDeclaration a_700)\n\ninstance AST.Unmarshal.Unmarshal VarDeclaration\n\ninstance Data.Foldable.Foldable VarDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor VarDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable VarDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata VarSpec a = VarSpec\n  { ann :: a,\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err (ExpressionList a))),\n    name :: (GHC.Base.NonEmpty (AST.Parse.Err ((AnonymousComma GHC.Generics.:+: Identifier) a))),\n    type' :: (GHC.Maybe.Maybe (AST.Parse.Err (Type a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_701.\n      AST.Traversable1.Class.Traversable1 a_701\n    )\n\ninstance AST.Unmarshal.SymbolMatching VarSpec where\n  matchedSymbols _ = [100]\n  showFailure _ node_702 =\n    \"expected \"\n      GHC.Base.<> ( \"var_spec\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_702 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_702) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_703 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_704 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_705 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_706 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_703\n        c1_704 = TreeSitter.Node.nodeStartPoint node_702\n      TreeSitter.Node.TSPoint\n        r2_705\n        c2_706 = TreeSitter.Node.nodeEndPoint node_702\n\nderiving instance GHC.Classes.Eq a_707 => GHC.Classes.Eq (VarSpec a_707)\n\nderiving instance GHC.Classes.Ord a_708 => GHC.Classes.Ord (VarSpec a_708)\n\nderiving instance GHC.Show.Show a_709 => GHC.Show.Show (VarSpec a_709)\n\ninstance AST.Unmarshal.Unmarshal VarSpec\n\ninstance Data.Foldable.Foldable VarSpec where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor VarSpec where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable VarSpec where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata VariadicArgument a = VariadicArgument\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_710.\n      AST.Traversable1.Class.Traversable1 a_710\n    )\n\ninstance AST.Unmarshal.SymbolMatching VariadicArgument where\n  matchedSymbols _ = [160]\n  showFailure _ node_711 =\n    \"expected \"\n      GHC.Base.<> ( \"variadic_argument\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_711 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_711) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_712 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_713 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_714 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_715 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_712\n        c1_713 = TreeSitter.Node.nodeStartPoint node_711\n      TreeSitter.Node.TSPoint\n        r2_714\n        c2_715 = TreeSitter.Node.nodeEndPoint node_711\n\nderiving instance GHC.Classes.Eq a_716 => GHC.Classes.Eq (VariadicArgument a_716)\n\nderiving instance GHC.Classes.Ord a_717 => GHC.Classes.Ord (VariadicArgument a_717)\n\nderiving instance GHC.Show.Show a_718 => GHC.Show.Show (VariadicArgument a_718)\n\ninstance AST.Unmarshal.Unmarshal VariadicArgument\n\ninstance Data.Foldable.Foldable VariadicArgument where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor VariadicArgument where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable VariadicArgument where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata VariadicParameterDeclaration a = VariadicParameterDeclaration\n  { ann :: a,\n    name :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))),\n    type' :: (AST.Parse.Err (Type a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_719.\n      AST.Traversable1.Class.Traversable1 a_719\n    )\n\ninstance AST.Unmarshal.SymbolMatching VariadicParameterDeclaration where\n  matchedSymbols _ = [105]\n  showFailure _ node_720 =\n    \"expected \"\n      GHC.Base.<> ( \"variadic_parameter_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_720 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_720) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_721 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_722 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_723 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_724 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_721\n        c1_722 = TreeSitter.Node.nodeStartPoint node_720\n      TreeSitter.Node.TSPoint\n        r2_723\n        c2_724 = TreeSitter.Node.nodeEndPoint node_720\n\nderiving instance GHC.Classes.Eq a_725 => GHC.Classes.Eq (VariadicParameterDeclaration a_725)\n\nderiving instance GHC.Classes.Ord a_726 => GHC.Classes.Ord (VariadicParameterDeclaration a_726)\n\nderiving instance GHC.Show.Show a_727 => GHC.Show.Show (VariadicParameterDeclaration a_727)\n\ninstance AST.Unmarshal.Unmarshal VariadicParameterDeclaration\n\ninstance Data.Foldable.Foldable VariadicParameterDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor VariadicParameterDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable VariadicParameterDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousLF = AST.Token.Token \"\\n\" 2\n\ntype AnonymousBang = AST.Token.Token \"!\" 61\n\ntype AnonymousBangEqual = AST.Token.Token \"!=\" 71\n\ntype AnonymousDQuote = AST.Token.Token \"\\\"\" 79\n\ntype AnonymousPercent = AST.Token.Token \"%\" 65\n\ntype AnonymousPercentEqual = AST.Token.Token \"%=\" 32\n\ntype AnonymousAmpersand = AST.Token.Token \"&\" 63\n\ntype AnonymousAmpersandAmpersand = AST.Token.Token \"&&\" 76\n\ntype AnonymousAmpersandEqual = AST.Token.Token \"&=\" 35\n\ntype AnonymousAmpersandCaret = AST.Token.Token \"&^\" 68\n\ntype AnonymousAmpersandCaretEqual = AST.Token.Token \"&^=\" 36\n\ntype AnonymousLParen = AST.Token.Token \"(\" 8\n\ntype AnonymousRParen = AST.Token.Token \")\" 9\n\ntype AnonymousStar = AST.Token.Token \"*\" 17\n\ntype AnonymousStarEqual = AST.Token.Token \"*=\" 30\n\ntype AnonymousPlus = AST.Token.Token \"+\" 59\n\ntype AnonymousPlusPlus = AST.Token.Token \"++\" 28\n\ntype AnonymousPlusEqual = AST.Token.Token \"+=\" 37\n\ntype AnonymousComma = AST.Token.Token \",\" 11\n\ntype AnonymousMinus = AST.Token.Token \"-\" 60\n\ntype AnonymousMinusMinus = AST.Token.Token \"--\" 29\n\ntype AnonymousMinusEqual = AST.Token.Token \"-=\" 38\n\ntype AnonymousDot = AST.Token.Token \".\" 6\n\ntype AnonymousDotDotDot = AST.Token.Token \"...\" 15\n\ntype AnonymousSlash = AST.Token.Token \"/\" 64\n\ntype AnonymousSlashEqual = AST.Token.Token \"/=\" 31\n\ntype AnonymousColon = AST.Token.Token \":\" 41\n\ntype AnonymousColonEqual = AST.Token.Token \":=\" 27\n\ntype AnonymousSemicolon = AST.Token.Token \";\" 3\n\ntype AnonymousLAngle = AST.Token.Token \"<\" 72\n\ntype AnonymousLAngleMinus = AST.Token.Token \"<-\" 26\n\ntype AnonymousLAngleLAngle = AST.Token.Token \"<<\" 66\n\ntype AnonymousLAngleLAngleEqual = AST.Token.Token \"<<=\" 33\n\ntype AnonymousLAngleEqual = AST.Token.Token \"<=\" 73\n\ntype AnonymousEqual = AST.Token.Token \"=\" 12\n\ntype AnonymousEqualEqual = AST.Token.Token \"==\" 70\n\ntype AnonymousRAngle = AST.Token.Token \">\" 74\n\ntype AnonymousRAngleEqual = AST.Token.Token \">=\" 75\n\ntype AnonymousRAngleRAngle = AST.Token.Token \">>\" 67\n\ntype AnonymousRAngleRAngleEqual = AST.Token.Token \">>=\" 34\n\ntype AnonymousLBracket = AST.Token.Token \"[\" 18\n\ntype AnonymousRBracket = AST.Token.Token \"]\" 19\n\ntype AnonymousCaret = AST.Token.Token \"^\" 62\n\ntype AnonymousCaretEqual = AST.Token.Token \"^=\" 40\n\ndata BlankIdentifier a = BlankIdentifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_728.\n      AST.Traversable1.Class.Traversable1 a_728\n    )\n\ninstance AST.Unmarshal.SymbolMatching BlankIdentifier where\n  matchedSymbols _ = [7]\n  showFailure _ node_729 =\n    \"expected \"\n      GHC.Base.<> ( \"blank_identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_729 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_729) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_730 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_731 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_732 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_733 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_730\n        c1_731 = TreeSitter.Node.nodeStartPoint node_729\n      TreeSitter.Node.TSPoint\n        r2_732\n        c2_733 = TreeSitter.Node.nodeEndPoint node_729\n\nderiving instance GHC.Classes.Eq a_734 => GHC.Classes.Eq (BlankIdentifier a_734)\n\nderiving instance GHC.Classes.Ord a_735 => GHC.Classes.Ord (BlankIdentifier a_735)\n\nderiving instance GHC.Show.Show a_736 => GHC.Show.Show (BlankIdentifier a_736)\n\ninstance AST.Unmarshal.Unmarshal BlankIdentifier\n\ninstance Data.Foldable.Foldable BlankIdentifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BlankIdentifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BlankIdentifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousBreak = AST.Token.Token \"break\" 43\n\ntype AnonymousCase = AST.Token.Token \"case\" 54\n\ntype AnonymousChan = AST.Token.Token \"chan\" 25\n\ntype AnonymousConst = AST.Token.Token \"const\" 10\n\ntype AnonymousContinue = AST.Token.Token \"continue\" 44\n\ntype AnonymousDefault = AST.Token.Token \"default\" 55\n\ntype AnonymousDefer = AST.Token.Token \"defer\" 48\n\ntype AnonymousElse = AST.Token.Token \"else\" 50\n\ndata EscapeSequence a = EscapeSequence {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_737.\n      AST.Traversable1.Class.Traversable1 a_737\n    )\n\ninstance AST.Unmarshal.SymbolMatching EscapeSequence where\n  matchedSymbols _ = [81]\n  showFailure _ node_738 =\n    \"expected \"\n      GHC.Base.<> ( \"escape_sequence\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_738 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_738) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_739 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_740 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_741 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_742 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_739\n        c1_740 = TreeSitter.Node.nodeStartPoint node_738\n      TreeSitter.Node.TSPoint\n        r2_741\n        c2_742 = TreeSitter.Node.nodeEndPoint node_738\n\nderiving instance GHC.Classes.Eq a_743 => GHC.Classes.Eq (EscapeSequence a_743)\n\nderiving instance GHC.Classes.Ord a_744 => GHC.Classes.Ord (EscapeSequence a_744)\n\nderiving instance GHC.Show.Show a_745 => GHC.Show.Show (EscapeSequence a_745)\n\ninstance AST.Unmarshal.Unmarshal EscapeSequence\n\ninstance Data.Foldable.Foldable EscapeSequence where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EscapeSequence where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EscapeSequence where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousFallthrough = AST.Token.Token \"fallthrough\" 42\n\ndata False a = False {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_746.\n      AST.Traversable1.Class.Traversable1 a_746\n    )\n\ninstance AST.Unmarshal.SymbolMatching False where\n  matchedSymbols _ = [88]\n  showFailure _ node_747 =\n    \"expected \"\n      GHC.Base.<> ( \"false\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_747 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_747) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_748 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_749 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_750 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_751 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_748\n        c1_749 = TreeSitter.Node.nodeStartPoint node_747\n      TreeSitter.Node.TSPoint\n        r2_750\n        c2_751 = TreeSitter.Node.nodeEndPoint node_747\n\nderiving instance GHC.Classes.Eq a_752 => GHC.Classes.Eq (False a_752)\n\nderiving instance GHC.Classes.Ord a_753 => GHC.Classes.Ord (False a_753)\n\nderiving instance GHC.Show.Show a_754 => GHC.Show.Show (False a_754)\n\ninstance AST.Unmarshal.Unmarshal False\n\ninstance Data.Foldable.Foldable False where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor False where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable False where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FieldIdentifier a = FieldIdentifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_755.\n      AST.Traversable1.Class.Traversable1 a_755\n    )\n\ninstance AST.Unmarshal.SymbolMatching FieldIdentifier where\n  matchedSymbols _ = [196]\n  showFailure _ node_756 =\n    \"expected \"\n      GHC.Base.<> ( \"field_identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_756 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_756) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_757 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_758 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_759 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_760 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_757\n        c1_758 = TreeSitter.Node.nodeStartPoint node_756\n      TreeSitter.Node.TSPoint\n        r2_759\n        c2_760 = TreeSitter.Node.nodeEndPoint node_756\n\nderiving instance GHC.Classes.Eq a_761 => GHC.Classes.Eq (FieldIdentifier a_761)\n\nderiving instance GHC.Classes.Ord a_762 => GHC.Classes.Ord (FieldIdentifier a_762)\n\nderiving instance GHC.Show.Show a_763 => GHC.Show.Show (FieldIdentifier a_763)\n\ninstance AST.Unmarshal.Unmarshal FieldIdentifier\n\ninstance Data.Foldable.Foldable FieldIdentifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FieldIdentifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FieldIdentifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FloatLiteral a = FloatLiteral {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_764.\n      AST.Traversable1.Class.Traversable1 a_764\n    )\n\ninstance AST.Unmarshal.SymbolMatching FloatLiteral where\n  matchedSymbols _ = [83]\n  showFailure _ node_765 =\n    \"expected \"\n      GHC.Base.<> ( \"float_literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_765 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_765) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_766 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_767 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_768 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_769 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_766\n        c1_767 = TreeSitter.Node.nodeStartPoint node_765\n      TreeSitter.Node.TSPoint\n        r2_768\n        c2_769 = TreeSitter.Node.nodeEndPoint node_765\n\nderiving instance GHC.Classes.Eq a_770 => GHC.Classes.Eq (FloatLiteral a_770)\n\nderiving instance GHC.Classes.Ord a_771 => GHC.Classes.Ord (FloatLiteral a_771)\n\nderiving instance GHC.Show.Show a_772 => GHC.Show.Show (FloatLiteral a_772)\n\ninstance AST.Unmarshal.Unmarshal FloatLiteral\n\ninstance Data.Foldable.Foldable FloatLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FloatLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FloatLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousFor = AST.Token.Token \"for\" 51\n\ntype AnonymousFunc = AST.Token.Token \"func\" 14\n\ntype AnonymousGo = AST.Token.Token \"go\" 47\n\ntype AnonymousGoto = AST.Token.Token \"goto\" 45\n\ndata Identifier a = Identifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_773.\n      AST.Traversable1.Class.Traversable1 a_773\n    )\n\ninstance AST.Unmarshal.SymbolMatching Identifier where\n  matchedSymbols _ = [1, 57, 58]\n  showFailure _ node_774 =\n    \"expected \"\n      GHC.Base.<> ( \"identifier, identifier, identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_774 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_774) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_775 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_776 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_777 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_778 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_775\n        c1_776 = TreeSitter.Node.nodeStartPoint node_774\n      TreeSitter.Node.TSPoint\n        r2_777\n        c2_778 = TreeSitter.Node.nodeEndPoint node_774\n\nderiving instance GHC.Classes.Eq a_779 => GHC.Classes.Eq (Identifier a_779)\n\nderiving instance GHC.Classes.Ord a_780 => GHC.Classes.Ord (Identifier a_780)\n\nderiving instance GHC.Show.Show a_781 => GHC.Show.Show (Identifier a_781)\n\ninstance AST.Unmarshal.Unmarshal Identifier\n\ninstance Data.Foldable.Foldable Identifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Identifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Identifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousIf = AST.Token.Token \"if\" 49\n\ndata ImaginaryLiteral a = ImaginaryLiteral {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_782.\n      AST.Traversable1.Class.Traversable1 a_782\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImaginaryLiteral where\n  matchedSymbols _ = [84]\n  showFailure _ node_783 =\n    \"expected \"\n      GHC.Base.<> ( \"imaginary_literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_783 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_783) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_784 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_785 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_786 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_787 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_784\n        c1_785 = TreeSitter.Node.nodeStartPoint node_783\n      TreeSitter.Node.TSPoint\n        r2_786\n        c2_787 = TreeSitter.Node.nodeEndPoint node_783\n\nderiving instance GHC.Classes.Eq a_788 => GHC.Classes.Eq (ImaginaryLiteral a_788)\n\nderiving instance GHC.Classes.Ord a_789 => GHC.Classes.Ord (ImaginaryLiteral a_789)\n\nderiving instance GHC.Show.Show a_790 => GHC.Show.Show (ImaginaryLiteral a_790)\n\ninstance AST.Unmarshal.Unmarshal ImaginaryLiteral\n\ninstance Data.Foldable.Foldable ImaginaryLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImaginaryLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImaginaryLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousImport = AST.Token.Token \"import\" 5\n\ndata IntLiteral a = IntLiteral {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_791.\n      AST.Traversable1.Class.Traversable1 a_791\n    )\n\ninstance AST.Unmarshal.SymbolMatching IntLiteral where\n  matchedSymbols _ = [82]\n  showFailure _ node_792 =\n    \"expected \"\n      GHC.Base.<> ( \"int_literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_792 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_792) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_793 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_794 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_795 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_796 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_793\n        c1_794 = TreeSitter.Node.nodeStartPoint node_792\n      TreeSitter.Node.TSPoint\n        r2_795\n        c2_796 = TreeSitter.Node.nodeEndPoint node_792\n\nderiving instance GHC.Classes.Eq a_797 => GHC.Classes.Eq (IntLiteral a_797)\n\nderiving instance GHC.Classes.Ord a_798 => GHC.Classes.Ord (IntLiteral a_798)\n\nderiving instance GHC.Show.Show a_799 => GHC.Show.Show (IntLiteral a_799)\n\ninstance AST.Unmarshal.Unmarshal IntLiteral\n\ninstance Data.Foldable.Foldable IntLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IntLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IntLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousInterface = AST.Token.Token \"interface\" 23\n\ndata LabelName a = LabelName {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_800.\n      AST.Traversable1.Class.Traversable1 a_800\n    )\n\ninstance AST.Unmarshal.SymbolMatching LabelName where\n  matchedSymbols _ = [197]\n  showFailure _ node_801 =\n    \"expected \"\n      GHC.Base.<> ( \"label_name\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_801 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_801) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_802 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_803 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_804 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_805 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_802\n        c1_803 = TreeSitter.Node.nodeStartPoint node_801\n      TreeSitter.Node.TSPoint\n        r2_804\n        c2_805 = TreeSitter.Node.nodeEndPoint node_801\n\nderiving instance GHC.Classes.Eq a_806 => GHC.Classes.Eq (LabelName a_806)\n\nderiving instance GHC.Classes.Ord a_807 => GHC.Classes.Ord (LabelName a_807)\n\nderiving instance GHC.Show.Show a_808 => GHC.Show.Show (LabelName a_808)\n\ninstance AST.Unmarshal.Unmarshal LabelName\n\ninstance Data.Foldable.Foldable LabelName where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor LabelName where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable LabelName where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousMap = AST.Token.Token \"map\" 24\n\ndata Nil a = Nil {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_809.\n      AST.Traversable1.Class.Traversable1 a_809\n    )\n\ninstance AST.Unmarshal.SymbolMatching Nil where\n  matchedSymbols _ = [86]\n  showFailure _ node_810 =\n    \"expected \"\n      GHC.Base.<> ( \"nil\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_810 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_810) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_811 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_812 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_813 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_814 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_811\n        c1_812 = TreeSitter.Node.nodeStartPoint node_810\n      TreeSitter.Node.TSPoint\n        r2_813\n        c2_814 = TreeSitter.Node.nodeEndPoint node_810\n\nderiving instance GHC.Classes.Eq a_815 => GHC.Classes.Eq (Nil a_815)\n\nderiving instance GHC.Classes.Ord a_816 => GHC.Classes.Ord (Nil a_816)\n\nderiving instance GHC.Show.Show a_817 => GHC.Show.Show (Nil a_817)\n\ninstance AST.Unmarshal.Unmarshal Nil\n\ninstance Data.Foldable.Foldable Nil where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Nil where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Nil where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousPackage = AST.Token.Token \"package\" 4\n\ndata PackageIdentifier a = PackageIdentifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_818.\n      AST.Traversable1.Class.Traversable1 a_818\n    )\n\ninstance AST.Unmarshal.SymbolMatching PackageIdentifier where\n  matchedSymbols _ = [198]\n  showFailure _ node_819 =\n    \"expected \"\n      GHC.Base.<> ( \"package_identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_819 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_819) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_820 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_821 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_822 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_823 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_820\n        c1_821 = TreeSitter.Node.nodeStartPoint node_819\n      TreeSitter.Node.TSPoint\n        r2_822\n        c2_823 = TreeSitter.Node.nodeEndPoint node_819\n\nderiving instance GHC.Classes.Eq a_824 => GHC.Classes.Eq (PackageIdentifier a_824)\n\nderiving instance GHC.Classes.Ord a_825 => GHC.Classes.Ord (PackageIdentifier a_825)\n\nderiving instance GHC.Show.Show a_826 => GHC.Show.Show (PackageIdentifier a_826)\n\ninstance AST.Unmarshal.Unmarshal PackageIdentifier\n\ninstance Data.Foldable.Foldable PackageIdentifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PackageIdentifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PackageIdentifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousRange = AST.Token.Token \"range\" 52\n\ndata RawStringLiteral a = RawStringLiteral {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_827.\n      AST.Traversable1.Class.Traversable1 a_827\n    )\n\ninstance AST.Unmarshal.SymbolMatching RawStringLiteral where\n  matchedSymbols _ = [78]\n  showFailure _ node_828 =\n    \"expected \"\n      GHC.Base.<> ( \"raw_string_literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_828 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_828) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_829 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_830 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_831 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_832 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_829\n        c1_830 = TreeSitter.Node.nodeStartPoint node_828\n      TreeSitter.Node.TSPoint\n        r2_831\n        c2_832 = TreeSitter.Node.nodeEndPoint node_828\n\nderiving instance GHC.Classes.Eq a_833 => GHC.Classes.Eq (RawStringLiteral a_833)\n\nderiving instance GHC.Classes.Ord a_834 => GHC.Classes.Ord (RawStringLiteral a_834)\n\nderiving instance GHC.Show.Show a_835 => GHC.Show.Show (RawStringLiteral a_835)\n\ninstance AST.Unmarshal.Unmarshal RawStringLiteral\n\ninstance Data.Foldable.Foldable RawStringLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RawStringLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RawStringLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousReturn = AST.Token.Token \"return\" 46\n\ndata RuneLiteral a = RuneLiteral {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_836.\n      AST.Traversable1.Class.Traversable1 a_836\n    )\n\ninstance AST.Unmarshal.SymbolMatching RuneLiteral where\n  matchedSymbols _ = [85]\n  showFailure _ node_837 =\n    \"expected \"\n      GHC.Base.<> ( \"rune_literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_837 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_837) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_838 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_839 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_840 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_841 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_838\n        c1_839 = TreeSitter.Node.nodeStartPoint node_837\n      TreeSitter.Node.TSPoint\n        r2_840\n        c2_841 = TreeSitter.Node.nodeEndPoint node_837\n\nderiving instance GHC.Classes.Eq a_842 => GHC.Classes.Eq (RuneLiteral a_842)\n\nderiving instance GHC.Classes.Ord a_843 => GHC.Classes.Ord (RuneLiteral a_843)\n\nderiving instance GHC.Show.Show a_844 => GHC.Show.Show (RuneLiteral a_844)\n\ninstance AST.Unmarshal.Unmarshal RuneLiteral\n\ninstance Data.Foldable.Foldable RuneLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RuneLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RuneLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousSelect = AST.Token.Token \"select\" 56\n\ntype AnonymousStruct = AST.Token.Token \"struct\" 20\n\ntype AnonymousSwitch = AST.Token.Token \"switch\" 53\n\ndata True a = True {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_845.\n      AST.Traversable1.Class.Traversable1 a_845\n    )\n\ninstance AST.Unmarshal.SymbolMatching True where\n  matchedSymbols _ = [87]\n  showFailure _ node_846 =\n    \"expected \"\n      GHC.Base.<> ( \"true\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_846 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_846) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_847 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_848 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_849 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_850 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_847\n        c1_848 = TreeSitter.Node.nodeStartPoint node_846\n      TreeSitter.Node.TSPoint\n        r2_849\n        c2_850 = TreeSitter.Node.nodeEndPoint node_846\n\nderiving instance GHC.Classes.Eq a_851 => GHC.Classes.Eq (True a_851)\n\nderiving instance GHC.Classes.Ord a_852 => GHC.Classes.Ord (True a_852)\n\nderiving instance GHC.Show.Show a_853 => GHC.Show.Show (True a_853)\n\ninstance AST.Unmarshal.Unmarshal True\n\ninstance Data.Foldable.Foldable True where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor True where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable True where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousType = AST.Token.Token \"type\" 16\n\ndata TypeIdentifier a = TypeIdentifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_854.\n      AST.Traversable1.Class.Traversable1 a_854\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeIdentifier where\n  matchedSymbols _ = [199]\n  showFailure _ node_855 =\n    \"expected \"\n      GHC.Base.<> ( \"type_identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_855 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_855) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_856 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_857 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_858 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_859 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_856\n        c1_857 = TreeSitter.Node.nodeStartPoint node_855\n      TreeSitter.Node.TSPoint\n        r2_858\n        c2_859 = TreeSitter.Node.nodeEndPoint node_855\n\nderiving instance GHC.Classes.Eq a_860 => GHC.Classes.Eq (TypeIdentifier a_860)\n\nderiving instance GHC.Classes.Ord a_861 => GHC.Classes.Ord (TypeIdentifier a_861)\n\nderiving instance GHC.Show.Show a_862 => GHC.Show.Show (TypeIdentifier a_862)\n\ninstance AST.Unmarshal.Unmarshal TypeIdentifier\n\ninstance Data.Foldable.Foldable TypeIdentifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeIdentifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeIdentifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousVar = AST.Token.Token \"var\" 13\n\ntype AnonymousLBrace = AST.Token.Token \"{\" 21\n\ntype AnonymousPipe = AST.Token.Token \"|\" 69\n\ntype AnonymousPipeEqual = AST.Token.Token \"|=\" 39\n\ntype AnonymousPipePipe = AST.Token.Token \"||\" 77\n\ntype AnonymousRBrace = AST.Token.Token \"}\" 22\n"
  },
  {
    "path": "semantic-go/src/Language/Go/Grammar.hs",
    "content": "{-# LANGUAGE TemplateHaskell #-}\nmodule Language.Go.Grammar\n( tree_sitter_go\n, Grammar(..)\n) where\n\nimport AST.Grammar.TH\nimport Language.Haskell.TH\nimport TreeSitter.Go (tree_sitter_go)\n\n-- | Statically-known rules corresponding to symbols in the grammar.\nmkStaticallyKnownRuleGrammarData (mkName \"Grammar\") tree_sitter_go\n"
  },
  {
    "path": "semantic-go/src/Language/Go/Tags.hs",
    "content": "{-# LANGUAGE DefaultSignatures #-}\n{-# LANGUAGE DisambiguateRecordFields #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE NamedFieldPuns #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n\nmodule Language.Go.Tags\n  ( ToTags (..),\n  )\nwhere\n\nimport AST.Element\nimport qualified AST.Parse as Parse\nimport AST.Token\nimport AST.Traversable1\nimport Control.Effect.Reader\nimport Control.Effect.Writer\nimport Control.Effect.State\nimport qualified Language.Go.AST as Go\nimport Proto.Semantic as P\nimport Source.Loc\nimport Source.Source as Source\nimport qualified Tags.Tagging.Precise as Tags\n\nclass ToTags t where\n  tags ::\n    ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n      Has (Writer Tags.Tags) sig m\n    ) =>\n    t Loc ->\n    m ()\n  default tags ::\n    ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n      Has (Writer Tags.Tags) sig m,\n      Traversable1 ToTags t\n    ) =>\n    t Loc ->\n    m ()\n  tags = gtags\n\ninstance ToTags Go.FunctionDeclaration where\n  tags\n    t@Go.FunctionDeclaration\n      { ann = Loc {byteRange},\n        name = Parse.Success (Go.Identifier {text, ann})\n      } = Tags.yield text P.FUNCTION P.DEFINITION ann byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags Go.MethodDeclaration where\n  tags\n    t@Go.MethodDeclaration\n      { ann = Loc {byteRange},\n        name = Parse.Success (Go.FieldIdentifier {text, ann})\n      } = Tags.yield text P.METHOD P.DEFINITION ann byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags Go.CallExpression where\n  tags\n    t@Go.CallExpression\n      { ann = Loc {byteRange},\n        function = Parse.Success (Go.Expression expr)\n      } = match expr\n      where\n        match expr = case expr of\n          Prj Go.SelectorExpression {field = Parse.Success (Go.FieldIdentifier {text, ann})} -> yield text ann\n          Prj Go.Identifier {text, ann} -> yield text ann\n          Prj Go.CallExpression {function = Parse.Success (Go.Expression e)} -> match e\n          Prj Go.ParenthesizedExpression {extraChildren = Parse.Success (Go.Expression e)} -> match e\n          _ -> gtags t\n        yield name loc = Tags.yield name P.CALL P.REFERENCE loc byteRange >> gtags t\n  tags _ = pure ()\n\ninstance (ToTags l, ToTags r) => ToTags (l :+: r) where\n  tags (L1 l) = tags l\n  tags (R1 r) = tags r\n\ninstance ToTags (Token sym n) where tags _ = pure ()\n\ngtags ::\n  ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n    Has (Writer Tags.Tags) sig m,\n    Traversable1 ToTags t\n  ) =>\n  t Loc ->\n  m ()\ngtags = traverse1_ @ToTags (const (pure ())) tags\n\n\ninstance ToTags Go.ArgumentList\ninstance ToTags Go.ArrayType\ninstance ToTags Go.AssignmentStatement\ninstance ToTags Go.BinaryExpression\ninstance ToTags Go.BlankIdentifier\ninstance ToTags Go.Block\ninstance ToTags Go.BreakStatement\n-- instance ToTags Go.CallExpression\ninstance ToTags Go.ChannelType\ninstance ToTags Go.CommunicationCase\ninstance ToTags Go.CompositeLiteral\ninstance ToTags Go.ConstDeclaration\ninstance ToTags Go.ConstSpec\ninstance ToTags Go.ContinueStatement\ninstance ToTags Go.DecStatement\ninstance ToTags Go.DefaultCase\ninstance ToTags Go.DeferStatement\ninstance ToTags Go.Dot\ninstance ToTags Go.Element\ninstance ToTags Go.EmptyStatement\ninstance ToTags Go.EscapeSequence\ninstance ToTags Go.Expression\ninstance ToTags Go.ExpressionCase\ninstance ToTags Go.ExpressionList\ninstance ToTags Go.ExpressionSwitchStatement\ninstance ToTags Go.FallthroughStatement\ninstance ToTags Go.False\ninstance ToTags Go.FieldDeclaration\ninstance ToTags Go.FieldDeclarationList\ninstance ToTags Go.FieldIdentifier\ninstance ToTags Go.FloatLiteral\ninstance ToTags Go.ForClause\ninstance ToTags Go.ForStatement\ninstance ToTags Go.FuncLiteral\n-- instance ToTags Go.FunctionDeclaration\ninstance ToTags Go.FunctionType\ninstance ToTags Go.GoStatement\ninstance ToTags Go.GotoStatement\ninstance ToTags Go.Identifier\ninstance ToTags Go.IfStatement\ninstance ToTags Go.ImaginaryLiteral\ninstance ToTags Go.ImplicitLengthArrayType\ninstance ToTags Go.ImportDeclaration\ninstance ToTags Go.ImportSpec\ninstance ToTags Go.ImportSpecList\ninstance ToTags Go.IncStatement\ninstance ToTags Go.IndexExpression\ninstance ToTags Go.IntLiteral\ninstance ToTags Go.InterfaceType\ninstance ToTags Go.InterpretedStringLiteral\ninstance ToTags Go.KeyedElement\ninstance ToTags Go.LabelName\ninstance ToTags Go.LabeledStatement\ninstance ToTags Go.LiteralValue\ninstance ToTags Go.MapType\n-- instance ToTags Go.MethodDeclaration\ninstance ToTags Go.MethodSpec\ninstance ToTags Go.MethodSpecList\ninstance ToTags Go.Nil\ninstance ToTags Go.PackageClause\ninstance ToTags Go.PackageIdentifier\ninstance ToTags Go.ParameterDeclaration\ninstance ToTags Go.ParameterList\ninstance ToTags Go.ParenthesizedExpression\ninstance ToTags Go.ParenthesizedType\ninstance ToTags Go.PointerType\ninstance ToTags Go.QualifiedType\ninstance ToTags Go.RangeClause\ninstance ToTags Go.RawStringLiteral\ninstance ToTags Go.ReceiveStatement\ninstance ToTags Go.ReturnStatement\ninstance ToTags Go.RuneLiteral\ninstance ToTags Go.SelectStatement\ninstance ToTags Go.SelectorExpression\ninstance ToTags Go.SendStatement\ninstance ToTags Go.ShortVarDeclaration\ninstance ToTags Go.SimpleStatement\ninstance ToTags Go.SimpleType\ninstance ToTags Go.SliceExpression\ninstance ToTags Go.SliceType\ninstance ToTags Go.SourceFile\ninstance ToTags Go.Statement\ninstance ToTags Go.StructType\ninstance ToTags Go.True\ninstance ToTags Go.Type\ninstance ToTags Go.TypeAlias\ninstance ToTags Go.TypeAssertionExpression\ninstance ToTags Go.TypeCase\ninstance ToTags Go.TypeConversionExpression\ninstance ToTags Go.TypeDeclaration\ninstance ToTags Go.TypeIdentifier\ninstance ToTags Go.TypeSpec\ninstance ToTags Go.TypeSwitchStatement\ninstance ToTags Go.UnaryExpression\ninstance ToTags Go.VarDeclaration\ninstance ToTags Go.VarSpec\ninstance ToTags Go.VariadicArgument\ninstance ToTags Go.VariadicParameterDeclaration\n"
  },
  {
    "path": "semantic-go/src/Language/Go.hs",
    "content": "{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n-- | Semantic functionality for Go programs.\nmodule Language.Go\n( Term(..)\n, Language.Go.Grammar.tree_sitter_go\n) where\n\nimport           AST.Marshal.JSON\nimport           Data.Proxy\nimport qualified Language.Go.AST as Go\nimport qualified Language.Go.Tags as GoTags\nimport qualified Tags.Tagging.Precise as Tags\nimport qualified Language.Go.Grammar (tree_sitter_go)\nimport qualified AST.Unmarshal as TS\n\nnewtype Term a = Term { getTerm :: Go.SourceFile a }\n  deriving MarshalJSON\n\ninstance TS.SymbolMatching Term where\n  matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy Go.SourceFile)\n  showFailure _ = TS.showFailure (Proxy :: Proxy Go.SourceFile)\n\ninstance TS.Unmarshal Term where\n  matchers = fmap (fmap (TS.hoist Term)) TS.matchers\n\ninstance Tags.ToTags Term where\n  tags src = Tags.runTagging src . GoTags.tags . getTerm\n"
  },
  {
    "path": "semantic-go/test/PreciseTest.hs",
    "content": "{-# LANGUAGE CPP #-}\n{-# LANGUAGE DisambiguateRecordFields #-}\n{-# LANGUAGE ImplicitParams #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE TypeApplications #-}\n{-# OPTIONS_GHC -Wno-unused-imports #-}\nmodule Main (main) where\n\n\nimport           AST.TestHelpers\nimport           AST.Unmarshal\nimport qualified Language.Go.AST as Go\nimport           Language.Go.Grammar\nimport qualified System.Path.Fixture as Fixture\nimport           Test.Tasty\n\nmain :: IO ()\nmain = do\n#if BAZEL_BUILD\n  rf <- Fixture.create\n  let ?project = \"external/tree-sitter-go\"\n      ?runfiles = rf\n  let dirs = Fixture.absRelDir \"corpus\"\n#else\n  dirs <- Go.getTestCorpusDir\n#endif\n\n  readCorpusFiles' dirs\n    >>= traverse (testCorpus parse)\n    >>= defaultMain . tests\n  where parse = parseByteString @Go.SourceFile @() tree_sitter_go\n\ntests :: [TestTree] -> TestTree\ntests = testGroup \"tree-sitter-go corpus tests\"\n"
  },
  {
    "path": "semantic-java/BUILD.bazel",
    "content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\n    \"//:build/common.bzl\",\n    \"semantic_language_library\",\n    \"semantic_language_parsing_test\",\n)\n\nsemantic_language_library(\n    name = \"semantic-java\",\n    srcs = glob([\"src/**/*.hs\"]),\n    language = \"java\",\n)\n\nsemantic_language_parsing_test(language = \"java\")\n"
  },
  {
    "path": "semantic-java/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 GitHub\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "semantic-java/README.md",
    "content": "# semantic-java\n\nSemantic support for Java.\n\n\n## Development\n\nThis project consists of a Haskell package named `semantic-java`. The library’s sources are in [`src`][].\n\nDevelopment of `semantic-java` is typically done using `cabal v2-build`:\n\n```shell\ncabal v2-build # build the library\ncabal v2-repl  # load the package into ghci\ncabal v2-test  # build and run the doctests\n```\n\n[`src`]: https://github.com/github/semantic/tree/master/semantic-java/src\n"
  },
  {
    "path": "semantic-java/Setup.hs",
    "content": "import Distribution.Simple\nmain = defaultMain\n"
  },
  {
    "path": "semantic-java/semantic-java.cabal",
    "content": "cabal-version:       2.4\n\nname:                semantic-java\nversion:             0.0.0.0\nsynopsis:            Semantic support for Java\ndescription:         Semantic support for Java.\nhomepage:            https://github.com/github/semantic/tree/master/semantic-java#readme\nbug-reports:         https://github.com/github/semantic/issues\nlicense:             MIT\nlicense-file:        LICENSE\nauthor:              The Semantic authors\nmaintainer:          opensource+semantic@github.com\ncopyright:           (c) 2019 GitHub, Inc.\ncategory:            Language\nbuild-type:          Simple\nstability:           alpha\nextra-source-files:  README.md\n\ntested-with:         GHC == 8.6.5\n\ncommon haskell\n  default-language:    Haskell2010\n  ghc-options:\n    -Weverything\n    -Wno-missing-local-signatures\n    -Wno-missing-import-lists\n    -Wno-implicit-prelude\n    -Wno-safe\n    -Wno-unsafe\n    -Wno-name-shadowing\n    -Wno-monomorphism-restriction\n    -Wno-missed-specialisations\n    -Wno-all-missed-specialisations\n    -Wno-star-is-type\n  if (impl(ghc >= 8.8))\n    ghc-options: -Wno-missing-deriving-strategies\n  if (impl(ghc >= 8.10))\n    ghc-options:\n      -Wno-missing-safe-haskell-mode\n      -Wno-prepositive-qualified-module\n  if (impl(ghc >= 9.2))\n    ghc-options:\n      -Wno-missing-kind-signatures\n  cpp-options:\n    -DBAZEL_BUILD=0\n\nlibrary\n  import: haskell\n  exposed-modules:\n    Language.Java\n    Language.Java.AST\n    Language.Java.Grammar\n    Language.Java.Tags\n  hs-source-dirs:      src\n  build-depends:\n    , base  >= 4.13 && < 5\n    , fused-effects ^>= 1.1\n    , semantic-ast\n    , semantic-proto ^>= 0\n    , semantic-source ^>= 0.2\n    , semantic-tags ^>= 0.0\n    , template-haskell  >= 2.15 && < 2.22\n    , text ^>= 1.2.3\n    , tree-sitter ^>= 0.9\n    , tree-sitter-java ^>= 0.7.0.1\n\ntest-suite test\n  import: haskell\n  type:             exitcode-stdio-1.0\n  hs-source-dirs:   test\n  main-is:          PreciseTest.hs\n  build-depends:\n    , base\n    , semantic-ast\n    , semantic-java\n    , tasty\n    , tree-sitter-java ^>= 0.7.0.1\n"
  },
  {
    "path": "semantic-java/src/Language/Java/AST.hs",
    "content": "-- Language definition for Java, generated by ast-generate. Do not edit!\n{-# LANGUAGE CPP #-}\n{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE DeriveTraversable #-}\n{-# LANGUAGE DerivingStrategies #-}\n{-# LANGUAGE DuplicateRecordFields #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE QuantifiedConstraints #-}\n{-# LANGUAGE StandaloneDeriving #-}\n{-# LANGUAGE TemplateHaskell #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\n{-# OPTIONS_GHC -fno-warn-unused-imports #-}\n\nmodule Language.Java.AST (module Language.Java.AST, getTestCorpusDir) where\n\nimport qualified AST.Parse\nimport qualified AST.Token\nimport qualified AST.Traversable1.Class\nimport qualified AST.Unmarshal\nimport qualified Data.Foldable\nimport qualified Data.List as Data.OldList\nimport qualified Data.Maybe as GHC.Maybe\nimport qualified Data.Text.Internal\nimport qualified Data.Traversable\nimport qualified GHC.Base\nimport qualified GHC.Generics\nimport qualified GHC.Records\nimport qualified GHC.Show\nimport TreeSitter.Java (getTestCorpusDir)\nimport qualified TreeSitter.Node\nimport qualified Prelude as GHC.Classes\n\ndebugSymbolNames :: [GHC.Base.String]\ndebugSymbolNames = debugSymbolNames_0\n\ndebugSymbolNames_0 :: [GHC.Base.String]\ndebugSymbolNames_0 =\n  [ \"end\",\n    \"identifier\",\n    \"decimal_integer_literal\",\n    \"hex_integer_literal\",\n    \"octal_integer_literal\",\n    \"binary_integer_literal\",\n    \"decimal_floating_point_literal\",\n    \"hex_floating_point_literal\",\n    \"true\",\n    \"false\",\n    \"character_literal\",\n    \"string_literal\",\n    \"null_literal\",\n    \"_(\",\n    \"_&\",\n    \"_)\",\n    \"_=\",\n    \"_+=\",\n    \"_-=\",\n    \"_*=\",\n    \"_/=\",\n    \"_&=\",\n    \"_|=\",\n    \"_^=\",\n    \"_%=\",\n    \"_<<=\",\n    \"_>>=\",\n    \"_>>>=\",\n    \"_>\",\n    \"_<\",\n    \"_==\",\n    \"_>=\",\n    \"_<=\",\n    \"_!=\",\n    \"_&&\",\n    \"_||\",\n    \"_+\",\n    \"_-\",\n    \"_*\",\n    \"_/\",\n    \"_|\",\n    \"_^\",\n    \"_%\",\n    \"_<<\",\n    \"_>>\",\n    \"_>>>\",\n    \"_instanceof\",\n    \"_->\",\n    \"_,\",\n    \"_?\",\n    \"_:\",\n    \"_!\",\n    \"_~\",\n    \"_++\",\n    \"_--\",\n    \"_new\",\n    \"_[\",\n    \"_]\",\n    \"_.\",\n    \"_class\",\n    \"_::\",\n    \"_extends\",\n    \"_;\",\n    \"_{\",\n    \"_}\",\n    \"_assert\",\n    \"_switch\",\n    \"_case\",\n    \"_default\",\n    \"_do\",\n    \"_while\",\n    \"_break\",\n    \"_continue\",\n    \"_return\",\n    \"_synchronized\",\n    \"_throw\",\n    \"_try\",\n    \"_catch\",\n    \"_finally\",\n    \"_if\",\n    \"_else\",\n    \"_for\",\n    \"_@\",\n    \"_open\",\n    \"_module\",\n    \"_requires\",\n    \"_exports\",\n    \"_to\",\n    \"_opens\",\n    \"_uses\",\n    \"_provides\",\n    \"_with\",\n    \"_transitive\",\n    \"_static\",\n    \"_package\",\n    \"_import\",\n    \"_enum\",\n    \"_public\",\n    \"_protected\",\n    \"_private\",\n    \"_abstract\",\n    \"_final\",\n    \"_strictfp\",\n    \"_native\",\n    \"_transient\",\n    \"_volatile\",\n    \"_implements\",\n    \"_@interface\",\n    \"_interface\",\n    \"_byte\",\n    \"_short\",\n    \"_int\",\n    \"_long\",\n    \"_char\",\n    \"_float\",\n    \"_double\",\n    \"boolean_type\",\n    \"void_type\",\n    \"_...\",\n    \"_throws\",\n    \"this\",\n    \"super\",\n    \"comment\",\n    \"program\",\n    \"_literal\",\n    \"_expression\",\n    \"cast_expression\",\n    \"assignment_expression\",\n    \"binary_expression\",\n    \"instanceof_expression\",\n    \"lambda_expression\",\n    \"inferred_parameters\",\n    \"ternary_expression\",\n    \"unary_expression\",\n    \"update_expression\",\n    \"_primary\",\n    \"array_creation_expression\",\n    \"dimensions_expr\",\n    \"parenthesized_expression\",\n    \"class_literal\",\n    \"object_creation_expression\",\n    \"_unqualified_object_creation_expression\",\n    \"field_access\",\n    \"array_access\",\n    \"method_invocation\",\n    \"argument_list\",\n    \"method_reference\",\n    \"type_arguments\",\n    \"wildcard\",\n    \"_wildcard_bounds\",\n    \"dimensions\",\n    \"_statement\",\n    \"block\",\n    \"expression_statement\",\n    \"labeled_statement\",\n    \"assert_statement\",\n    \"switch_statement\",\n    \"switch_block\",\n    \"switch_label\",\n    \"do_statement\",\n    \"break_statement\",\n    \"continue_statement\",\n    \"return_statement\",\n    \"synchronized_statement\",\n    \"throw_statement\",\n    \"try_statement\",\n    \"catch_clause\",\n    \"catch_formal_parameter\",\n    \"catch_type\",\n    \"finally_clause\",\n    \"try_with_resources_statement\",\n    \"resource_specification\",\n    \"resource\",\n    \"if_statement\",\n    \"while_statement\",\n    \"for_statement\",\n    \"for_init\",\n    \"enhanced_for_statement\",\n    \"_annotation\",\n    \"marker_annotation\",\n    \"annotation\",\n    \"annotation_argument_list\",\n    \"element_value_pair\",\n    \"_element_value\",\n    \"element_value_array_initializer\",\n    \"_declaration\",\n    \"module_declaration\",\n    \"module_directive\",\n    \"requires_modifier\",\n    \"module_name\",\n    \"package_declaration\",\n    \"import_declaration\",\n    \"asterisk\",\n    \"enum_declaration\",\n    \"enum_body\",\n    \"enum_body_declarations\",\n    \"enum_constant\",\n    \"class_declaration\",\n    \"modifiers\",\n    \"type_parameters\",\n    \"type_parameter\",\n    \"type_bound\",\n    \"superclass\",\n    \"super_interfaces\",\n    \"interface_type_list\",\n    \"class_body\",\n    \"static_initializer\",\n    \"constructor_declaration\",\n    \"_constructor_declarator\",\n    \"constructor_body\",\n    \"explicit_constructor_invocation\",\n    \"scoped_identifier\",\n    \"field_declaration\",\n    \"annotation_type_declaration\",\n    \"annotation_type_body\",\n    \"annotation_type_element_declaration\",\n    \"_default_value\",\n    \"interface_declaration\",\n    \"extends_interfaces\",\n    \"interface_body\",\n    \"constant_declaration\",\n    \"_variable_declarator_list\",\n    \"variable_declarator\",\n    \"_variable_declarator_id\",\n    \"array_initializer\",\n    \"_type\",\n    \"_unannotated_type\",\n    \"annotated_type\",\n    \"scoped_type_identifier\",\n    \"generic_type\",\n    \"array_type\",\n    \"integral_type\",\n    \"floating_point_type\",\n    \"_method_header\",\n    \"_method_declarator\",\n    \"formal_parameters\",\n    \"formal_parameter\",\n    \"receiver_parameter\",\n    \"spread_parameter\",\n    \"throws\",\n    \"local_variable_declaration_statement\",\n    \"local_variable_declaration\",\n    \"method_declaration\",\n    \"_program_repeat1\",\n    \"_cast_expression_repeat1\",\n    \"_inferred_parameters_repeat1\",\n    \"_array_creation_expression_repeat1\",\n    \"_dimensions_expr_repeat1\",\n    \"_class_literal_repeat1\",\n    \"_argument_list_repeat1\",\n    \"_type_arguments_repeat1\",\n    \"_dimensions_repeat1\",\n    \"_switch_block_repeat1\",\n    \"_try_statement_repeat1\",\n    \"_catch_type_repeat1\",\n    \"_resource_specification_repeat1\",\n    \"_annotation_argument_list_repeat1\",\n    \"_element_value_array_initializer_repeat1\",\n    \"_module_declaration_repeat1\",\n    \"_module_directive_repeat1\",\n    \"_module_directive_repeat2\",\n    \"_module_directive_repeat3\",\n    \"_import_declaration_repeat1\",\n    \"_enum_body_repeat1\",\n    \"_enum_body_declarations_repeat1\",\n    \"_modifiers_repeat1\",\n    \"_type_parameters_repeat1\",\n    \"_type_bound_repeat1\",\n    \"_interface_type_list_repeat1\",\n    \"_annotation_type_body_repeat1\",\n    \"_interface_body_repeat1\",\n    \"__variable_declarator_list_repeat1\",\n    \"_array_initializer_repeat1\",\n    \"_formal_parameters_repeat1\",\n    \"type_identifier\"\n  ]\n\nnewtype Declaration a = Declaration {getDeclaration :: ((AnnotationTypeDeclaration GHC.Generics.:+: ClassDeclaration GHC.Generics.:+: EnumDeclaration GHC.Generics.:+: ImportDeclaration GHC.Generics.:+: InterfaceDeclaration GHC.Generics.:+: ModuleDeclaration GHC.Generics.:+: PackageDeclaration) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1.\n      AST.Traversable1.Class.Traversable1 a_1\n    )\n\ninstance GHC.Records.HasField \"ann\" (Declaration a_2) a_2 where\n  getField = AST.Unmarshal.gann GHC.Base.. getDeclaration\n\nderiving instance GHC.Classes.Eq a_3 => GHC.Classes.Eq (Declaration a_3)\n\nderiving instance GHC.Classes.Ord a_4 => GHC.Classes.Ord (Declaration a_4)\n\nderiving instance GHC.Show.Show a_5 => GHC.Show.Show (Declaration a_5)\n\ninstance AST.Unmarshal.Unmarshal Declaration\n\ninstance Data.Foldable.Foldable Declaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Declaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Declaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Expression a = Expression {getExpression :: ((Primary GHC.Generics.:+: AssignmentExpression GHC.Generics.:+: BinaryExpression GHC.Generics.:+: CastExpression GHC.Generics.:+: Identifier GHC.Generics.:+: InstanceofExpression GHC.Generics.:+: LambdaExpression GHC.Generics.:+: ScopedIdentifier GHC.Generics.:+: TernaryExpression GHC.Generics.:+: UnaryExpression GHC.Generics.:+: UpdateExpression) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_6.\n      AST.Traversable1.Class.Traversable1 a_6\n    )\n\ninstance GHC.Records.HasField \"ann\" (Expression a_7) a_7 where\n  getField = AST.Unmarshal.gann GHC.Base.. getExpression\n\nderiving instance GHC.Classes.Eq a_8 => GHC.Classes.Eq (Expression a_8)\n\nderiving instance GHC.Classes.Ord a_9 => GHC.Classes.Ord (Expression a_9)\n\nderiving instance GHC.Show.Show a_10 => GHC.Show.Show (Expression a_10)\n\ninstance AST.Unmarshal.Unmarshal Expression\n\ninstance Data.Foldable.Foldable Expression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Expression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Expression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Literal a = Literal {getLiteral :: ((BinaryIntegerLiteral GHC.Generics.:+: CharacterLiteral GHC.Generics.:+: DecimalFloatingPointLiteral GHC.Generics.:+: DecimalIntegerLiteral GHC.Generics.:+: False GHC.Generics.:+: HexFloatingPointLiteral GHC.Generics.:+: HexIntegerLiteral GHC.Generics.:+: NullLiteral GHC.Generics.:+: OctalIntegerLiteral GHC.Generics.:+: StringLiteral GHC.Generics.:+: True) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_11.\n      AST.Traversable1.Class.Traversable1 a_11\n    )\n\ninstance GHC.Records.HasField \"ann\" (Literal a_12) a_12 where\n  getField = AST.Unmarshal.gann GHC.Base.. getLiteral\n\nderiving instance GHC.Classes.Eq a_13 => GHC.Classes.Eq (Literal a_13)\n\nderiving instance GHC.Classes.Ord a_14 => GHC.Classes.Ord (Literal a_14)\n\nderiving instance GHC.Show.Show a_15 => GHC.Show.Show (Literal a_15)\n\ninstance AST.Unmarshal.Unmarshal Literal\n\ninstance Data.Foldable.Foldable Literal where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Literal where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Literal where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Primary a = Primary {getPrimary :: ((Literal GHC.Generics.:+: ArrayAccess GHC.Generics.:+: ArrayCreationExpression GHC.Generics.:+: ClassLiteral GHC.Generics.:+: FieldAccess GHC.Generics.:+: MethodInvocation GHC.Generics.:+: MethodReference GHC.Generics.:+: ObjectCreationExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: This) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_16.\n      AST.Traversable1.Class.Traversable1 a_16\n    )\n\ninstance GHC.Records.HasField \"ann\" (Primary a_17) a_17 where\n  getField = AST.Unmarshal.gann GHC.Base.. getPrimary\n\nderiving instance GHC.Classes.Eq a_18 => GHC.Classes.Eq (Primary a_18)\n\nderiving instance GHC.Classes.Ord a_19 => GHC.Classes.Ord (Primary a_19)\n\nderiving instance GHC.Show.Show a_20 => GHC.Show.Show (Primary a_20)\n\ninstance AST.Unmarshal.Unmarshal Primary\n\ninstance Data.Foldable.Foldable Primary where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Primary where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Primary where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype SimpleType a = SimpleType {getSimpleType :: ((BooleanType GHC.Generics.:+: FloatingPointType GHC.Generics.:+: GenericType GHC.Generics.:+: IntegralType GHC.Generics.:+: ScopedTypeIdentifier GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: VoidType) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_21.\n      AST.Traversable1.Class.Traversable1 a_21\n    )\n\ninstance GHC.Records.HasField \"ann\" (SimpleType a_22) a_22 where\n  getField = AST.Unmarshal.gann GHC.Base.. getSimpleType\n\nderiving instance GHC.Classes.Eq a_23 => GHC.Classes.Eq (SimpleType a_23)\n\nderiving instance GHC.Classes.Ord a_24 => GHC.Classes.Ord (SimpleType a_24)\n\nderiving instance GHC.Show.Show a_25 => GHC.Show.Show (SimpleType a_25)\n\ninstance AST.Unmarshal.Unmarshal SimpleType\n\ninstance Data.Foldable.Foldable SimpleType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SimpleType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SimpleType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Statement a = Statement {getStatement :: ((AnonymousSemicolon GHC.Generics.:+: Declaration GHC.Generics.:+: AssertStatement GHC.Generics.:+: Block GHC.Generics.:+: BreakStatement GHC.Generics.:+: ContinueStatement GHC.Generics.:+: DoStatement GHC.Generics.:+: EnhancedForStatement GHC.Generics.:+: ExpressionStatement GHC.Generics.:+: ForStatement GHC.Generics.:+: IfStatement GHC.Generics.:+: LabeledStatement GHC.Generics.:+: LocalVariableDeclarationStatement GHC.Generics.:+: ReturnStatement GHC.Generics.:+: SwitchStatement GHC.Generics.:+: SynchronizedStatement GHC.Generics.:+: ThrowStatement GHC.Generics.:+: TryStatement GHC.Generics.:+: TryWithResourcesStatement GHC.Generics.:+: WhileStatement) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_26.\n      AST.Traversable1.Class.Traversable1 a_26\n    )\n\ninstance GHC.Records.HasField \"ann\" (Statement a_27) a_27 where\n  getField = AST.Unmarshal.gann GHC.Base.. getStatement\n\nderiving instance GHC.Classes.Eq a_28 => GHC.Classes.Eq (Statement a_28)\n\nderiving instance GHC.Classes.Ord a_29 => GHC.Classes.Ord (Statement a_29)\n\nderiving instance GHC.Show.Show a_30 => GHC.Show.Show (Statement a_30)\n\ninstance AST.Unmarshal.Unmarshal Statement\n\ninstance Data.Foldable.Foldable Statement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Statement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Statement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Type a = Type {getType :: ((UnannotatedType GHC.Generics.:+: AnnotatedType) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_31.\n      AST.Traversable1.Class.Traversable1 a_31\n    )\n\ninstance GHC.Records.HasField \"ann\" (Type a_32) a_32 where\n  getField = AST.Unmarshal.gann GHC.Base.. getType\n\nderiving instance GHC.Classes.Eq a_33 => GHC.Classes.Eq (Type a_33)\n\nderiving instance GHC.Classes.Ord a_34 => GHC.Classes.Ord (Type a_34)\n\nderiving instance GHC.Show.Show a_35 => GHC.Show.Show (Type a_35)\n\ninstance AST.Unmarshal.Unmarshal Type\n\ninstance Data.Foldable.Foldable Type where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Type where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Type where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype UnannotatedType a = UnannotatedType {getUnannotatedType :: ((SimpleType GHC.Generics.:+: ArrayType) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_36.\n      AST.Traversable1.Class.Traversable1 a_36\n    )\n\ninstance GHC.Records.HasField \"ann\" (UnannotatedType a_37) a_37 where\n  getField = AST.Unmarshal.gann GHC.Base.. getUnannotatedType\n\nderiving instance GHC.Classes.Eq a_38 => GHC.Classes.Eq (UnannotatedType a_38)\n\nderiving instance GHC.Classes.Ord a_39 => GHC.Classes.Ord (UnannotatedType a_39)\n\nderiving instance GHC.Show.Show a_40 => GHC.Show.Show (UnannotatedType a_40)\n\ninstance AST.Unmarshal.Unmarshal UnannotatedType\n\ninstance Data.Foldable.Foldable UnannotatedType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UnannotatedType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UnannotatedType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AnnotatedType a = AnnotatedType\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((UnannotatedType GHC.Generics.:+: Annotation GHC.Generics.:+: MarkerAnnotation) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_41.\n      AST.Traversable1.Class.Traversable1 a_41\n    )\n\ninstance AST.Unmarshal.SymbolMatching AnnotatedType where\n  matchedSymbols _ = [227]\n  showFailure _ node_42 =\n    \"expected \"\n      GHC.Base.<> ( \"annotated_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_42 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_42) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_43 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_44 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_45 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_46 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_43\n        c1_44 = TreeSitter.Node.nodeStartPoint node_42\n      TreeSitter.Node.TSPoint\n        r2_45\n        c2_46 = TreeSitter.Node.nodeEndPoint node_42\n\nderiving instance GHC.Classes.Eq a_47 => GHC.Classes.Eq (AnnotatedType a_47)\n\nderiving instance GHC.Classes.Ord a_48 => GHC.Classes.Ord (AnnotatedType a_48)\n\nderiving instance GHC.Show.Show a_49 => GHC.Show.Show (AnnotatedType a_49)\n\ninstance AST.Unmarshal.Unmarshal AnnotatedType\n\ninstance Data.Foldable.Foldable AnnotatedType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AnnotatedType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AnnotatedType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Annotation a = Annotation\n  { ann :: a,\n    arguments :: (AST.Parse.Err (AnnotationArgumentList a)),\n    name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: ScopedIdentifier) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_50.\n      AST.Traversable1.Class.Traversable1 a_50\n    )\n\ninstance AST.Unmarshal.SymbolMatching Annotation where\n  matchedSymbols _ = [180]\n  showFailure _ node_51 =\n    \"expected \"\n      GHC.Base.<> ( \"annotation\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_51 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_51) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_52 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_53 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_54 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_55 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_52\n        c1_53 = TreeSitter.Node.nodeStartPoint node_51\n      TreeSitter.Node.TSPoint\n        r2_54\n        c2_55 = TreeSitter.Node.nodeEndPoint node_51\n\nderiving instance GHC.Classes.Eq a_56 => GHC.Classes.Eq (Annotation a_56)\n\nderiving instance GHC.Classes.Ord a_57 => GHC.Classes.Ord (Annotation a_57)\n\nderiving instance GHC.Show.Show a_58 => GHC.Show.Show (Annotation a_58)\n\ninstance AST.Unmarshal.Unmarshal Annotation\n\ninstance Data.Foldable.Foldable Annotation where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Annotation where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Annotation where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AnnotationArgumentList a = AnnotationArgumentList\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: Annotation GHC.Generics.:+: ElementValueArrayInitializer GHC.Generics.:+: ElementValuePair GHC.Generics.:+: MarkerAnnotation) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_59.\n      AST.Traversable1.Class.Traversable1 a_59\n    )\n\ninstance AST.Unmarshal.SymbolMatching AnnotationArgumentList where\n  matchedSymbols _ = [181]\n  showFailure _ node_60 =\n    \"expected \"\n      GHC.Base.<> ( \"annotation_argument_list\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_60 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_60) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_61 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_62 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_63 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_64 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_61\n        c1_62 = TreeSitter.Node.nodeStartPoint node_60\n      TreeSitter.Node.TSPoint\n        r2_63\n        c2_64 = TreeSitter.Node.nodeEndPoint node_60\n\nderiving instance GHC.Classes.Eq a_65 => GHC.Classes.Eq (AnnotationArgumentList a_65)\n\nderiving instance GHC.Classes.Ord a_66 => GHC.Classes.Ord (AnnotationArgumentList a_66)\n\nderiving instance GHC.Show.Show a_67 => GHC.Show.Show (AnnotationArgumentList a_67)\n\ninstance AST.Unmarshal.Unmarshal AnnotationArgumentList\n\ninstance Data.Foldable.Foldable AnnotationArgumentList where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AnnotationArgumentList where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AnnotationArgumentList where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AnnotationTypeBody a = AnnotationTypeBody\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((AnnotationTypeDeclaration GHC.Generics.:+: AnnotationTypeElementDeclaration GHC.Generics.:+: ClassDeclaration GHC.Generics.:+: ConstantDeclaration GHC.Generics.:+: InterfaceDeclaration) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_68.\n      AST.Traversable1.Class.Traversable1 a_68\n    )\n\ninstance AST.Unmarshal.SymbolMatching AnnotationTypeBody where\n  matchedSymbols _ = [214]\n  showFailure _ node_69 =\n    \"expected \"\n      GHC.Base.<> ( \"annotation_type_body\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_69 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_69) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_70 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_71 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_72 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_73 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_70\n        c1_71 = TreeSitter.Node.nodeStartPoint node_69\n      TreeSitter.Node.TSPoint\n        r2_72\n        c2_73 = TreeSitter.Node.nodeEndPoint node_69\n\nderiving instance GHC.Classes.Eq a_74 => GHC.Classes.Eq (AnnotationTypeBody a_74)\n\nderiving instance GHC.Classes.Ord a_75 => GHC.Classes.Ord (AnnotationTypeBody a_75)\n\nderiving instance GHC.Show.Show a_76 => GHC.Show.Show (AnnotationTypeBody a_76)\n\ninstance AST.Unmarshal.Unmarshal AnnotationTypeBody\n\ninstance Data.Foldable.Foldable AnnotationTypeBody where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AnnotationTypeBody where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AnnotationTypeBody where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AnnotationTypeDeclaration a = AnnotationTypeDeclaration\n  { ann :: a,\n    body :: (AST.Parse.Err (AnnotationTypeBody a)),\n    name :: (AST.Parse.Err (Identifier a)),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_77.\n      AST.Traversable1.Class.Traversable1 a_77\n    )\n\ninstance AST.Unmarshal.SymbolMatching AnnotationTypeDeclaration where\n  matchedSymbols _ = [213]\n  showFailure _ node_78 =\n    \"expected \"\n      GHC.Base.<> ( \"annotation_type_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_78 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_78) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_79 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_80 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_81 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_82 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_79\n        c1_80 = TreeSitter.Node.nodeStartPoint node_78\n      TreeSitter.Node.TSPoint\n        r2_81\n        c2_82 = TreeSitter.Node.nodeEndPoint node_78\n\nderiving instance GHC.Classes.Eq a_83 => GHC.Classes.Eq (AnnotationTypeDeclaration a_83)\n\nderiving instance GHC.Classes.Ord a_84 => GHC.Classes.Ord (AnnotationTypeDeclaration a_84)\n\nderiving instance GHC.Show.Show a_85 => GHC.Show.Show (AnnotationTypeDeclaration a_85)\n\ninstance AST.Unmarshal.Unmarshal AnnotationTypeDeclaration\n\ninstance Data.Foldable.Foldable AnnotationTypeDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AnnotationTypeDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AnnotationTypeDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AnnotationTypeElementDeclaration a = AnnotationTypeElementDeclaration\n  { ann :: a,\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: Annotation GHC.Generics.:+: ElementValueArrayInitializer GHC.Generics.:+: MarkerAnnotation) a))),\n    name :: (AST.Parse.Err (Identifier a)),\n    type' :: (AST.Parse.Err (UnannotatedType a)),\n    dimensions :: (GHC.Maybe.Maybe (AST.Parse.Err (Dimensions a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_86.\n      AST.Traversable1.Class.Traversable1 a_86\n    )\n\ninstance AST.Unmarshal.SymbolMatching AnnotationTypeElementDeclaration where\n  matchedSymbols _ = [215]\n  showFailure _ node_87 =\n    \"expected \"\n      GHC.Base.<> ( \"annotation_type_element_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_87 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_87) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_88 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_89 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_90 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_91 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_88\n        c1_89 = TreeSitter.Node.nodeStartPoint node_87\n      TreeSitter.Node.TSPoint\n        r2_90\n        c2_91 = TreeSitter.Node.nodeEndPoint node_87\n\nderiving instance GHC.Classes.Eq a_92 => GHC.Classes.Eq (AnnotationTypeElementDeclaration a_92)\n\nderiving instance GHC.Classes.Ord a_93 => GHC.Classes.Ord (AnnotationTypeElementDeclaration a_93)\n\nderiving instance GHC.Show.Show a_94 => GHC.Show.Show (AnnotationTypeElementDeclaration a_94)\n\ninstance AST.Unmarshal.Unmarshal AnnotationTypeElementDeclaration\n\ninstance Data.Foldable.Foldable AnnotationTypeElementDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AnnotationTypeElementDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AnnotationTypeElementDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ArgumentList a = ArgumentList\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (Expression a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_95.\n      AST.Traversable1.Class.Traversable1 a_95\n    )\n\ninstance AST.Unmarshal.SymbolMatching ArgumentList where\n  matchedSymbols _ = [145]\n  showFailure _ node_96 =\n    \"expected \"\n      GHC.Base.<> ( \"argument_list\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_96 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_96) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_97 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_98 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_99 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_100 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_97\n        c1_98 = TreeSitter.Node.nodeStartPoint node_96\n      TreeSitter.Node.TSPoint\n        r2_99\n        c2_100 = TreeSitter.Node.nodeEndPoint node_96\n\nderiving instance GHC.Classes.Eq a_101 => GHC.Classes.Eq (ArgumentList a_101)\n\nderiving instance GHC.Classes.Ord a_102 => GHC.Classes.Ord (ArgumentList a_102)\n\nderiving instance GHC.Show.Show a_103 => GHC.Show.Show (ArgumentList a_103)\n\ninstance AST.Unmarshal.Unmarshal ArgumentList\n\ninstance Data.Foldable.Foldable ArgumentList where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ArgumentList where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ArgumentList where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ArrayAccess a = ArrayAccess\n  { ann :: a,\n    array :: (AST.Parse.Err ((Primary GHC.Generics.:+: Identifier GHC.Generics.:+: ScopedIdentifier) a)),\n    index :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_104.\n      AST.Traversable1.Class.Traversable1 a_104\n    )\n\ninstance AST.Unmarshal.SymbolMatching ArrayAccess where\n  matchedSymbols _ = [143]\n  showFailure _ node_105 =\n    \"expected \"\n      GHC.Base.<> ( \"array_access\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_105 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_105) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_106 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_107 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_108 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_109 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_106\n        c1_107 = TreeSitter.Node.nodeStartPoint node_105\n      TreeSitter.Node.TSPoint\n        r2_108\n        c2_109 = TreeSitter.Node.nodeEndPoint node_105\n\nderiving instance GHC.Classes.Eq a_110 => GHC.Classes.Eq (ArrayAccess a_110)\n\nderiving instance GHC.Classes.Ord a_111 => GHC.Classes.Ord (ArrayAccess a_111)\n\nderiving instance GHC.Show.Show a_112 => GHC.Show.Show (ArrayAccess a_112)\n\ninstance AST.Unmarshal.Unmarshal ArrayAccess\n\ninstance Data.Foldable.Foldable ArrayAccess where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ArrayAccess where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ArrayAccess where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ArrayCreationExpression a = ArrayCreationExpression\n  { ann :: a,\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err (ArrayInitializer a))),\n    type' :: (AST.Parse.Err (SimpleType a)),\n    dimensions :: (GHC.Base.NonEmpty (AST.Parse.Err ((Dimensions GHC.Generics.:+: DimensionsExpr) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_113.\n      AST.Traversable1.Class.Traversable1 a_113\n    )\n\ninstance AST.Unmarshal.SymbolMatching ArrayCreationExpression where\n  matchedSymbols _ = [136]\n  showFailure _ node_114 =\n    \"expected \"\n      GHC.Base.<> ( \"array_creation_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_114 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_114) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_115 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_116 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_117 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_118 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_115\n        c1_116 = TreeSitter.Node.nodeStartPoint node_114\n      TreeSitter.Node.TSPoint\n        r2_117\n        c2_118 = TreeSitter.Node.nodeEndPoint node_114\n\nderiving instance GHC.Classes.Eq a_119 => GHC.Classes.Eq (ArrayCreationExpression a_119)\n\nderiving instance GHC.Classes.Ord a_120 => GHC.Classes.Ord (ArrayCreationExpression a_120)\n\nderiving instance GHC.Show.Show a_121 => GHC.Show.Show (ArrayCreationExpression a_121)\n\ninstance AST.Unmarshal.Unmarshal ArrayCreationExpression\n\ninstance Data.Foldable.Foldable ArrayCreationExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ArrayCreationExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ArrayCreationExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ArrayInitializer a = ArrayInitializer\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: ArrayInitializer) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_122.\n      AST.Traversable1.Class.Traversable1 a_122\n    )\n\ninstance AST.Unmarshal.SymbolMatching ArrayInitializer where\n  matchedSymbols _ = [224]\n  showFailure _ node_123 =\n    \"expected \"\n      GHC.Base.<> ( \"array_initializer\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_123 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_123) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_124 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_125 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_126 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_127 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_124\n        c1_125 = TreeSitter.Node.nodeStartPoint node_123\n      TreeSitter.Node.TSPoint\n        r2_126\n        c2_127 = TreeSitter.Node.nodeEndPoint node_123\n\nderiving instance GHC.Classes.Eq a_128 => GHC.Classes.Eq (ArrayInitializer a_128)\n\nderiving instance GHC.Classes.Ord a_129 => GHC.Classes.Ord (ArrayInitializer a_129)\n\nderiving instance GHC.Show.Show a_130 => GHC.Show.Show (ArrayInitializer a_130)\n\ninstance AST.Unmarshal.Unmarshal ArrayInitializer\n\ninstance Data.Foldable.Foldable ArrayInitializer where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ArrayInitializer where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ArrayInitializer where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ArrayType a = ArrayType\n  { ann :: a,\n    dimensions :: (AST.Parse.Err (Dimensions a)),\n    element :: (AST.Parse.Err (UnannotatedType a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_131.\n      AST.Traversable1.Class.Traversable1 a_131\n    )\n\ninstance AST.Unmarshal.SymbolMatching ArrayType where\n  matchedSymbols _ = [230]\n  showFailure _ node_132 =\n    \"expected \"\n      GHC.Base.<> ( \"array_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_132 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_132) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_133 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_134 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_135 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_136 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_133\n        c1_134 = TreeSitter.Node.nodeStartPoint node_132\n      TreeSitter.Node.TSPoint\n        r2_135\n        c2_136 = TreeSitter.Node.nodeEndPoint node_132\n\nderiving instance GHC.Classes.Eq a_137 => GHC.Classes.Eq (ArrayType a_137)\n\nderiving instance GHC.Classes.Ord a_138 => GHC.Classes.Ord (ArrayType a_138)\n\nderiving instance GHC.Show.Show a_139 => GHC.Show.Show (ArrayType a_139)\n\ninstance AST.Unmarshal.Unmarshal ArrayType\n\ninstance Data.Foldable.Foldable ArrayType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ArrayType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ArrayType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AssertStatement a = AssertStatement\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Expression a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_140.\n      AST.Traversable1.Class.Traversable1 a_140\n    )\n\ninstance AST.Unmarshal.SymbolMatching AssertStatement where\n  matchedSymbols _ = [155]\n  showFailure _ node_141 =\n    \"expected \"\n      GHC.Base.<> ( \"assert_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_141 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_141) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_142 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_143 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_144 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_145 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_142\n        c1_143 = TreeSitter.Node.nodeStartPoint node_141\n      TreeSitter.Node.TSPoint\n        r2_144\n        c2_145 = TreeSitter.Node.nodeEndPoint node_141\n\nderiving instance GHC.Classes.Eq a_146 => GHC.Classes.Eq (AssertStatement a_146)\n\nderiving instance GHC.Classes.Ord a_147 => GHC.Classes.Ord (AssertStatement a_147)\n\nderiving instance GHC.Show.Show a_148 => GHC.Show.Show (AssertStatement a_148)\n\ninstance AST.Unmarshal.Unmarshal AssertStatement\n\ninstance Data.Foldable.Foldable AssertStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AssertStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AssertStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AssignmentExpression a = AssignmentExpression\n  { ann :: a,\n    operator :: (AST.Parse.Err ((AnonymousPercentEqual GHC.Generics.:+: AnonymousAmpersandEqual GHC.Generics.:+: AnonymousStarEqual GHC.Generics.:+: AnonymousPlusEqual GHC.Generics.:+: AnonymousMinusEqual GHC.Generics.:+: AnonymousSlashEqual GHC.Generics.:+: AnonymousLAngleLAngleEqual GHC.Generics.:+: AnonymousEqual GHC.Generics.:+: AnonymousRAngleRAngleEqual GHC.Generics.:+: AnonymousRAngleRAngleRAngleEqual GHC.Generics.:+: AnonymousCaretEqual GHC.Generics.:+: AnonymousPipeEqual) a)),\n    left :: (AST.Parse.Err ((ArrayAccess GHC.Generics.:+: FieldAccess GHC.Generics.:+: Identifier GHC.Generics.:+: ScopedIdentifier) a)),\n    right :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_149.\n      AST.Traversable1.Class.Traversable1 a_149\n    )\n\ninstance AST.Unmarshal.SymbolMatching AssignmentExpression where\n  matchedSymbols _ = [127]\n  showFailure _ node_150 =\n    \"expected \"\n      GHC.Base.<> ( \"assignment_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_150 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_150) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_151 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_152 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_153 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_154 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_151\n        c1_152 = TreeSitter.Node.nodeStartPoint node_150\n      TreeSitter.Node.TSPoint\n        r2_153\n        c2_154 = TreeSitter.Node.nodeEndPoint node_150\n\nderiving instance GHC.Classes.Eq a_155 => GHC.Classes.Eq (AssignmentExpression a_155)\n\nderiving instance GHC.Classes.Ord a_156 => GHC.Classes.Ord (AssignmentExpression a_156)\n\nderiving instance GHC.Show.Show a_157 => GHC.Show.Show (AssignmentExpression a_157)\n\ninstance AST.Unmarshal.Unmarshal AssignmentExpression\n\ninstance Data.Foldable.Foldable AssignmentExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AssignmentExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AssignmentExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Asterisk a = Asterisk {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_158.\n      AST.Traversable1.Class.Traversable1 a_158\n    )\n\ninstance AST.Unmarshal.SymbolMatching Asterisk where\n  matchedSymbols _ = [192]\n  showFailure _ node_159 =\n    \"expected \"\n      GHC.Base.<> ( \"asterisk\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_159 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_159) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_160 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_161 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_162 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_163 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_160\n        c1_161 = TreeSitter.Node.nodeStartPoint node_159\n      TreeSitter.Node.TSPoint\n        r2_162\n        c2_163 = TreeSitter.Node.nodeEndPoint node_159\n\nderiving instance GHC.Classes.Eq a_164 => GHC.Classes.Eq (Asterisk a_164)\n\nderiving instance GHC.Classes.Ord a_165 => GHC.Classes.Ord (Asterisk a_165)\n\nderiving instance GHC.Show.Show a_166 => GHC.Show.Show (Asterisk a_166)\n\ninstance AST.Unmarshal.Unmarshal Asterisk\n\ninstance Data.Foldable.Foldable Asterisk where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Asterisk where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Asterisk where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BinaryExpression a = BinaryExpression\n  { ann :: a,\n    operator :: (AST.Parse.Err ((AnonymousBangEqual GHC.Generics.:+: AnonymousPercent GHC.Generics.:+: AnonymousAmpersand GHC.Generics.:+: AnonymousAmpersandAmpersand GHC.Generics.:+: AnonymousStar GHC.Generics.:+: AnonymousPlus GHC.Generics.:+: AnonymousMinus GHC.Generics.:+: AnonymousSlash GHC.Generics.:+: AnonymousLAngle GHC.Generics.:+: AnonymousLAngleLAngle GHC.Generics.:+: AnonymousLAngleEqual GHC.Generics.:+: AnonymousEqualEqual GHC.Generics.:+: AnonymousRAngle GHC.Generics.:+: AnonymousRAngleEqual GHC.Generics.:+: AnonymousRAngleRAngle GHC.Generics.:+: AnonymousRAngleRAngleRAngle GHC.Generics.:+: AnonymousCaret GHC.Generics.:+: AnonymousPipe GHC.Generics.:+: AnonymousPipePipe) a)),\n    left :: (AST.Parse.Err (Expression a)),\n    right :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_167.\n      AST.Traversable1.Class.Traversable1 a_167\n    )\n\ninstance AST.Unmarshal.SymbolMatching BinaryExpression where\n  matchedSymbols _ = [128]\n  showFailure _ node_168 =\n    \"expected \"\n      GHC.Base.<> ( \"binary_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_168 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_168) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_169 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_170 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_171 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_172 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_169\n        c1_170 = TreeSitter.Node.nodeStartPoint node_168\n      TreeSitter.Node.TSPoint\n        r2_171\n        c2_172 = TreeSitter.Node.nodeEndPoint node_168\n\nderiving instance GHC.Classes.Eq a_173 => GHC.Classes.Eq (BinaryExpression a_173)\n\nderiving instance GHC.Classes.Ord a_174 => GHC.Classes.Ord (BinaryExpression a_174)\n\nderiving instance GHC.Show.Show a_175 => GHC.Show.Show (BinaryExpression a_175)\n\ninstance AST.Unmarshal.Unmarshal BinaryExpression\n\ninstance Data.Foldable.Foldable BinaryExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BinaryExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BinaryExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Block a = Block\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (Statement a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_176.\n      AST.Traversable1.Class.Traversable1 a_176\n    )\n\ninstance AST.Unmarshal.SymbolMatching Block where\n  matchedSymbols _ = [152]\n  showFailure _ node_177 =\n    \"expected \"\n      GHC.Base.<> ( \"block\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_177 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_177) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_178 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_179 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_180 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_181 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_178\n        c1_179 = TreeSitter.Node.nodeStartPoint node_177\n      TreeSitter.Node.TSPoint\n        r2_180\n        c2_181 = TreeSitter.Node.nodeEndPoint node_177\n\nderiving instance GHC.Classes.Eq a_182 => GHC.Classes.Eq (Block a_182)\n\nderiving instance GHC.Classes.Ord a_183 => GHC.Classes.Ord (Block a_183)\n\nderiving instance GHC.Show.Show a_184 => GHC.Show.Show (Block a_184)\n\ninstance AST.Unmarshal.Unmarshal Block\n\ninstance Data.Foldable.Foldable Block where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Block where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Block where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BreakStatement a = BreakStatement\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_185.\n      AST.Traversable1.Class.Traversable1 a_185\n    )\n\ninstance AST.Unmarshal.SymbolMatching BreakStatement where\n  matchedSymbols _ = [160]\n  showFailure _ node_186 =\n    \"expected \"\n      GHC.Base.<> ( \"break_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_186 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_186) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_187 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_188 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_189 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_190 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_187\n        c1_188 = TreeSitter.Node.nodeStartPoint node_186\n      TreeSitter.Node.TSPoint\n        r2_189\n        c2_190 = TreeSitter.Node.nodeEndPoint node_186\n\nderiving instance GHC.Classes.Eq a_191 => GHC.Classes.Eq (BreakStatement a_191)\n\nderiving instance GHC.Classes.Ord a_192 => GHC.Classes.Ord (BreakStatement a_192)\n\nderiving instance GHC.Show.Show a_193 => GHC.Show.Show (BreakStatement a_193)\n\ninstance AST.Unmarshal.Unmarshal BreakStatement\n\ninstance Data.Foldable.Foldable BreakStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BreakStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BreakStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CastExpression a = CastExpression\n  { ann :: a,\n    value :: (AST.Parse.Err (Expression a)),\n    type' :: (GHC.Base.NonEmpty (AST.Parse.Err (Type a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_194.\n      AST.Traversable1.Class.Traversable1 a_194\n    )\n\ninstance AST.Unmarshal.SymbolMatching CastExpression where\n  matchedSymbols _ = [126]\n  showFailure _ node_195 =\n    \"expected \"\n      GHC.Base.<> ( \"cast_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_195 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_195) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_196 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_197 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_198 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_199 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_196\n        c1_197 = TreeSitter.Node.nodeStartPoint node_195\n      TreeSitter.Node.TSPoint\n        r2_198\n        c2_199 = TreeSitter.Node.nodeEndPoint node_195\n\nderiving instance GHC.Classes.Eq a_200 => GHC.Classes.Eq (CastExpression a_200)\n\nderiving instance GHC.Classes.Ord a_201 => GHC.Classes.Ord (CastExpression a_201)\n\nderiving instance GHC.Show.Show a_202 => GHC.Show.Show (CastExpression a_202)\n\ninstance AST.Unmarshal.Unmarshal CastExpression\n\ninstance Data.Foldable.Foldable CastExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CastExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CastExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CatchClause a = CatchClause\n  { ann :: a,\n    body :: (AST.Parse.Err (Block a)),\n    extraChildren :: (AST.Parse.Err (CatchFormalParameter a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_203.\n      AST.Traversable1.Class.Traversable1 a_203\n    )\n\ninstance AST.Unmarshal.SymbolMatching CatchClause where\n  matchedSymbols _ = [166]\n  showFailure _ node_204 =\n    \"expected \"\n      GHC.Base.<> ( \"catch_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_204 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_204) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_205 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_206 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_207 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_208 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_205\n        c1_206 = TreeSitter.Node.nodeStartPoint node_204\n      TreeSitter.Node.TSPoint\n        r2_207\n        c2_208 = TreeSitter.Node.nodeEndPoint node_204\n\nderiving instance GHC.Classes.Eq a_209 => GHC.Classes.Eq (CatchClause a_209)\n\nderiving instance GHC.Classes.Ord a_210 => GHC.Classes.Ord (CatchClause a_210)\n\nderiving instance GHC.Show.Show a_211 => GHC.Show.Show (CatchClause a_211)\n\ninstance AST.Unmarshal.Unmarshal CatchClause\n\ninstance Data.Foldable.Foldable CatchClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CatchClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CatchClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CatchFormalParameter a = CatchFormalParameter\n  { ann :: a,\n    name :: (AST.Parse.Err (Identifier a)),\n    dimensions :: (GHC.Maybe.Maybe (AST.Parse.Err (Dimensions a))),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((CatchType GHC.Generics.:+: Modifiers) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_212.\n      AST.Traversable1.Class.Traversable1 a_212\n    )\n\ninstance AST.Unmarshal.SymbolMatching CatchFormalParameter where\n  matchedSymbols _ = [167]\n  showFailure _ node_213 =\n    \"expected \"\n      GHC.Base.<> ( \"catch_formal_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_213 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_213) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_214 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_215 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_216 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_217 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_214\n        c1_215 = TreeSitter.Node.nodeStartPoint node_213\n      TreeSitter.Node.TSPoint\n        r2_216\n        c2_217 = TreeSitter.Node.nodeEndPoint node_213\n\nderiving instance GHC.Classes.Eq a_218 => GHC.Classes.Eq (CatchFormalParameter a_218)\n\nderiving instance GHC.Classes.Ord a_219 => GHC.Classes.Ord (CatchFormalParameter a_219)\n\nderiving instance GHC.Show.Show a_220 => GHC.Show.Show (CatchFormalParameter a_220)\n\ninstance AST.Unmarshal.Unmarshal CatchFormalParameter\n\ninstance Data.Foldable.Foldable CatchFormalParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CatchFormalParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CatchFormalParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CatchType a = CatchType\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (UnannotatedType a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_221.\n      AST.Traversable1.Class.Traversable1 a_221\n    )\n\ninstance AST.Unmarshal.SymbolMatching CatchType where\n  matchedSymbols _ = [168]\n  showFailure _ node_222 =\n    \"expected \"\n      GHC.Base.<> ( \"catch_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_222 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_222) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_223 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_224 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_225 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_226 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_223\n        c1_224 = TreeSitter.Node.nodeStartPoint node_222\n      TreeSitter.Node.TSPoint\n        r2_225\n        c2_226 = TreeSitter.Node.nodeEndPoint node_222\n\nderiving instance GHC.Classes.Eq a_227 => GHC.Classes.Eq (CatchType a_227)\n\nderiving instance GHC.Classes.Ord a_228 => GHC.Classes.Ord (CatchType a_228)\n\nderiving instance GHC.Show.Show a_229 => GHC.Show.Show (CatchType a_229)\n\ninstance AST.Unmarshal.Unmarshal CatchType\n\ninstance Data.Foldable.Foldable CatchType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CatchType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CatchType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ClassBody a = ClassBody\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((AnnotationTypeDeclaration GHC.Generics.:+: Block GHC.Generics.:+: ClassDeclaration GHC.Generics.:+: ConstructorDeclaration GHC.Generics.:+: EnumDeclaration GHC.Generics.:+: FieldDeclaration GHC.Generics.:+: InterfaceDeclaration GHC.Generics.:+: MethodDeclaration GHC.Generics.:+: StaticInitializer) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_230.\n      AST.Traversable1.Class.Traversable1 a_230\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClassBody where\n  matchedSymbols _ = [205]\n  showFailure _ node_231 =\n    \"expected \"\n      GHC.Base.<> ( \"class_body\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_231 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_231) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_232 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_233 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_234 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_235 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_232\n        c1_233 = TreeSitter.Node.nodeStartPoint node_231\n      TreeSitter.Node.TSPoint\n        r2_234\n        c2_235 = TreeSitter.Node.nodeEndPoint node_231\n\nderiving instance GHC.Classes.Eq a_236 => GHC.Classes.Eq (ClassBody a_236)\n\nderiving instance GHC.Classes.Ord a_237 => GHC.Classes.Ord (ClassBody a_237)\n\nderiving instance GHC.Show.Show a_238 => GHC.Show.Show (ClassBody a_238)\n\ninstance AST.Unmarshal.Unmarshal ClassBody\n\ninstance Data.Foldable.Foldable ClassBody where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClassBody where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClassBody where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ClassDeclaration a = ClassDeclaration\n  { ann :: a,\n    body :: (AST.Parse.Err (ClassBody a)),\n    interfaces :: (GHC.Maybe.Maybe (AST.Parse.Err (SuperInterfaces a))),\n    name :: (AST.Parse.Err (Identifier a)),\n    superclass :: (GHC.Maybe.Maybe (AST.Parse.Err (Superclass a))),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_239.\n      AST.Traversable1.Class.Traversable1 a_239\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClassDeclaration where\n  matchedSymbols _ = [197]\n  showFailure _ node_240 =\n    \"expected \"\n      GHC.Base.<> ( \"class_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_240 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_240) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_241 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_242 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_243 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_244 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_241\n        c1_242 = TreeSitter.Node.nodeStartPoint node_240\n      TreeSitter.Node.TSPoint\n        r2_243\n        c2_244 = TreeSitter.Node.nodeEndPoint node_240\n\nderiving instance GHC.Classes.Eq a_245 => GHC.Classes.Eq (ClassDeclaration a_245)\n\nderiving instance GHC.Classes.Ord a_246 => GHC.Classes.Ord (ClassDeclaration a_246)\n\nderiving instance GHC.Show.Show a_247 => GHC.Show.Show (ClassDeclaration a_247)\n\ninstance AST.Unmarshal.Unmarshal ClassDeclaration\n\ninstance Data.Foldable.Foldable ClassDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClassDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClassDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ClassLiteral a = ClassLiteral\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((BooleanType GHC.Generics.:+: FloatingPointType GHC.Generics.:+: Identifier GHC.Generics.:+: IntegralType GHC.Generics.:+: ScopedIdentifier GHC.Generics.:+: VoidType) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_248.\n      AST.Traversable1.Class.Traversable1 a_248\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClassLiteral where\n  matchedSymbols _ = [139]\n  showFailure _ node_249 =\n    \"expected \"\n      GHC.Base.<> ( \"class_literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_249 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_249) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_250 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_251 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_252 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_253 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_250\n        c1_251 = TreeSitter.Node.nodeStartPoint node_249\n      TreeSitter.Node.TSPoint\n        r2_252\n        c2_253 = TreeSitter.Node.nodeEndPoint node_249\n\nderiving instance GHC.Classes.Eq a_254 => GHC.Classes.Eq (ClassLiteral a_254)\n\nderiving instance GHC.Classes.Ord a_255 => GHC.Classes.Ord (ClassLiteral a_255)\n\nderiving instance GHC.Show.Show a_256 => GHC.Show.Show (ClassLiteral a_256)\n\ninstance AST.Unmarshal.Unmarshal ClassLiteral\n\ninstance Data.Foldable.Foldable ClassLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClassLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClassLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ConstantDeclaration a = ConstantDeclaration\n  { ann :: a,\n    declarator :: (GHC.Base.NonEmpty (AST.Parse.Err (VariableDeclarator a))),\n    type' :: (AST.Parse.Err (UnannotatedType a)),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_257.\n      AST.Traversable1.Class.Traversable1 a_257\n    )\n\ninstance AST.Unmarshal.SymbolMatching ConstantDeclaration where\n  matchedSymbols _ = [220]\n  showFailure _ node_258 =\n    \"expected \"\n      GHC.Base.<> ( \"constant_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_258 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_258) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_259 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_260 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_261 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_262 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_259\n        c1_260 = TreeSitter.Node.nodeStartPoint node_258\n      TreeSitter.Node.TSPoint\n        r2_261\n        c2_262 = TreeSitter.Node.nodeEndPoint node_258\n\nderiving instance GHC.Classes.Eq a_263 => GHC.Classes.Eq (ConstantDeclaration a_263)\n\nderiving instance GHC.Classes.Ord a_264 => GHC.Classes.Ord (ConstantDeclaration a_264)\n\nderiving instance GHC.Show.Show a_265 => GHC.Show.Show (ConstantDeclaration a_265)\n\ninstance AST.Unmarshal.Unmarshal ConstantDeclaration\n\ninstance Data.Foldable.Foldable ConstantDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ConstantDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ConstantDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ConstructorBody a = ConstructorBody\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: ExplicitConstructorInvocation) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_266.\n      AST.Traversable1.Class.Traversable1 a_266\n    )\n\ninstance AST.Unmarshal.SymbolMatching ConstructorBody where\n  matchedSymbols _ = [209]\n  showFailure _ node_267 =\n    \"expected \"\n      GHC.Base.<> ( \"constructor_body\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_267 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_267) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_268 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_269 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_270 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_271 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_268\n        c1_269 = TreeSitter.Node.nodeStartPoint node_267\n      TreeSitter.Node.TSPoint\n        r2_270\n        c2_271 = TreeSitter.Node.nodeEndPoint node_267\n\nderiving instance GHC.Classes.Eq a_272 => GHC.Classes.Eq (ConstructorBody a_272)\n\nderiving instance GHC.Classes.Ord a_273 => GHC.Classes.Ord (ConstructorBody a_273)\n\nderiving instance GHC.Show.Show a_274 => GHC.Show.Show (ConstructorBody a_274)\n\ninstance AST.Unmarshal.Unmarshal ConstructorBody\n\ninstance Data.Foldable.Foldable ConstructorBody where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ConstructorBody where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ConstructorBody where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ConstructorDeclaration a = ConstructorDeclaration\n  { ann :: a,\n    body :: (AST.Parse.Err (ConstructorBody a)),\n    typeParamaters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    name :: (AST.Parse.Err (Identifier a)),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    extraChildren :: ([AST.Parse.Err ((Modifiers GHC.Generics.:+: Throws) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_275.\n      AST.Traversable1.Class.Traversable1 a_275\n    )\n\ninstance AST.Unmarshal.SymbolMatching ConstructorDeclaration where\n  matchedSymbols _ = [207]\n  showFailure _ node_276 =\n    \"expected \"\n      GHC.Base.<> ( \"constructor_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_276 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_276) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_277 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_278 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_279 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_280 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_277\n        c1_278 = TreeSitter.Node.nodeStartPoint node_276\n      TreeSitter.Node.TSPoint\n        r2_279\n        c2_280 = TreeSitter.Node.nodeEndPoint node_276\n\nderiving instance GHC.Classes.Eq a_281 => GHC.Classes.Eq (ConstructorDeclaration a_281)\n\nderiving instance GHC.Classes.Ord a_282 => GHC.Classes.Ord (ConstructorDeclaration a_282)\n\nderiving instance GHC.Show.Show a_283 => GHC.Show.Show (ConstructorDeclaration a_283)\n\ninstance AST.Unmarshal.Unmarshal ConstructorDeclaration\n\ninstance Data.Foldable.Foldable ConstructorDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ConstructorDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ConstructorDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ContinueStatement a = ContinueStatement\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_284.\n      AST.Traversable1.Class.Traversable1 a_284\n    )\n\ninstance AST.Unmarshal.SymbolMatching ContinueStatement where\n  matchedSymbols _ = [161]\n  showFailure _ node_285 =\n    \"expected \"\n      GHC.Base.<> ( \"continue_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_285 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_285) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_286 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_287 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_288 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_289 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_286\n        c1_287 = TreeSitter.Node.nodeStartPoint node_285\n      TreeSitter.Node.TSPoint\n        r2_288\n        c2_289 = TreeSitter.Node.nodeEndPoint node_285\n\nderiving instance GHC.Classes.Eq a_290 => GHC.Classes.Eq (ContinueStatement a_290)\n\nderiving instance GHC.Classes.Ord a_291 => GHC.Classes.Ord (ContinueStatement a_291)\n\nderiving instance GHC.Show.Show a_292 => GHC.Show.Show (ContinueStatement a_292)\n\ninstance AST.Unmarshal.Unmarshal ContinueStatement\n\ninstance Data.Foldable.Foldable ContinueStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ContinueStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ContinueStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Dimensions a = Dimensions\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Annotation GHC.Generics.:+: MarkerAnnotation) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_293.\n      AST.Traversable1.Class.Traversable1 a_293\n    )\n\ninstance AST.Unmarshal.SymbolMatching Dimensions where\n  matchedSymbols _ = [150]\n  showFailure _ node_294 =\n    \"expected \"\n      GHC.Base.<> ( \"dimensions\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_294 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_294) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_295 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_296 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_297 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_298 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_295\n        c1_296 = TreeSitter.Node.nodeStartPoint node_294\n      TreeSitter.Node.TSPoint\n        r2_297\n        c2_298 = TreeSitter.Node.nodeEndPoint node_294\n\nderiving instance GHC.Classes.Eq a_299 => GHC.Classes.Eq (Dimensions a_299)\n\nderiving instance GHC.Classes.Ord a_300 => GHC.Classes.Ord (Dimensions a_300)\n\nderiving instance GHC.Show.Show a_301 => GHC.Show.Show (Dimensions a_301)\n\ninstance AST.Unmarshal.Unmarshal Dimensions\n\ninstance Data.Foldable.Foldable Dimensions where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Dimensions where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Dimensions where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DimensionsExpr a = DimensionsExpr\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: Annotation GHC.Generics.:+: MarkerAnnotation) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_302.\n      AST.Traversable1.Class.Traversable1 a_302\n    )\n\ninstance AST.Unmarshal.SymbolMatching DimensionsExpr where\n  matchedSymbols _ = [137]\n  showFailure _ node_303 =\n    \"expected \"\n      GHC.Base.<> ( \"dimensions_expr\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_303 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_303) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_304 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_305 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_306 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_307 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_304\n        c1_305 = TreeSitter.Node.nodeStartPoint node_303\n      TreeSitter.Node.TSPoint\n        r2_306\n        c2_307 = TreeSitter.Node.nodeEndPoint node_303\n\nderiving instance GHC.Classes.Eq a_308 => GHC.Classes.Eq (DimensionsExpr a_308)\n\nderiving instance GHC.Classes.Ord a_309 => GHC.Classes.Ord (DimensionsExpr a_309)\n\nderiving instance GHC.Show.Show a_310 => GHC.Show.Show (DimensionsExpr a_310)\n\ninstance AST.Unmarshal.Unmarshal DimensionsExpr\n\ninstance Data.Foldable.Foldable DimensionsExpr where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DimensionsExpr where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DimensionsExpr where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DoStatement a = DoStatement\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: Statement) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_311.\n      AST.Traversable1.Class.Traversable1 a_311\n    )\n\ninstance AST.Unmarshal.SymbolMatching DoStatement where\n  matchedSymbols _ = [159]\n  showFailure _ node_312 =\n    \"expected \"\n      GHC.Base.<> ( \"do_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_312 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_312) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_313 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_314 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_315 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_316 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_313\n        c1_314 = TreeSitter.Node.nodeStartPoint node_312\n      TreeSitter.Node.TSPoint\n        r2_315\n        c2_316 = TreeSitter.Node.nodeEndPoint node_312\n\nderiving instance GHC.Classes.Eq a_317 => GHC.Classes.Eq (DoStatement a_317)\n\nderiving instance GHC.Classes.Ord a_318 => GHC.Classes.Ord (DoStatement a_318)\n\nderiving instance GHC.Show.Show a_319 => GHC.Show.Show (DoStatement a_319)\n\ninstance AST.Unmarshal.Unmarshal DoStatement\n\ninstance Data.Foldable.Foldable DoStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DoStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DoStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ElementValueArrayInitializer a = ElementValueArrayInitializer\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: Annotation GHC.Generics.:+: ElementValueArrayInitializer GHC.Generics.:+: MarkerAnnotation) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_320.\n      AST.Traversable1.Class.Traversable1 a_320\n    )\n\ninstance AST.Unmarshal.SymbolMatching ElementValueArrayInitializer where\n  matchedSymbols _ = [184]\n  showFailure _ node_321 =\n    \"expected \"\n      GHC.Base.<> ( \"element_value_array_initializer\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_321 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_321) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_322 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_323 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_324 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_325 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_322\n        c1_323 = TreeSitter.Node.nodeStartPoint node_321\n      TreeSitter.Node.TSPoint\n        r2_324\n        c2_325 = TreeSitter.Node.nodeEndPoint node_321\n\nderiving instance GHC.Classes.Eq a_326 => GHC.Classes.Eq (ElementValueArrayInitializer a_326)\n\nderiving instance GHC.Classes.Ord a_327 => GHC.Classes.Ord (ElementValueArrayInitializer a_327)\n\nderiving instance GHC.Show.Show a_328 => GHC.Show.Show (ElementValueArrayInitializer a_328)\n\ninstance AST.Unmarshal.Unmarshal ElementValueArrayInitializer\n\ninstance Data.Foldable.Foldable ElementValueArrayInitializer where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ElementValueArrayInitializer where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ElementValueArrayInitializer where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ElementValuePair a = ElementValuePair\n  { ann :: a,\n    value :: (AST.Parse.Err ((Expression GHC.Generics.:+: Annotation GHC.Generics.:+: ElementValueArrayInitializer GHC.Generics.:+: MarkerAnnotation) a)),\n    key :: (AST.Parse.Err (Identifier a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_329.\n      AST.Traversable1.Class.Traversable1 a_329\n    )\n\ninstance AST.Unmarshal.SymbolMatching ElementValuePair where\n  matchedSymbols _ = [182]\n  showFailure _ node_330 =\n    \"expected \"\n      GHC.Base.<> ( \"element_value_pair\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_330 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_330) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_331 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_332 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_333 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_334 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_331\n        c1_332 = TreeSitter.Node.nodeStartPoint node_330\n      TreeSitter.Node.TSPoint\n        r2_333\n        c2_334 = TreeSitter.Node.nodeEndPoint node_330\n\nderiving instance GHC.Classes.Eq a_335 => GHC.Classes.Eq (ElementValuePair a_335)\n\nderiving instance GHC.Classes.Ord a_336 => GHC.Classes.Ord (ElementValuePair a_336)\n\nderiving instance GHC.Show.Show a_337 => GHC.Show.Show (ElementValuePair a_337)\n\ninstance AST.Unmarshal.Unmarshal ElementValuePair\n\ninstance Data.Foldable.Foldable ElementValuePair where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ElementValuePair where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ElementValuePair where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata EnhancedForStatement a = EnhancedForStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (Statement a)),\n    value :: (AST.Parse.Err (Expression a)),\n    name :: (AST.Parse.Err (Identifier a)),\n    type' :: (AST.Parse.Err (UnannotatedType a)),\n    dimensions :: (GHC.Maybe.Maybe (AST.Parse.Err (Dimensions a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_338.\n      AST.Traversable1.Class.Traversable1 a_338\n    )\n\ninstance AST.Unmarshal.SymbolMatching EnhancedForStatement where\n  matchedSymbols _ = [177]\n  showFailure _ node_339 =\n    \"expected \"\n      GHC.Base.<> ( \"enhanced_for_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_339 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_339) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_340 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_341 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_342 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_343 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_340\n        c1_341 = TreeSitter.Node.nodeStartPoint node_339\n      TreeSitter.Node.TSPoint\n        r2_342\n        c2_343 = TreeSitter.Node.nodeEndPoint node_339\n\nderiving instance GHC.Classes.Eq a_344 => GHC.Classes.Eq (EnhancedForStatement a_344)\n\nderiving instance GHC.Classes.Ord a_345 => GHC.Classes.Ord (EnhancedForStatement a_345)\n\nderiving instance GHC.Show.Show a_346 => GHC.Show.Show (EnhancedForStatement a_346)\n\ninstance AST.Unmarshal.Unmarshal EnhancedForStatement\n\ninstance Data.Foldable.Foldable EnhancedForStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EnhancedForStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EnhancedForStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata EnumBody a = EnumBody\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((EnumBodyDeclarations GHC.Generics.:+: EnumConstant) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_347.\n      AST.Traversable1.Class.Traversable1 a_347\n    )\n\ninstance AST.Unmarshal.SymbolMatching EnumBody where\n  matchedSymbols _ = [194]\n  showFailure _ node_348 =\n    \"expected \"\n      GHC.Base.<> ( \"enum_body\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_348 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_348) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_349 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_350 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_351 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_352 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_349\n        c1_350 = TreeSitter.Node.nodeStartPoint node_348\n      TreeSitter.Node.TSPoint\n        r2_351\n        c2_352 = TreeSitter.Node.nodeEndPoint node_348\n\nderiving instance GHC.Classes.Eq a_353 => GHC.Classes.Eq (EnumBody a_353)\n\nderiving instance GHC.Classes.Ord a_354 => GHC.Classes.Ord (EnumBody a_354)\n\nderiving instance GHC.Show.Show a_355 => GHC.Show.Show (EnumBody a_355)\n\ninstance AST.Unmarshal.Unmarshal EnumBody\n\ninstance Data.Foldable.Foldable EnumBody where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EnumBody where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EnumBody where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata EnumBodyDeclarations a = EnumBodyDeclarations\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((AnnotationTypeDeclaration GHC.Generics.:+: Block GHC.Generics.:+: ClassDeclaration GHC.Generics.:+: ConstructorDeclaration GHC.Generics.:+: EnumDeclaration GHC.Generics.:+: FieldDeclaration GHC.Generics.:+: InterfaceDeclaration GHC.Generics.:+: MethodDeclaration GHC.Generics.:+: StaticInitializer) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_356.\n      AST.Traversable1.Class.Traversable1 a_356\n    )\n\ninstance AST.Unmarshal.SymbolMatching EnumBodyDeclarations where\n  matchedSymbols _ = [195]\n  showFailure _ node_357 =\n    \"expected \"\n      GHC.Base.<> ( \"enum_body_declarations\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_357 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_357) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_358 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_359 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_360 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_361 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_358\n        c1_359 = TreeSitter.Node.nodeStartPoint node_357\n      TreeSitter.Node.TSPoint\n        r2_360\n        c2_361 = TreeSitter.Node.nodeEndPoint node_357\n\nderiving instance GHC.Classes.Eq a_362 => GHC.Classes.Eq (EnumBodyDeclarations a_362)\n\nderiving instance GHC.Classes.Ord a_363 => GHC.Classes.Ord (EnumBodyDeclarations a_363)\n\nderiving instance GHC.Show.Show a_364 => GHC.Show.Show (EnumBodyDeclarations a_364)\n\ninstance AST.Unmarshal.Unmarshal EnumBodyDeclarations\n\ninstance Data.Foldable.Foldable EnumBodyDeclarations where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EnumBodyDeclarations where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EnumBodyDeclarations where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata EnumConstant a = EnumConstant\n  { ann :: a,\n    body :: (GHC.Maybe.Maybe (AST.Parse.Err (ClassBody a))),\n    arguments :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a))),\n    name :: (AST.Parse.Err (Identifier a)),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_365.\n      AST.Traversable1.Class.Traversable1 a_365\n    )\n\ninstance AST.Unmarshal.SymbolMatching EnumConstant where\n  matchedSymbols _ = [196]\n  showFailure _ node_366 =\n    \"expected \"\n      GHC.Base.<> ( \"enum_constant\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_366 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_366) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_367 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_368 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_369 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_370 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_367\n        c1_368 = TreeSitter.Node.nodeStartPoint node_366\n      TreeSitter.Node.TSPoint\n        r2_369\n        c2_370 = TreeSitter.Node.nodeEndPoint node_366\n\nderiving instance GHC.Classes.Eq a_371 => GHC.Classes.Eq (EnumConstant a_371)\n\nderiving instance GHC.Classes.Ord a_372 => GHC.Classes.Ord (EnumConstant a_372)\n\nderiving instance GHC.Show.Show a_373 => GHC.Show.Show (EnumConstant a_373)\n\ninstance AST.Unmarshal.Unmarshal EnumConstant\n\ninstance Data.Foldable.Foldable EnumConstant where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EnumConstant where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EnumConstant where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata EnumDeclaration a = EnumDeclaration\n  { ann :: a,\n    body :: (AST.Parse.Err (EnumBody a)),\n    interfaces :: (GHC.Maybe.Maybe (AST.Parse.Err (SuperInterfaces a))),\n    name :: (AST.Parse.Err (Identifier a)),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_374.\n      AST.Traversable1.Class.Traversable1 a_374\n    )\n\ninstance AST.Unmarshal.SymbolMatching EnumDeclaration where\n  matchedSymbols _ = [193]\n  showFailure _ node_375 =\n    \"expected \"\n      GHC.Base.<> ( \"enum_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_375 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_375) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_376 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_377 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_378 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_379 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_376\n        c1_377 = TreeSitter.Node.nodeStartPoint node_375\n      TreeSitter.Node.TSPoint\n        r2_378\n        c2_379 = TreeSitter.Node.nodeEndPoint node_375\n\nderiving instance GHC.Classes.Eq a_380 => GHC.Classes.Eq (EnumDeclaration a_380)\n\nderiving instance GHC.Classes.Ord a_381 => GHC.Classes.Ord (EnumDeclaration a_381)\n\nderiving instance GHC.Show.Show a_382 => GHC.Show.Show (EnumDeclaration a_382)\n\ninstance AST.Unmarshal.Unmarshal EnumDeclaration\n\ninstance Data.Foldable.Foldable EnumDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EnumDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EnumDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExplicitConstructorInvocation a = ExplicitConstructorInvocation\n  { ann :: a,\n    arguments :: (AST.Parse.Err (ArgumentList a)),\n    typeArguments :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeArguments a))),\n    object :: (GHC.Maybe.Maybe (AST.Parse.Err ((Primary GHC.Generics.:+: Identifier GHC.Generics.:+: ScopedIdentifier) a))),\n    constructor :: (AST.Parse.Err ((Super GHC.Generics.:+: This) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_383.\n      AST.Traversable1.Class.Traversable1 a_383\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExplicitConstructorInvocation where\n  matchedSymbols _ = [210]\n  showFailure _ node_384 =\n    \"expected \"\n      GHC.Base.<> ( \"explicit_constructor_invocation\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_384 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_384) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_385 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_386 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_387 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_388 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_385\n        c1_386 = TreeSitter.Node.nodeStartPoint node_384\n      TreeSitter.Node.TSPoint\n        r2_387\n        c2_388 = TreeSitter.Node.nodeEndPoint node_384\n\nderiving instance GHC.Classes.Eq a_389 => GHC.Classes.Eq (ExplicitConstructorInvocation a_389)\n\nderiving instance GHC.Classes.Ord a_390 => GHC.Classes.Ord (ExplicitConstructorInvocation a_390)\n\nderiving instance GHC.Show.Show a_391 => GHC.Show.Show (ExplicitConstructorInvocation a_391)\n\ninstance AST.Unmarshal.Unmarshal ExplicitConstructorInvocation\n\ninstance Data.Foldable.Foldable ExplicitConstructorInvocation where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExplicitConstructorInvocation where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExplicitConstructorInvocation where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExpressionStatement a = ExpressionStatement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_392.\n      AST.Traversable1.Class.Traversable1 a_392\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExpressionStatement where\n  matchedSymbols _ = [153]\n  showFailure _ node_393 =\n    \"expected \"\n      GHC.Base.<> ( \"expression_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_393 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_393) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_394 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_395 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_396 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_397 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_394\n        c1_395 = TreeSitter.Node.nodeStartPoint node_393\n      TreeSitter.Node.TSPoint\n        r2_396\n        c2_397 = TreeSitter.Node.nodeEndPoint node_393\n\nderiving instance GHC.Classes.Eq a_398 => GHC.Classes.Eq (ExpressionStatement a_398)\n\nderiving instance GHC.Classes.Ord a_399 => GHC.Classes.Ord (ExpressionStatement a_399)\n\nderiving instance GHC.Show.Show a_400 => GHC.Show.Show (ExpressionStatement a_400)\n\ninstance AST.Unmarshal.Unmarshal ExpressionStatement\n\ninstance Data.Foldable.Foldable ExpressionStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExpressionStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExpressionStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExtendsInterfaces a = ExtendsInterfaces\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (InterfaceTypeList a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_401.\n      AST.Traversable1.Class.Traversable1 a_401\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExtendsInterfaces where\n  matchedSymbols _ = [218]\n  showFailure _ node_402 =\n    \"expected \"\n      GHC.Base.<> ( \"extends_interfaces\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_402 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_402) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_403 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_404 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_405 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_406 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_403\n        c1_404 = TreeSitter.Node.nodeStartPoint node_402\n      TreeSitter.Node.TSPoint\n        r2_405\n        c2_406 = TreeSitter.Node.nodeEndPoint node_402\n\nderiving instance GHC.Classes.Eq a_407 => GHC.Classes.Eq (ExtendsInterfaces a_407)\n\nderiving instance GHC.Classes.Ord a_408 => GHC.Classes.Ord (ExtendsInterfaces a_408)\n\nderiving instance GHC.Show.Show a_409 => GHC.Show.Show (ExtendsInterfaces a_409)\n\ninstance AST.Unmarshal.Unmarshal ExtendsInterfaces\n\ninstance Data.Foldable.Foldable ExtendsInterfaces where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExtendsInterfaces where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExtendsInterfaces where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FieldAccess a = FieldAccess\n  { ann :: a,\n    field :: (AST.Parse.Err ((Identifier GHC.Generics.:+: This) a)),\n    object :: (AST.Parse.Err ((Primary GHC.Generics.:+: Identifier GHC.Generics.:+: ScopedIdentifier GHC.Generics.:+: Super) a)),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Super a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_410.\n      AST.Traversable1.Class.Traversable1 a_410\n    )\n\ninstance AST.Unmarshal.SymbolMatching FieldAccess where\n  matchedSymbols _ = [142]\n  showFailure _ node_411 =\n    \"expected \"\n      GHC.Base.<> ( \"field_access\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_411 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_411) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_412 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_413 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_414 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_415 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_412\n        c1_413 = TreeSitter.Node.nodeStartPoint node_411\n      TreeSitter.Node.TSPoint\n        r2_414\n        c2_415 = TreeSitter.Node.nodeEndPoint node_411\n\nderiving instance GHC.Classes.Eq a_416 => GHC.Classes.Eq (FieldAccess a_416)\n\nderiving instance GHC.Classes.Ord a_417 => GHC.Classes.Ord (FieldAccess a_417)\n\nderiving instance GHC.Show.Show a_418 => GHC.Show.Show (FieldAccess a_418)\n\ninstance AST.Unmarshal.Unmarshal FieldAccess\n\ninstance Data.Foldable.Foldable FieldAccess where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FieldAccess where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FieldAccess where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FieldDeclaration a = FieldDeclaration\n  { ann :: a,\n    declarator :: (GHC.Base.NonEmpty (AST.Parse.Err (VariableDeclarator a))),\n    type' :: (AST.Parse.Err (UnannotatedType a)),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_419.\n      AST.Traversable1.Class.Traversable1 a_419\n    )\n\ninstance AST.Unmarshal.SymbolMatching FieldDeclaration where\n  matchedSymbols _ = [212]\n  showFailure _ node_420 =\n    \"expected \"\n      GHC.Base.<> ( \"field_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_420 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_420) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_421 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_422 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_423 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_424 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_421\n        c1_422 = TreeSitter.Node.nodeStartPoint node_420\n      TreeSitter.Node.TSPoint\n        r2_423\n        c2_424 = TreeSitter.Node.nodeEndPoint node_420\n\nderiving instance GHC.Classes.Eq a_425 => GHC.Classes.Eq (FieldDeclaration a_425)\n\nderiving instance GHC.Classes.Ord a_426 => GHC.Classes.Ord (FieldDeclaration a_426)\n\nderiving instance GHC.Show.Show a_427 => GHC.Show.Show (FieldDeclaration a_427)\n\ninstance AST.Unmarshal.Unmarshal FieldDeclaration\n\ninstance Data.Foldable.Foldable FieldDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FieldDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FieldDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FinallyClause a = FinallyClause\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Block a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_428.\n      AST.Traversable1.Class.Traversable1 a_428\n    )\n\ninstance AST.Unmarshal.SymbolMatching FinallyClause where\n  matchedSymbols _ = [169]\n  showFailure _ node_429 =\n    \"expected \"\n      GHC.Base.<> ( \"finally_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_429 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_429) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_430 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_431 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_432 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_433 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_430\n        c1_431 = TreeSitter.Node.nodeStartPoint node_429\n      TreeSitter.Node.TSPoint\n        r2_432\n        c2_433 = TreeSitter.Node.nodeEndPoint node_429\n\nderiving instance GHC.Classes.Eq a_434 => GHC.Classes.Eq (FinallyClause a_434)\n\nderiving instance GHC.Classes.Ord a_435 => GHC.Classes.Ord (FinallyClause a_435)\n\nderiving instance GHC.Show.Show a_436 => GHC.Show.Show (FinallyClause a_436)\n\ninstance AST.Unmarshal.Unmarshal FinallyClause\n\ninstance Data.Foldable.Foldable FinallyClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FinallyClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FinallyClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FloatingPointType a = FloatingPointType {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_437.\n      AST.Traversable1.Class.Traversable1 a_437\n    )\n\ninstance AST.Unmarshal.SymbolMatching FloatingPointType where\n  matchedSymbols _ = [232]\n  showFailure _ node_438 =\n    \"expected \"\n      GHC.Base.<> ( \"floating_point_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_438 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_438) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_439 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_440 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_441 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_442 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_439\n        c1_440 = TreeSitter.Node.nodeStartPoint node_438\n      TreeSitter.Node.TSPoint\n        r2_441\n        c2_442 = TreeSitter.Node.nodeEndPoint node_438\n\nderiving instance GHC.Classes.Eq a_443 => GHC.Classes.Eq (FloatingPointType a_443)\n\nderiving instance GHC.Classes.Ord a_444 => GHC.Classes.Ord (FloatingPointType a_444)\n\nderiving instance GHC.Show.Show a_445 => GHC.Show.Show (FloatingPointType a_445)\n\ninstance AST.Unmarshal.Unmarshal FloatingPointType\n\ninstance Data.Foldable.Foldable FloatingPointType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FloatingPointType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FloatingPointType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ForInit a = ForInit\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: LocalVariableDeclaration) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_446.\n      AST.Traversable1.Class.Traversable1 a_446\n    )\n\ninstance AST.Unmarshal.SymbolMatching ForInit where\n  matchedSymbols _ = [176]\n  showFailure _ node_447 =\n    \"expected \"\n      GHC.Base.<> ( \"for_init\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_447 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_447) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_448 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_449 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_450 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_451 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_448\n        c1_449 = TreeSitter.Node.nodeStartPoint node_447\n      TreeSitter.Node.TSPoint\n        r2_450\n        c2_451 = TreeSitter.Node.nodeEndPoint node_447\n\nderiving instance GHC.Classes.Eq a_452 => GHC.Classes.Eq (ForInit a_452)\n\nderiving instance GHC.Classes.Ord a_453 => GHC.Classes.Ord (ForInit a_453)\n\nderiving instance GHC.Show.Show a_454 => GHC.Show.Show (ForInit a_454)\n\ninstance AST.Unmarshal.Unmarshal ForInit\n\ninstance Data.Foldable.Foldable ForInit where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ForInit where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ForInit where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ForStatement a = ForStatement\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: Statement GHC.Generics.:+: ForInit) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_455.\n      AST.Traversable1.Class.Traversable1 a_455\n    )\n\ninstance AST.Unmarshal.SymbolMatching ForStatement where\n  matchedSymbols _ = [175]\n  showFailure _ node_456 =\n    \"expected \"\n      GHC.Base.<> ( \"for_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_456 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_456) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_457 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_458 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_459 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_460 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_457\n        c1_458 = TreeSitter.Node.nodeStartPoint node_456\n      TreeSitter.Node.TSPoint\n        r2_459\n        c2_460 = TreeSitter.Node.nodeEndPoint node_456\n\nderiving instance GHC.Classes.Eq a_461 => GHC.Classes.Eq (ForStatement a_461)\n\nderiving instance GHC.Classes.Ord a_462 => GHC.Classes.Ord (ForStatement a_462)\n\nderiving instance GHC.Show.Show a_463 => GHC.Show.Show (ForStatement a_463)\n\ninstance AST.Unmarshal.Unmarshal ForStatement\n\ninstance Data.Foldable.Foldable ForStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ForStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ForStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FormalParameter a = FormalParameter\n  { ann :: a,\n    name :: (AST.Parse.Err (Identifier a)),\n    type' :: (AST.Parse.Err (UnannotatedType a)),\n    dimensions :: (GHC.Maybe.Maybe (AST.Parse.Err (Dimensions a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_464.\n      AST.Traversable1.Class.Traversable1 a_464\n    )\n\ninstance AST.Unmarshal.SymbolMatching FormalParameter where\n  matchedSymbols _ = [236]\n  showFailure _ node_465 =\n    \"expected \"\n      GHC.Base.<> ( \"formal_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_465 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_465) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_466 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_467 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_468 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_469 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_466\n        c1_467 = TreeSitter.Node.nodeStartPoint node_465\n      TreeSitter.Node.TSPoint\n        r2_468\n        c2_469 = TreeSitter.Node.nodeEndPoint node_465\n\nderiving instance GHC.Classes.Eq a_470 => GHC.Classes.Eq (FormalParameter a_470)\n\nderiving instance GHC.Classes.Ord a_471 => GHC.Classes.Ord (FormalParameter a_471)\n\nderiving instance GHC.Show.Show a_472 => GHC.Show.Show (FormalParameter a_472)\n\ninstance AST.Unmarshal.Unmarshal FormalParameter\n\ninstance Data.Foldable.Foldable FormalParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FormalParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FormalParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FormalParameters a = FormalParameters\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((FormalParameter GHC.Generics.:+: ReceiverParameter GHC.Generics.:+: SpreadParameter) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_473.\n      AST.Traversable1.Class.Traversable1 a_473\n    )\n\ninstance AST.Unmarshal.SymbolMatching FormalParameters where\n  matchedSymbols _ = [235]\n  showFailure _ node_474 =\n    \"expected \"\n      GHC.Base.<> ( \"formal_parameters\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_474 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_474) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_475 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_476 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_477 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_478 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_475\n        c1_476 = TreeSitter.Node.nodeStartPoint node_474\n      TreeSitter.Node.TSPoint\n        r2_477\n        c2_478 = TreeSitter.Node.nodeEndPoint node_474\n\nderiving instance GHC.Classes.Eq a_479 => GHC.Classes.Eq (FormalParameters a_479)\n\nderiving instance GHC.Classes.Ord a_480 => GHC.Classes.Ord (FormalParameters a_480)\n\nderiving instance GHC.Show.Show a_481 => GHC.Show.Show (FormalParameters a_481)\n\ninstance AST.Unmarshal.Unmarshal FormalParameters\n\ninstance Data.Foldable.Foldable FormalParameters where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FormalParameters where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FormalParameters where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata GenericType a = GenericType\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ScopedTypeIdentifier GHC.Generics.:+: TypeArguments GHC.Generics.:+: TypeIdentifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_482.\n      AST.Traversable1.Class.Traversable1 a_482\n    )\n\ninstance AST.Unmarshal.SymbolMatching GenericType where\n  matchedSymbols _ = [229]\n  showFailure _ node_483 =\n    \"expected \"\n      GHC.Base.<> ( \"generic_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_483 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_483) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_484 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_485 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_486 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_487 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_484\n        c1_485 = TreeSitter.Node.nodeStartPoint node_483\n      TreeSitter.Node.TSPoint\n        r2_486\n        c2_487 = TreeSitter.Node.nodeEndPoint node_483\n\nderiving instance GHC.Classes.Eq a_488 => GHC.Classes.Eq (GenericType a_488)\n\nderiving instance GHC.Classes.Ord a_489 => GHC.Classes.Ord (GenericType a_489)\n\nderiving instance GHC.Show.Show a_490 => GHC.Show.Show (GenericType a_490)\n\ninstance AST.Unmarshal.Unmarshal GenericType\n\ninstance Data.Foldable.Foldable GenericType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor GenericType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable GenericType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IfStatement a = IfStatement\n  { ann :: a,\n    alternative :: (GHC.Maybe.Maybe (AST.Parse.Err (Statement a))),\n    consequence :: (AST.Parse.Err (Statement a)),\n    condition :: (AST.Parse.Err (ParenthesizedExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_491.\n      AST.Traversable1.Class.Traversable1 a_491\n    )\n\ninstance AST.Unmarshal.SymbolMatching IfStatement where\n  matchedSymbols _ = [173]\n  showFailure _ node_492 =\n    \"expected \"\n      GHC.Base.<> ( \"if_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_492 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_492) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_493 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_494 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_495 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_496 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_493\n        c1_494 = TreeSitter.Node.nodeStartPoint node_492\n      TreeSitter.Node.TSPoint\n        r2_495\n        c2_496 = TreeSitter.Node.nodeEndPoint node_492\n\nderiving instance GHC.Classes.Eq a_497 => GHC.Classes.Eq (IfStatement a_497)\n\nderiving instance GHC.Classes.Ord a_498 => GHC.Classes.Ord (IfStatement a_498)\n\nderiving instance GHC.Show.Show a_499 => GHC.Show.Show (IfStatement a_499)\n\ninstance AST.Unmarshal.Unmarshal IfStatement\n\ninstance Data.Foldable.Foldable IfStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IfStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IfStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImportDeclaration a = ImportDeclaration\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Asterisk GHC.Generics.:+: Identifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_500.\n      AST.Traversable1.Class.Traversable1 a_500\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImportDeclaration where\n  matchedSymbols _ = [191]\n  showFailure _ node_501 =\n    \"expected \"\n      GHC.Base.<> ( \"import_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_501 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_501) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_502 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_503 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_504 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_505 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_502\n        c1_503 = TreeSitter.Node.nodeStartPoint node_501\n      TreeSitter.Node.TSPoint\n        r2_504\n        c2_505 = TreeSitter.Node.nodeEndPoint node_501\n\nderiving instance GHC.Classes.Eq a_506 => GHC.Classes.Eq (ImportDeclaration a_506)\n\nderiving instance GHC.Classes.Ord a_507 => GHC.Classes.Ord (ImportDeclaration a_507)\n\nderiving instance GHC.Show.Show a_508 => GHC.Show.Show (ImportDeclaration a_508)\n\ninstance AST.Unmarshal.Unmarshal ImportDeclaration\n\ninstance Data.Foldable.Foldable ImportDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImportDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImportDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata InferredParameters a = InferredParameters\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Identifier a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_509.\n      AST.Traversable1.Class.Traversable1 a_509\n    )\n\ninstance AST.Unmarshal.SymbolMatching InferredParameters where\n  matchedSymbols _ = [131]\n  showFailure _ node_510 =\n    \"expected \"\n      GHC.Base.<> ( \"inferred_parameters\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_510 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_510) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_511 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_512 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_513 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_514 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_511\n        c1_512 = TreeSitter.Node.nodeStartPoint node_510\n      TreeSitter.Node.TSPoint\n        r2_513\n        c2_514 = TreeSitter.Node.nodeEndPoint node_510\n\nderiving instance GHC.Classes.Eq a_515 => GHC.Classes.Eq (InferredParameters a_515)\n\nderiving instance GHC.Classes.Ord a_516 => GHC.Classes.Ord (InferredParameters a_516)\n\nderiving instance GHC.Show.Show a_517 => GHC.Show.Show (InferredParameters a_517)\n\ninstance AST.Unmarshal.Unmarshal InferredParameters\n\ninstance Data.Foldable.Foldable InferredParameters where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor InferredParameters where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable InferredParameters where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata InstanceofExpression a = InstanceofExpression\n  { ann :: a,\n    left :: (AST.Parse.Err (Expression a)),\n    right :: (AST.Parse.Err (Type a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_518.\n      AST.Traversable1.Class.Traversable1 a_518\n    )\n\ninstance AST.Unmarshal.SymbolMatching InstanceofExpression where\n  matchedSymbols _ = [129]\n  showFailure _ node_519 =\n    \"expected \"\n      GHC.Base.<> ( \"instanceof_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_519 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_519) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_520 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_521 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_522 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_523 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_520\n        c1_521 = TreeSitter.Node.nodeStartPoint node_519\n      TreeSitter.Node.TSPoint\n        r2_522\n        c2_523 = TreeSitter.Node.nodeEndPoint node_519\n\nderiving instance GHC.Classes.Eq a_524 => GHC.Classes.Eq (InstanceofExpression a_524)\n\nderiving instance GHC.Classes.Ord a_525 => GHC.Classes.Ord (InstanceofExpression a_525)\n\nderiving instance GHC.Show.Show a_526 => GHC.Show.Show (InstanceofExpression a_526)\n\ninstance AST.Unmarshal.Unmarshal InstanceofExpression\n\ninstance Data.Foldable.Foldable InstanceofExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor InstanceofExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable InstanceofExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IntegralType a = IntegralType {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_527.\n      AST.Traversable1.Class.Traversable1 a_527\n    )\n\ninstance AST.Unmarshal.SymbolMatching IntegralType where\n  matchedSymbols _ = [231]\n  showFailure _ node_528 =\n    \"expected \"\n      GHC.Base.<> ( \"integral_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_528 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_528) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_529 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_530 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_531 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_532 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_529\n        c1_530 = TreeSitter.Node.nodeStartPoint node_528\n      TreeSitter.Node.TSPoint\n        r2_531\n        c2_532 = TreeSitter.Node.nodeEndPoint node_528\n\nderiving instance GHC.Classes.Eq a_533 => GHC.Classes.Eq (IntegralType a_533)\n\nderiving instance GHC.Classes.Ord a_534 => GHC.Classes.Ord (IntegralType a_534)\n\nderiving instance GHC.Show.Show a_535 => GHC.Show.Show (IntegralType a_535)\n\ninstance AST.Unmarshal.Unmarshal IntegralType\n\ninstance Data.Foldable.Foldable IntegralType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IntegralType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IntegralType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata InterfaceBody a = InterfaceBody\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((AnnotationTypeDeclaration GHC.Generics.:+: ClassDeclaration GHC.Generics.:+: ConstantDeclaration GHC.Generics.:+: EnumDeclaration GHC.Generics.:+: InterfaceDeclaration GHC.Generics.:+: MethodDeclaration) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_536.\n      AST.Traversable1.Class.Traversable1 a_536\n    )\n\ninstance AST.Unmarshal.SymbolMatching InterfaceBody where\n  matchedSymbols _ = [219]\n  showFailure _ node_537 =\n    \"expected \"\n      GHC.Base.<> ( \"interface_body\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_537 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_537) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_538 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_539 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_540 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_541 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_538\n        c1_539 = TreeSitter.Node.nodeStartPoint node_537\n      TreeSitter.Node.TSPoint\n        r2_540\n        c2_541 = TreeSitter.Node.nodeEndPoint node_537\n\nderiving instance GHC.Classes.Eq a_542 => GHC.Classes.Eq (InterfaceBody a_542)\n\nderiving instance GHC.Classes.Ord a_543 => GHC.Classes.Ord (InterfaceBody a_543)\n\nderiving instance GHC.Show.Show a_544 => GHC.Show.Show (InterfaceBody a_544)\n\ninstance AST.Unmarshal.Unmarshal InterfaceBody\n\ninstance Data.Foldable.Foldable InterfaceBody where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor InterfaceBody where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable InterfaceBody where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata InterfaceDeclaration a = InterfaceDeclaration\n  { ann :: a,\n    body :: (AST.Parse.Err (InterfaceBody a)),\n    name :: (AST.Parse.Err (Identifier a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    extraChildren :: ([AST.Parse.Err ((ExtendsInterfaces GHC.Generics.:+: Modifiers) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_545.\n      AST.Traversable1.Class.Traversable1 a_545\n    )\n\ninstance AST.Unmarshal.SymbolMatching InterfaceDeclaration where\n  matchedSymbols _ = [217]\n  showFailure _ node_546 =\n    \"expected \"\n      GHC.Base.<> ( \"interface_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_546 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_546) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_547 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_548 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_549 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_550 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_547\n        c1_548 = TreeSitter.Node.nodeStartPoint node_546\n      TreeSitter.Node.TSPoint\n        r2_549\n        c2_550 = TreeSitter.Node.nodeEndPoint node_546\n\nderiving instance GHC.Classes.Eq a_551 => GHC.Classes.Eq (InterfaceDeclaration a_551)\n\nderiving instance GHC.Classes.Ord a_552 => GHC.Classes.Ord (InterfaceDeclaration a_552)\n\nderiving instance GHC.Show.Show a_553 => GHC.Show.Show (InterfaceDeclaration a_553)\n\ninstance AST.Unmarshal.Unmarshal InterfaceDeclaration\n\ninstance Data.Foldable.Foldable InterfaceDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor InterfaceDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable InterfaceDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata InterfaceTypeList a = InterfaceTypeList\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Type a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_554.\n      AST.Traversable1.Class.Traversable1 a_554\n    )\n\ninstance AST.Unmarshal.SymbolMatching InterfaceTypeList where\n  matchedSymbols _ = [204]\n  showFailure _ node_555 =\n    \"expected \"\n      GHC.Base.<> ( \"interface_type_list\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_555 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_555) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_556 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_557 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_558 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_559 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_556\n        c1_557 = TreeSitter.Node.nodeStartPoint node_555\n      TreeSitter.Node.TSPoint\n        r2_558\n        c2_559 = TreeSitter.Node.nodeEndPoint node_555\n\nderiving instance GHC.Classes.Eq a_560 => GHC.Classes.Eq (InterfaceTypeList a_560)\n\nderiving instance GHC.Classes.Ord a_561 => GHC.Classes.Ord (InterfaceTypeList a_561)\n\nderiving instance GHC.Show.Show a_562 => GHC.Show.Show (InterfaceTypeList a_562)\n\ninstance AST.Unmarshal.Unmarshal InterfaceTypeList\n\ninstance Data.Foldable.Foldable InterfaceTypeList where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor InterfaceTypeList where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable InterfaceTypeList where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata LabeledStatement a = LabeledStatement\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Statement GHC.Generics.:+: Identifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_563.\n      AST.Traversable1.Class.Traversable1 a_563\n    )\n\ninstance AST.Unmarshal.SymbolMatching LabeledStatement where\n  matchedSymbols _ = [154]\n  showFailure _ node_564 =\n    \"expected \"\n      GHC.Base.<> ( \"labeled_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_564 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_564) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_565 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_566 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_567 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_568 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_565\n        c1_566 = TreeSitter.Node.nodeStartPoint node_564\n      TreeSitter.Node.TSPoint\n        r2_567\n        c2_568 = TreeSitter.Node.nodeEndPoint node_564\n\nderiving instance GHC.Classes.Eq a_569 => GHC.Classes.Eq (LabeledStatement a_569)\n\nderiving instance GHC.Classes.Ord a_570 => GHC.Classes.Ord (LabeledStatement a_570)\n\nderiving instance GHC.Show.Show a_571 => GHC.Show.Show (LabeledStatement a_571)\n\ninstance AST.Unmarshal.Unmarshal LabeledStatement\n\ninstance Data.Foldable.Foldable LabeledStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor LabeledStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable LabeledStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata LambdaExpression a = LambdaExpression\n  { ann :: a,\n    body :: (AST.Parse.Err ((Expression GHC.Generics.:+: Block) a)),\n    parameters :: (AST.Parse.Err ((FormalParameters GHC.Generics.:+: Identifier GHC.Generics.:+: InferredParameters) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_572.\n      AST.Traversable1.Class.Traversable1 a_572\n    )\n\ninstance AST.Unmarshal.SymbolMatching LambdaExpression where\n  matchedSymbols _ = [130]\n  showFailure _ node_573 =\n    \"expected \"\n      GHC.Base.<> ( \"lambda_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_573 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_573) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_574 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_575 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_576 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_577 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_574\n        c1_575 = TreeSitter.Node.nodeStartPoint node_573\n      TreeSitter.Node.TSPoint\n        r2_576\n        c2_577 = TreeSitter.Node.nodeEndPoint node_573\n\nderiving instance GHC.Classes.Eq a_578 => GHC.Classes.Eq (LambdaExpression a_578)\n\nderiving instance GHC.Classes.Ord a_579 => GHC.Classes.Ord (LambdaExpression a_579)\n\nderiving instance GHC.Show.Show a_580 => GHC.Show.Show (LambdaExpression a_580)\n\ninstance AST.Unmarshal.Unmarshal LambdaExpression\n\ninstance Data.Foldable.Foldable LambdaExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor LambdaExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable LambdaExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata LocalVariableDeclaration a = LocalVariableDeclaration\n  { ann :: a,\n    declarator :: (GHC.Base.NonEmpty (AST.Parse.Err (VariableDeclarator a))),\n    type' :: (AST.Parse.Err (UnannotatedType a)),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Modifiers a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_581.\n      AST.Traversable1.Class.Traversable1 a_581\n    )\n\ninstance AST.Unmarshal.SymbolMatching LocalVariableDeclaration where\n  matchedSymbols _ = [241]\n  showFailure _ node_582 =\n    \"expected \"\n      GHC.Base.<> ( \"local_variable_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_582 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_582) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_583 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_584 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_585 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_586 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_583\n        c1_584 = TreeSitter.Node.nodeStartPoint node_582\n      TreeSitter.Node.TSPoint\n        r2_585\n        c2_586 = TreeSitter.Node.nodeEndPoint node_582\n\nderiving instance GHC.Classes.Eq a_587 => GHC.Classes.Eq (LocalVariableDeclaration a_587)\n\nderiving instance GHC.Classes.Ord a_588 => GHC.Classes.Ord (LocalVariableDeclaration a_588)\n\nderiving instance GHC.Show.Show a_589 => GHC.Show.Show (LocalVariableDeclaration a_589)\n\ninstance AST.Unmarshal.Unmarshal LocalVariableDeclaration\n\ninstance Data.Foldable.Foldable LocalVariableDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor LocalVariableDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable LocalVariableDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata LocalVariableDeclarationStatement a = LocalVariableDeclarationStatement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (LocalVariableDeclaration a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_590.\n      AST.Traversable1.Class.Traversable1 a_590\n    )\n\ninstance AST.Unmarshal.SymbolMatching LocalVariableDeclarationStatement where\n  matchedSymbols _ = [240]\n  showFailure _ node_591 =\n    \"expected \"\n      GHC.Base.<> ( \"local_variable_declaration_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_591 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_591) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_592 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_593 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_594 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_595 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_592\n        c1_593 = TreeSitter.Node.nodeStartPoint node_591\n      TreeSitter.Node.TSPoint\n        r2_594\n        c2_595 = TreeSitter.Node.nodeEndPoint node_591\n\nderiving instance GHC.Classes.Eq a_596 => GHC.Classes.Eq (LocalVariableDeclarationStatement a_596)\n\nderiving instance GHC.Classes.Ord a_597 => GHC.Classes.Ord (LocalVariableDeclarationStatement a_597)\n\nderiving instance GHC.Show.Show a_598 => GHC.Show.Show (LocalVariableDeclarationStatement a_598)\n\ninstance AST.Unmarshal.Unmarshal LocalVariableDeclarationStatement\n\ninstance Data.Foldable.Foldable LocalVariableDeclarationStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor LocalVariableDeclarationStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable LocalVariableDeclarationStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MarkerAnnotation a = MarkerAnnotation\n  { ann :: a,\n    name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: ScopedIdentifier) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_599.\n      AST.Traversable1.Class.Traversable1 a_599\n    )\n\ninstance AST.Unmarshal.SymbolMatching MarkerAnnotation where\n  matchedSymbols _ = [179]\n  showFailure _ node_600 =\n    \"expected \"\n      GHC.Base.<> ( \"marker_annotation\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_600 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_600) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_601 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_602 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_603 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_604 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_601\n        c1_602 = TreeSitter.Node.nodeStartPoint node_600\n      TreeSitter.Node.TSPoint\n        r2_603\n        c2_604 = TreeSitter.Node.nodeEndPoint node_600\n\nderiving instance GHC.Classes.Eq a_605 => GHC.Classes.Eq (MarkerAnnotation a_605)\n\nderiving instance GHC.Classes.Ord a_606 => GHC.Classes.Ord (MarkerAnnotation a_606)\n\nderiving instance GHC.Show.Show a_607 => GHC.Show.Show (MarkerAnnotation a_607)\n\ninstance AST.Unmarshal.Unmarshal MarkerAnnotation\n\ninstance Data.Foldable.Foldable MarkerAnnotation where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MarkerAnnotation where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MarkerAnnotation where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MethodDeclaration a = MethodDeclaration\n  { ann :: a,\n    body :: (GHC.Maybe.Maybe (AST.Parse.Err (Block a))),\n    name :: (AST.Parse.Err (Identifier a)),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    type' :: (AST.Parse.Err (UnannotatedType a)),\n    dimensions :: (GHC.Maybe.Maybe (AST.Parse.Err (Dimensions a))),\n    extraChildren :: ([AST.Parse.Err ((Annotation GHC.Generics.:+: MarkerAnnotation GHC.Generics.:+: Modifiers GHC.Generics.:+: Throws) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_608.\n      AST.Traversable1.Class.Traversable1 a_608\n    )\n\ninstance AST.Unmarshal.SymbolMatching MethodDeclaration where\n  matchedSymbols _ = [242]\n  showFailure _ node_609 =\n    \"expected \"\n      GHC.Base.<> ( \"method_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_609 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_609) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_610 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_611 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_612 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_613 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_610\n        c1_611 = TreeSitter.Node.nodeStartPoint node_609\n      TreeSitter.Node.TSPoint\n        r2_612\n        c2_613 = TreeSitter.Node.nodeEndPoint node_609\n\nderiving instance GHC.Classes.Eq a_614 => GHC.Classes.Eq (MethodDeclaration a_614)\n\nderiving instance GHC.Classes.Ord a_615 => GHC.Classes.Ord (MethodDeclaration a_615)\n\nderiving instance GHC.Show.Show a_616 => GHC.Show.Show (MethodDeclaration a_616)\n\ninstance AST.Unmarshal.Unmarshal MethodDeclaration\n\ninstance Data.Foldable.Foldable MethodDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MethodDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MethodDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MethodInvocation a = MethodInvocation\n  { ann :: a,\n    arguments :: (AST.Parse.Err (ArgumentList a)),\n    name :: (AST.Parse.Err (Identifier a)),\n    typeArguments :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeArguments a))),\n    object :: (GHC.Maybe.Maybe (AST.Parse.Err ((Primary GHC.Generics.:+: Identifier GHC.Generics.:+: ScopedIdentifier GHC.Generics.:+: Super) a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Super a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_617.\n      AST.Traversable1.Class.Traversable1 a_617\n    )\n\ninstance AST.Unmarshal.SymbolMatching MethodInvocation where\n  matchedSymbols _ = [144]\n  showFailure _ node_618 =\n    \"expected \"\n      GHC.Base.<> ( \"method_invocation\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_618 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_618) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_619 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_620 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_621 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_622 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_619\n        c1_620 = TreeSitter.Node.nodeStartPoint node_618\n      TreeSitter.Node.TSPoint\n        r2_621\n        c2_622 = TreeSitter.Node.nodeEndPoint node_618\n\nderiving instance GHC.Classes.Eq a_623 => GHC.Classes.Eq (MethodInvocation a_623)\n\nderiving instance GHC.Classes.Ord a_624 => GHC.Classes.Ord (MethodInvocation a_624)\n\nderiving instance GHC.Show.Show a_625 => GHC.Show.Show (MethodInvocation a_625)\n\ninstance AST.Unmarshal.Unmarshal MethodInvocation\n\ninstance Data.Foldable.Foldable MethodInvocation where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MethodInvocation where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MethodInvocation where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MethodReference a = MethodReference\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Primary GHC.Generics.:+: Type GHC.Generics.:+: Identifier GHC.Generics.:+: ScopedIdentifier GHC.Generics.:+: Super GHC.Generics.:+: TypeArguments) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_626.\n      AST.Traversable1.Class.Traversable1 a_626\n    )\n\ninstance AST.Unmarshal.SymbolMatching MethodReference where\n  matchedSymbols _ = [146]\n  showFailure _ node_627 =\n    \"expected \"\n      GHC.Base.<> ( \"method_reference\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_627 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_627) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_628 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_629 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_630 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_631 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_628\n        c1_629 = TreeSitter.Node.nodeStartPoint node_627\n      TreeSitter.Node.TSPoint\n        r2_630\n        c2_631 = TreeSitter.Node.nodeEndPoint node_627\n\nderiving instance GHC.Classes.Eq a_632 => GHC.Classes.Eq (MethodReference a_632)\n\nderiving instance GHC.Classes.Ord a_633 => GHC.Classes.Ord (MethodReference a_633)\n\nderiving instance GHC.Show.Show a_634 => GHC.Show.Show (MethodReference a_634)\n\ninstance AST.Unmarshal.Unmarshal MethodReference\n\ninstance Data.Foldable.Foldable MethodReference where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MethodReference where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MethodReference where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Modifiers a = Modifiers\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Annotation GHC.Generics.:+: MarkerAnnotation) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_635.\n      AST.Traversable1.Class.Traversable1 a_635\n    )\n\ninstance AST.Unmarshal.SymbolMatching Modifiers where\n  matchedSymbols _ = [198]\n  showFailure _ node_636 =\n    \"expected \"\n      GHC.Base.<> ( \"modifiers\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_636 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_636) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_637 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_638 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_639 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_640 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_637\n        c1_638 = TreeSitter.Node.nodeStartPoint node_636\n      TreeSitter.Node.TSPoint\n        r2_639\n        c2_640 = TreeSitter.Node.nodeEndPoint node_636\n\nderiving instance GHC.Classes.Eq a_641 => GHC.Classes.Eq (Modifiers a_641)\n\nderiving instance GHC.Classes.Ord a_642 => GHC.Classes.Ord (Modifiers a_642)\n\nderiving instance GHC.Show.Show a_643 => GHC.Show.Show (Modifiers a_643)\n\ninstance AST.Unmarshal.Unmarshal Modifiers\n\ninstance Data.Foldable.Foldable Modifiers where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Modifiers where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Modifiers where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ModuleDeclaration a = ModuleDeclaration\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Annotation GHC.Generics.:+: Identifier GHC.Generics.:+: MarkerAnnotation GHC.Generics.:+: ModuleDirective GHC.Generics.:+: ScopedIdentifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_644.\n      AST.Traversable1.Class.Traversable1 a_644\n    )\n\ninstance AST.Unmarshal.SymbolMatching ModuleDeclaration where\n  matchedSymbols _ = [186]\n  showFailure _ node_645 =\n    \"expected \"\n      GHC.Base.<> ( \"module_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_645 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_645) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_646 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_647 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_648 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_649 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_646\n        c1_647 = TreeSitter.Node.nodeStartPoint node_645\n      TreeSitter.Node.TSPoint\n        r2_648\n        c2_649 = TreeSitter.Node.nodeEndPoint node_645\n\nderiving instance GHC.Classes.Eq a_650 => GHC.Classes.Eq (ModuleDeclaration a_650)\n\nderiving instance GHC.Classes.Ord a_651 => GHC.Classes.Ord (ModuleDeclaration a_651)\n\nderiving instance GHC.Show.Show a_652 => GHC.Show.Show (ModuleDeclaration a_652)\n\ninstance AST.Unmarshal.Unmarshal ModuleDeclaration\n\ninstance Data.Foldable.Foldable ModuleDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ModuleDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ModuleDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ModuleDirective a = ModuleDirective\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: ModuleName GHC.Generics.:+: RequiresModifier GHC.Generics.:+: ScopedIdentifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_653.\n      AST.Traversable1.Class.Traversable1 a_653\n    )\n\ninstance AST.Unmarshal.SymbolMatching ModuleDirective where\n  matchedSymbols _ = [187]\n  showFailure _ node_654 =\n    \"expected \"\n      GHC.Base.<> ( \"module_directive\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_654 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_654) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_655 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_656 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_657 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_658 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_655\n        c1_656 = TreeSitter.Node.nodeStartPoint node_654\n      TreeSitter.Node.TSPoint\n        r2_657\n        c2_658 = TreeSitter.Node.nodeEndPoint node_654\n\nderiving instance GHC.Classes.Eq a_659 => GHC.Classes.Eq (ModuleDirective a_659)\n\nderiving instance GHC.Classes.Ord a_660 => GHC.Classes.Ord (ModuleDirective a_660)\n\nderiving instance GHC.Show.Show a_661 => GHC.Show.Show (ModuleDirective a_661)\n\ninstance AST.Unmarshal.Unmarshal ModuleDirective\n\ninstance Data.Foldable.Foldable ModuleDirective where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ModuleDirective where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ModuleDirective where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ModuleName a = ModuleName\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: ModuleName) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_662.\n      AST.Traversable1.Class.Traversable1 a_662\n    )\n\ninstance AST.Unmarshal.SymbolMatching ModuleName where\n  matchedSymbols _ = [189]\n  showFailure _ node_663 =\n    \"expected \"\n      GHC.Base.<> ( \"module_name\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_663 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_663) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_664 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_665 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_666 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_667 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_664\n        c1_665 = TreeSitter.Node.nodeStartPoint node_663\n      TreeSitter.Node.TSPoint\n        r2_666\n        c2_667 = TreeSitter.Node.nodeEndPoint node_663\n\nderiving instance GHC.Classes.Eq a_668 => GHC.Classes.Eq (ModuleName a_668)\n\nderiving instance GHC.Classes.Ord a_669 => GHC.Classes.Ord (ModuleName a_669)\n\nderiving instance GHC.Show.Show a_670 => GHC.Show.Show (ModuleName a_670)\n\ninstance AST.Unmarshal.Unmarshal ModuleName\n\ninstance Data.Foldable.Foldable ModuleName where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ModuleName where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ModuleName where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ObjectCreationExpression a = ObjectCreationExpression\n  { ann :: a,\n    arguments :: (AST.Parse.Err (ArgumentList a)),\n    typeArguments :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeArguments a))),\n    type' :: (AST.Parse.Err (SimpleType a)),\n    extraChildren :: ([AST.Parse.Err ((Primary GHC.Generics.:+: ClassBody GHC.Generics.:+: Identifier GHC.Generics.:+: ScopedIdentifier) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_671.\n      AST.Traversable1.Class.Traversable1 a_671\n    )\n\ninstance AST.Unmarshal.SymbolMatching ObjectCreationExpression where\n  matchedSymbols _ = [140]\n  showFailure _ node_672 =\n    \"expected \"\n      GHC.Base.<> ( \"object_creation_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_672 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_672) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_673 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_674 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_675 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_676 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_673\n        c1_674 = TreeSitter.Node.nodeStartPoint node_672\n      TreeSitter.Node.TSPoint\n        r2_675\n        c2_676 = TreeSitter.Node.nodeEndPoint node_672\n\nderiving instance GHC.Classes.Eq a_677 => GHC.Classes.Eq (ObjectCreationExpression a_677)\n\nderiving instance GHC.Classes.Ord a_678 => GHC.Classes.Ord (ObjectCreationExpression a_678)\n\nderiving instance GHC.Show.Show a_679 => GHC.Show.Show (ObjectCreationExpression a_679)\n\ninstance AST.Unmarshal.Unmarshal ObjectCreationExpression\n\ninstance Data.Foldable.Foldable ObjectCreationExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ObjectCreationExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ObjectCreationExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PackageDeclaration a = PackageDeclaration\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Annotation GHC.Generics.:+: Identifier GHC.Generics.:+: MarkerAnnotation GHC.Generics.:+: ScopedIdentifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_680.\n      AST.Traversable1.Class.Traversable1 a_680\n    )\n\ninstance AST.Unmarshal.SymbolMatching PackageDeclaration where\n  matchedSymbols _ = [190]\n  showFailure _ node_681 =\n    \"expected \"\n      GHC.Base.<> ( \"package_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_681 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_681) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_682 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_683 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_684 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_685 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_682\n        c1_683 = TreeSitter.Node.nodeStartPoint node_681\n      TreeSitter.Node.TSPoint\n        r2_684\n        c2_685 = TreeSitter.Node.nodeEndPoint node_681\n\nderiving instance GHC.Classes.Eq a_686 => GHC.Classes.Eq (PackageDeclaration a_686)\n\nderiving instance GHC.Classes.Ord a_687 => GHC.Classes.Ord (PackageDeclaration a_687)\n\nderiving instance GHC.Show.Show a_688 => GHC.Show.Show (PackageDeclaration a_688)\n\ninstance AST.Unmarshal.Unmarshal PackageDeclaration\n\ninstance Data.Foldable.Foldable PackageDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PackageDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PackageDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ParenthesizedExpression a = ParenthesizedExpression\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_689.\n      AST.Traversable1.Class.Traversable1 a_689\n    )\n\ninstance AST.Unmarshal.SymbolMatching ParenthesizedExpression where\n  matchedSymbols _ = [138]\n  showFailure _ node_690 =\n    \"expected \"\n      GHC.Base.<> ( \"parenthesized_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_690 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_690) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_691 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_692 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_693 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_694 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_691\n        c1_692 = TreeSitter.Node.nodeStartPoint node_690\n      TreeSitter.Node.TSPoint\n        r2_693\n        c2_694 = TreeSitter.Node.nodeEndPoint node_690\n\nderiving instance GHC.Classes.Eq a_695 => GHC.Classes.Eq (ParenthesizedExpression a_695)\n\nderiving instance GHC.Classes.Ord a_696 => GHC.Classes.Ord (ParenthesizedExpression a_696)\n\nderiving instance GHC.Show.Show a_697 => GHC.Show.Show (ParenthesizedExpression a_697)\n\ninstance AST.Unmarshal.Unmarshal ParenthesizedExpression\n\ninstance Data.Foldable.Foldable ParenthesizedExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ParenthesizedExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ParenthesizedExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Program a = Program\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (Statement a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_698.\n      AST.Traversable1.Class.Traversable1 a_698\n    )\n\ninstance AST.Unmarshal.SymbolMatching Program where\n  matchedSymbols _ = [123]\n  showFailure _ node_699 =\n    \"expected \"\n      GHC.Base.<> ( \"program\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_699 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_699) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_700 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_701 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_702 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_703 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_700\n        c1_701 = TreeSitter.Node.nodeStartPoint node_699\n      TreeSitter.Node.TSPoint\n        r2_702\n        c2_703 = TreeSitter.Node.nodeEndPoint node_699\n\nderiving instance GHC.Classes.Eq a_704 => GHC.Classes.Eq (Program a_704)\n\nderiving instance GHC.Classes.Ord a_705 => GHC.Classes.Ord (Program a_705)\n\nderiving instance GHC.Show.Show a_706 => GHC.Show.Show (Program a_706)\n\ninstance AST.Unmarshal.Unmarshal Program\n\ninstance Data.Foldable.Foldable Program where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Program where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Program where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ReceiverParameter a = ReceiverParameter\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((UnannotatedType GHC.Generics.:+: Annotation GHC.Generics.:+: Identifier GHC.Generics.:+: MarkerAnnotation GHC.Generics.:+: This) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_707.\n      AST.Traversable1.Class.Traversable1 a_707\n    )\n\ninstance AST.Unmarshal.SymbolMatching ReceiverParameter where\n  matchedSymbols _ = [237]\n  showFailure _ node_708 =\n    \"expected \"\n      GHC.Base.<> ( \"receiver_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_708 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_708) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_709 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_710 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_711 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_712 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_709\n        c1_710 = TreeSitter.Node.nodeStartPoint node_708\n      TreeSitter.Node.TSPoint\n        r2_711\n        c2_712 = TreeSitter.Node.nodeEndPoint node_708\n\nderiving instance GHC.Classes.Eq a_713 => GHC.Classes.Eq (ReceiverParameter a_713)\n\nderiving instance GHC.Classes.Ord a_714 => GHC.Classes.Ord (ReceiverParameter a_714)\n\nderiving instance GHC.Show.Show a_715 => GHC.Show.Show (ReceiverParameter a_715)\n\ninstance AST.Unmarshal.Unmarshal ReceiverParameter\n\ninstance Data.Foldable.Foldable ReceiverParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ReceiverParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ReceiverParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata RequiresModifier a = RequiresModifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_716.\n      AST.Traversable1.Class.Traversable1 a_716\n    )\n\ninstance AST.Unmarshal.SymbolMatching RequiresModifier where\n  matchedSymbols _ = [188]\n  showFailure _ node_717 =\n    \"expected \"\n      GHC.Base.<> ( \"requires_modifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_717 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_717) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_718 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_719 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_720 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_721 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_718\n        c1_719 = TreeSitter.Node.nodeStartPoint node_717\n      TreeSitter.Node.TSPoint\n        r2_720\n        c2_721 = TreeSitter.Node.nodeEndPoint node_717\n\nderiving instance GHC.Classes.Eq a_722 => GHC.Classes.Eq (RequiresModifier a_722)\n\nderiving instance GHC.Classes.Ord a_723 => GHC.Classes.Ord (RequiresModifier a_723)\n\nderiving instance GHC.Show.Show a_724 => GHC.Show.Show (RequiresModifier a_724)\n\ninstance AST.Unmarshal.Unmarshal RequiresModifier\n\ninstance Data.Foldable.Foldable RequiresModifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RequiresModifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RequiresModifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Resource a = Resource\n  { ann :: a,\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    name :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))),\n    type' :: (GHC.Maybe.Maybe (AST.Parse.Err (UnannotatedType a))),\n    dimensions :: (GHC.Maybe.Maybe (AST.Parse.Err (Dimensions a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((FieldAccess GHC.Generics.:+: Identifier GHC.Generics.:+: Modifiers GHC.Generics.:+: ScopedIdentifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_725.\n      AST.Traversable1.Class.Traversable1 a_725\n    )\n\ninstance AST.Unmarshal.SymbolMatching Resource where\n  matchedSymbols _ = [172]\n  showFailure _ node_726 =\n    \"expected \"\n      GHC.Base.<> ( \"resource\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_726 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_726) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_727 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_728 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_729 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_730 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_727\n        c1_728 = TreeSitter.Node.nodeStartPoint node_726\n      TreeSitter.Node.TSPoint\n        r2_729\n        c2_730 = TreeSitter.Node.nodeEndPoint node_726\n\nderiving instance GHC.Classes.Eq a_731 => GHC.Classes.Eq (Resource a_731)\n\nderiving instance GHC.Classes.Ord a_732 => GHC.Classes.Ord (Resource a_732)\n\nderiving instance GHC.Show.Show a_733 => GHC.Show.Show (Resource a_733)\n\ninstance AST.Unmarshal.Unmarshal Resource\n\ninstance Data.Foldable.Foldable Resource where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Resource where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Resource where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ResourceSpecification a = ResourceSpecification\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Resource a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_734.\n      AST.Traversable1.Class.Traversable1 a_734\n    )\n\ninstance AST.Unmarshal.SymbolMatching ResourceSpecification where\n  matchedSymbols _ = [171]\n  showFailure _ node_735 =\n    \"expected \"\n      GHC.Base.<> ( \"resource_specification\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_735 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_735) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_736 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_737 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_738 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_739 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_736\n        c1_737 = TreeSitter.Node.nodeStartPoint node_735\n      TreeSitter.Node.TSPoint\n        r2_738\n        c2_739 = TreeSitter.Node.nodeEndPoint node_735\n\nderiving instance GHC.Classes.Eq a_740 => GHC.Classes.Eq (ResourceSpecification a_740)\n\nderiving instance GHC.Classes.Ord a_741 => GHC.Classes.Ord (ResourceSpecification a_741)\n\nderiving instance GHC.Show.Show a_742 => GHC.Show.Show (ResourceSpecification a_742)\n\ninstance AST.Unmarshal.Unmarshal ResourceSpecification\n\ninstance Data.Foldable.Foldable ResourceSpecification where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ResourceSpecification where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ResourceSpecification where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ReturnStatement a = ReturnStatement\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_743.\n      AST.Traversable1.Class.Traversable1 a_743\n    )\n\ninstance AST.Unmarshal.SymbolMatching ReturnStatement where\n  matchedSymbols _ = [162]\n  showFailure _ node_744 =\n    \"expected \"\n      GHC.Base.<> ( \"return_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_744 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_744) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_745 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_746 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_747 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_748 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_745\n        c1_746 = TreeSitter.Node.nodeStartPoint node_744\n      TreeSitter.Node.TSPoint\n        r2_747\n        c2_748 = TreeSitter.Node.nodeEndPoint node_744\n\nderiving instance GHC.Classes.Eq a_749 => GHC.Classes.Eq (ReturnStatement a_749)\n\nderiving instance GHC.Classes.Ord a_750 => GHC.Classes.Ord (ReturnStatement a_750)\n\nderiving instance GHC.Show.Show a_751 => GHC.Show.Show (ReturnStatement a_751)\n\ninstance AST.Unmarshal.Unmarshal ReturnStatement\n\ninstance Data.Foldable.Foldable ReturnStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ReturnStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ReturnStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ScopedIdentifier a = ScopedIdentifier\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: ScopedIdentifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_752.\n      AST.Traversable1.Class.Traversable1 a_752\n    )\n\ninstance AST.Unmarshal.SymbolMatching ScopedIdentifier where\n  matchedSymbols _ = [211]\n  showFailure _ node_753 =\n    \"expected \"\n      GHC.Base.<> ( \"scoped_identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_753 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_753) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_754 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_755 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_756 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_757 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_754\n        c1_755 = TreeSitter.Node.nodeStartPoint node_753\n      TreeSitter.Node.TSPoint\n        r2_756\n        c2_757 = TreeSitter.Node.nodeEndPoint node_753\n\nderiving instance GHC.Classes.Eq a_758 => GHC.Classes.Eq (ScopedIdentifier a_758)\n\nderiving instance GHC.Classes.Ord a_759 => GHC.Classes.Ord (ScopedIdentifier a_759)\n\nderiving instance GHC.Show.Show a_760 => GHC.Show.Show (ScopedIdentifier a_760)\n\ninstance AST.Unmarshal.Unmarshal ScopedIdentifier\n\ninstance Data.Foldable.Foldable ScopedIdentifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ScopedIdentifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ScopedIdentifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ScopedTypeIdentifier a = ScopedTypeIdentifier\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Annotation GHC.Generics.:+: GenericType GHC.Generics.:+: MarkerAnnotation GHC.Generics.:+: ScopedTypeIdentifier GHC.Generics.:+: TypeIdentifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_761.\n      AST.Traversable1.Class.Traversable1 a_761\n    )\n\ninstance AST.Unmarshal.SymbolMatching ScopedTypeIdentifier where\n  matchedSymbols _ = [228]\n  showFailure _ node_762 =\n    \"expected \"\n      GHC.Base.<> ( \"scoped_type_identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_762 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_762) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_763 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_764 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_765 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_766 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_763\n        c1_764 = TreeSitter.Node.nodeStartPoint node_762\n      TreeSitter.Node.TSPoint\n        r2_765\n        c2_766 = TreeSitter.Node.nodeEndPoint node_762\n\nderiving instance GHC.Classes.Eq a_767 => GHC.Classes.Eq (ScopedTypeIdentifier a_767)\n\nderiving instance GHC.Classes.Ord a_768 => GHC.Classes.Ord (ScopedTypeIdentifier a_768)\n\nderiving instance GHC.Show.Show a_769 => GHC.Show.Show (ScopedTypeIdentifier a_769)\n\ninstance AST.Unmarshal.Unmarshal ScopedTypeIdentifier\n\ninstance Data.Foldable.Foldable ScopedTypeIdentifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ScopedTypeIdentifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ScopedTypeIdentifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SpreadParameter a = SpreadParameter\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((UnannotatedType GHC.Generics.:+: Modifiers GHC.Generics.:+: VariableDeclarator) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_770.\n      AST.Traversable1.Class.Traversable1 a_770\n    )\n\ninstance AST.Unmarshal.SymbolMatching SpreadParameter where\n  matchedSymbols _ = [238]\n  showFailure _ node_771 =\n    \"expected \"\n      GHC.Base.<> ( \"spread_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_771 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_771) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_772 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_773 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_774 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_775 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_772\n        c1_773 = TreeSitter.Node.nodeStartPoint node_771\n      TreeSitter.Node.TSPoint\n        r2_774\n        c2_775 = TreeSitter.Node.nodeEndPoint node_771\n\nderiving instance GHC.Classes.Eq a_776 => GHC.Classes.Eq (SpreadParameter a_776)\n\nderiving instance GHC.Classes.Ord a_777 => GHC.Classes.Ord (SpreadParameter a_777)\n\nderiving instance GHC.Show.Show a_778 => GHC.Show.Show (SpreadParameter a_778)\n\ninstance AST.Unmarshal.Unmarshal SpreadParameter\n\ninstance Data.Foldable.Foldable SpreadParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SpreadParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SpreadParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata StaticInitializer a = StaticInitializer\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Block a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_779.\n      AST.Traversable1.Class.Traversable1 a_779\n    )\n\ninstance AST.Unmarshal.SymbolMatching StaticInitializer where\n  matchedSymbols _ = [206]\n  showFailure _ node_780 =\n    \"expected \"\n      GHC.Base.<> ( \"static_initializer\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_780 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_780) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_781 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_782 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_783 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_784 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_781\n        c1_782 = TreeSitter.Node.nodeStartPoint node_780\n      TreeSitter.Node.TSPoint\n        r2_783\n        c2_784 = TreeSitter.Node.nodeEndPoint node_780\n\nderiving instance GHC.Classes.Eq a_785 => GHC.Classes.Eq (StaticInitializer a_785)\n\nderiving instance GHC.Classes.Ord a_786 => GHC.Classes.Ord (StaticInitializer a_786)\n\nderiving instance GHC.Show.Show a_787 => GHC.Show.Show (StaticInitializer a_787)\n\ninstance AST.Unmarshal.Unmarshal StaticInitializer\n\ninstance Data.Foldable.Foldable StaticInitializer where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor StaticInitializer where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable StaticInitializer where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SuperInterfaces a = SuperInterfaces\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (InterfaceTypeList a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_788.\n      AST.Traversable1.Class.Traversable1 a_788\n    )\n\ninstance AST.Unmarshal.SymbolMatching SuperInterfaces where\n  matchedSymbols _ = [203]\n  showFailure _ node_789 =\n    \"expected \"\n      GHC.Base.<> ( \"super_interfaces\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_789 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_789) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_790 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_791 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_792 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_793 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_790\n        c1_791 = TreeSitter.Node.nodeStartPoint node_789\n      TreeSitter.Node.TSPoint\n        r2_792\n        c2_793 = TreeSitter.Node.nodeEndPoint node_789\n\nderiving instance GHC.Classes.Eq a_794 => GHC.Classes.Eq (SuperInterfaces a_794)\n\nderiving instance GHC.Classes.Ord a_795 => GHC.Classes.Ord (SuperInterfaces a_795)\n\nderiving instance GHC.Show.Show a_796 => GHC.Show.Show (SuperInterfaces a_796)\n\ninstance AST.Unmarshal.Unmarshal SuperInterfaces\n\ninstance Data.Foldable.Foldable SuperInterfaces where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SuperInterfaces where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SuperInterfaces where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Superclass a = Superclass {ann :: a, extraChildren :: (AST.Parse.Err (Type a))}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_797.\n      AST.Traversable1.Class.Traversable1 a_797\n    )\n\ninstance AST.Unmarshal.SymbolMatching Superclass where\n  matchedSymbols _ = [202]\n  showFailure _ node_798 =\n    \"expected \"\n      GHC.Base.<> ( \"superclass\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_798 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_798) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_799 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_800 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_801 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_802 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_799\n        c1_800 = TreeSitter.Node.nodeStartPoint node_798\n      TreeSitter.Node.TSPoint\n        r2_801\n        c2_802 = TreeSitter.Node.nodeEndPoint node_798\n\nderiving instance GHC.Classes.Eq a_803 => GHC.Classes.Eq (Superclass a_803)\n\nderiving instance GHC.Classes.Ord a_804 => GHC.Classes.Ord (Superclass a_804)\n\nderiving instance GHC.Show.Show a_805 => GHC.Show.Show (Superclass a_805)\n\ninstance AST.Unmarshal.Unmarshal Superclass\n\ninstance Data.Foldable.Foldable Superclass where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Superclass where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Superclass where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SwitchBlock a = SwitchBlock\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: SwitchLabel) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_806.\n      AST.Traversable1.Class.Traversable1 a_806\n    )\n\ninstance AST.Unmarshal.SymbolMatching SwitchBlock where\n  matchedSymbols _ = [157]\n  showFailure _ node_807 =\n    \"expected \"\n      GHC.Base.<> ( \"switch_block\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_807 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_807) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_808 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_809 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_810 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_811 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_808\n        c1_809 = TreeSitter.Node.nodeStartPoint node_807\n      TreeSitter.Node.TSPoint\n        r2_810\n        c2_811 = TreeSitter.Node.nodeEndPoint node_807\n\nderiving instance GHC.Classes.Eq a_812 => GHC.Classes.Eq (SwitchBlock a_812)\n\nderiving instance GHC.Classes.Ord a_813 => GHC.Classes.Ord (SwitchBlock a_813)\n\nderiving instance GHC.Show.Show a_814 => GHC.Show.Show (SwitchBlock a_814)\n\ninstance AST.Unmarshal.Unmarshal SwitchBlock\n\ninstance Data.Foldable.Foldable SwitchBlock where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SwitchBlock where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SwitchBlock where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SwitchLabel a = SwitchLabel\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_815.\n      AST.Traversable1.Class.Traversable1 a_815\n    )\n\ninstance AST.Unmarshal.SymbolMatching SwitchLabel where\n  matchedSymbols _ = [158]\n  showFailure _ node_816 =\n    \"expected \"\n      GHC.Base.<> ( \"switch_label\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_816 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_816) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_817 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_818 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_819 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_820 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_817\n        c1_818 = TreeSitter.Node.nodeStartPoint node_816\n      TreeSitter.Node.TSPoint\n        r2_819\n        c2_820 = TreeSitter.Node.nodeEndPoint node_816\n\nderiving instance GHC.Classes.Eq a_821 => GHC.Classes.Eq (SwitchLabel a_821)\n\nderiving instance GHC.Classes.Ord a_822 => GHC.Classes.Ord (SwitchLabel a_822)\n\nderiving instance GHC.Show.Show a_823 => GHC.Show.Show (SwitchLabel a_823)\n\ninstance AST.Unmarshal.Unmarshal SwitchLabel\n\ninstance Data.Foldable.Foldable SwitchLabel where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SwitchLabel where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SwitchLabel where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SwitchStatement a = SwitchStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (SwitchBlock a)),\n    condition :: (AST.Parse.Err (ParenthesizedExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_824.\n      AST.Traversable1.Class.Traversable1 a_824\n    )\n\ninstance AST.Unmarshal.SymbolMatching SwitchStatement where\n  matchedSymbols _ = [156]\n  showFailure _ node_825 =\n    \"expected \"\n      GHC.Base.<> ( \"switch_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_825 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_825) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_826 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_827 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_828 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_829 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_826\n        c1_827 = TreeSitter.Node.nodeStartPoint node_825\n      TreeSitter.Node.TSPoint\n        r2_828\n        c2_829 = TreeSitter.Node.nodeEndPoint node_825\n\nderiving instance GHC.Classes.Eq a_830 => GHC.Classes.Eq (SwitchStatement a_830)\n\nderiving instance GHC.Classes.Ord a_831 => GHC.Classes.Ord (SwitchStatement a_831)\n\nderiving instance GHC.Show.Show a_832 => GHC.Show.Show (SwitchStatement a_832)\n\ninstance AST.Unmarshal.Unmarshal SwitchStatement\n\ninstance Data.Foldable.Foldable SwitchStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SwitchStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SwitchStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SynchronizedStatement a = SynchronizedStatement\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: Block) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_833.\n      AST.Traversable1.Class.Traversable1 a_833\n    )\n\ninstance AST.Unmarshal.SymbolMatching SynchronizedStatement where\n  matchedSymbols _ = [163]\n  showFailure _ node_834 =\n    \"expected \"\n      GHC.Base.<> ( \"synchronized_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_834 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_834) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_835 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_836 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_837 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_838 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_835\n        c1_836 = TreeSitter.Node.nodeStartPoint node_834\n      TreeSitter.Node.TSPoint\n        r2_837\n        c2_838 = TreeSitter.Node.nodeEndPoint node_834\n\nderiving instance GHC.Classes.Eq a_839 => GHC.Classes.Eq (SynchronizedStatement a_839)\n\nderiving instance GHC.Classes.Ord a_840 => GHC.Classes.Ord (SynchronizedStatement a_840)\n\nderiving instance GHC.Show.Show a_841 => GHC.Show.Show (SynchronizedStatement a_841)\n\ninstance AST.Unmarshal.Unmarshal SynchronizedStatement\n\ninstance Data.Foldable.Foldable SynchronizedStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SynchronizedStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SynchronizedStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TernaryExpression a = TernaryExpression\n  { ann :: a,\n    alternative :: (AST.Parse.Err (Expression a)),\n    consequence :: (AST.Parse.Err (Expression a)),\n    condition :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_842.\n      AST.Traversable1.Class.Traversable1 a_842\n    )\n\ninstance AST.Unmarshal.SymbolMatching TernaryExpression where\n  matchedSymbols _ = [132]\n  showFailure _ node_843 =\n    \"expected \"\n      GHC.Base.<> ( \"ternary_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_843 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_843) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_844 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_845 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_846 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_847 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_844\n        c1_845 = TreeSitter.Node.nodeStartPoint node_843\n      TreeSitter.Node.TSPoint\n        r2_846\n        c2_847 = TreeSitter.Node.nodeEndPoint node_843\n\nderiving instance GHC.Classes.Eq a_848 => GHC.Classes.Eq (TernaryExpression a_848)\n\nderiving instance GHC.Classes.Ord a_849 => GHC.Classes.Ord (TernaryExpression a_849)\n\nderiving instance GHC.Show.Show a_850 => GHC.Show.Show (TernaryExpression a_850)\n\ninstance AST.Unmarshal.Unmarshal TernaryExpression\n\ninstance Data.Foldable.Foldable TernaryExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TernaryExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TernaryExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ThrowStatement a = ThrowStatement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_851.\n      AST.Traversable1.Class.Traversable1 a_851\n    )\n\ninstance AST.Unmarshal.SymbolMatching ThrowStatement where\n  matchedSymbols _ = [164]\n  showFailure _ node_852 =\n    \"expected \"\n      GHC.Base.<> ( \"throw_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_852 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_852) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_853 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_854 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_855 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_856 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_853\n        c1_854 = TreeSitter.Node.nodeStartPoint node_852\n      TreeSitter.Node.TSPoint\n        r2_855\n        c2_856 = TreeSitter.Node.nodeEndPoint node_852\n\nderiving instance GHC.Classes.Eq a_857 => GHC.Classes.Eq (ThrowStatement a_857)\n\nderiving instance GHC.Classes.Ord a_858 => GHC.Classes.Ord (ThrowStatement a_858)\n\nderiving instance GHC.Show.Show a_859 => GHC.Show.Show (ThrowStatement a_859)\n\ninstance AST.Unmarshal.Unmarshal ThrowStatement\n\ninstance Data.Foldable.Foldable ThrowStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ThrowStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ThrowStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Throws a = Throws\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Type a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_860.\n      AST.Traversable1.Class.Traversable1 a_860\n    )\n\ninstance AST.Unmarshal.SymbolMatching Throws where\n  matchedSymbols _ = [239]\n  showFailure _ node_861 =\n    \"expected \"\n      GHC.Base.<> ( \"throws\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_861 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_861) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_862 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_863 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_864 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_865 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_862\n        c1_863 = TreeSitter.Node.nodeStartPoint node_861\n      TreeSitter.Node.TSPoint\n        r2_864\n        c2_865 = TreeSitter.Node.nodeEndPoint node_861\n\nderiving instance GHC.Classes.Eq a_866 => GHC.Classes.Eq (Throws a_866)\n\nderiving instance GHC.Classes.Ord a_867 => GHC.Classes.Ord (Throws a_867)\n\nderiving instance GHC.Show.Show a_868 => GHC.Show.Show (Throws a_868)\n\ninstance AST.Unmarshal.Unmarshal Throws\n\ninstance Data.Foldable.Foldable Throws where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Throws where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Throws where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TryStatement a = TryStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (Block a)),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((CatchClause GHC.Generics.:+: FinallyClause) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_869.\n      AST.Traversable1.Class.Traversable1 a_869\n    )\n\ninstance AST.Unmarshal.SymbolMatching TryStatement where\n  matchedSymbols _ = [165]\n  showFailure _ node_870 =\n    \"expected \"\n      GHC.Base.<> ( \"try_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_870 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_870) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_871 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_872 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_873 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_874 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_871\n        c1_872 = TreeSitter.Node.nodeStartPoint node_870\n      TreeSitter.Node.TSPoint\n        r2_873\n        c2_874 = TreeSitter.Node.nodeEndPoint node_870\n\nderiving instance GHC.Classes.Eq a_875 => GHC.Classes.Eq (TryStatement a_875)\n\nderiving instance GHC.Classes.Ord a_876 => GHC.Classes.Ord (TryStatement a_876)\n\nderiving instance GHC.Show.Show a_877 => GHC.Show.Show (TryStatement a_877)\n\ninstance AST.Unmarshal.Unmarshal TryStatement\n\ninstance Data.Foldable.Foldable TryStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TryStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TryStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TryWithResourcesStatement a = TryWithResourcesStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (Block a)),\n    resources :: (AST.Parse.Err (ResourceSpecification a)),\n    extraChildren :: ([AST.Parse.Err ((CatchClause GHC.Generics.:+: FinallyClause) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_878.\n      AST.Traversable1.Class.Traversable1 a_878\n    )\n\ninstance AST.Unmarshal.SymbolMatching TryWithResourcesStatement where\n  matchedSymbols _ = [170]\n  showFailure _ node_879 =\n    \"expected \"\n      GHC.Base.<> ( \"try_with_resources_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_879 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_879) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_880 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_881 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_882 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_883 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_880\n        c1_881 = TreeSitter.Node.nodeStartPoint node_879\n      TreeSitter.Node.TSPoint\n        r2_882\n        c2_883 = TreeSitter.Node.nodeEndPoint node_879\n\nderiving instance GHC.Classes.Eq a_884 => GHC.Classes.Eq (TryWithResourcesStatement a_884)\n\nderiving instance GHC.Classes.Ord a_885 => GHC.Classes.Ord (TryWithResourcesStatement a_885)\n\nderiving instance GHC.Show.Show a_886 => GHC.Show.Show (TryWithResourcesStatement a_886)\n\ninstance AST.Unmarshal.Unmarshal TryWithResourcesStatement\n\ninstance Data.Foldable.Foldable TryWithResourcesStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TryWithResourcesStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TryWithResourcesStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeArguments a = TypeArguments\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Type GHC.Generics.:+: Wildcard) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_887.\n      AST.Traversable1.Class.Traversable1 a_887\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeArguments where\n  matchedSymbols _ = [147]\n  showFailure _ node_888 =\n    \"expected \"\n      GHC.Base.<> ( \"type_arguments\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_888 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_888) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_889 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_890 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_891 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_892 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_889\n        c1_890 = TreeSitter.Node.nodeStartPoint node_888\n      TreeSitter.Node.TSPoint\n        r2_891\n        c2_892 = TreeSitter.Node.nodeEndPoint node_888\n\nderiving instance GHC.Classes.Eq a_893 => GHC.Classes.Eq (TypeArguments a_893)\n\nderiving instance GHC.Classes.Ord a_894 => GHC.Classes.Ord (TypeArguments a_894)\n\nderiving instance GHC.Show.Show a_895 => GHC.Show.Show (TypeArguments a_895)\n\ninstance AST.Unmarshal.Unmarshal TypeArguments\n\ninstance Data.Foldable.Foldable TypeArguments where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeArguments where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeArguments where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeBound a = TypeBound\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Type a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_896.\n      AST.Traversable1.Class.Traversable1 a_896\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeBound where\n  matchedSymbols _ = [201]\n  showFailure _ node_897 =\n    \"expected \"\n      GHC.Base.<> ( \"type_bound\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_897 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_897) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_898 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_899 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_900 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_901 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_898\n        c1_899 = TreeSitter.Node.nodeStartPoint node_897\n      TreeSitter.Node.TSPoint\n        r2_900\n        c2_901 = TreeSitter.Node.nodeEndPoint node_897\n\nderiving instance GHC.Classes.Eq a_902 => GHC.Classes.Eq (TypeBound a_902)\n\nderiving instance GHC.Classes.Ord a_903 => GHC.Classes.Ord (TypeBound a_903)\n\nderiving instance GHC.Show.Show a_904 => GHC.Show.Show (TypeBound a_904)\n\ninstance AST.Unmarshal.Unmarshal TypeBound\n\ninstance Data.Foldable.Foldable TypeBound where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeBound where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeBound where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeParameter a = TypeParameter\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Annotation GHC.Generics.:+: Identifier GHC.Generics.:+: MarkerAnnotation GHC.Generics.:+: TypeBound) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_905.\n      AST.Traversable1.Class.Traversable1 a_905\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeParameter where\n  matchedSymbols _ = [200]\n  showFailure _ node_906 =\n    \"expected \"\n      GHC.Base.<> ( \"type_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_906 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_906) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_907 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_908 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_909 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_910 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_907\n        c1_908 = TreeSitter.Node.nodeStartPoint node_906\n      TreeSitter.Node.TSPoint\n        r2_909\n        c2_910 = TreeSitter.Node.nodeEndPoint node_906\n\nderiving instance GHC.Classes.Eq a_911 => GHC.Classes.Eq (TypeParameter a_911)\n\nderiving instance GHC.Classes.Ord a_912 => GHC.Classes.Ord (TypeParameter a_912)\n\nderiving instance GHC.Show.Show a_913 => GHC.Show.Show (TypeParameter a_913)\n\ninstance AST.Unmarshal.Unmarshal TypeParameter\n\ninstance Data.Foldable.Foldable TypeParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeParameters a = TypeParameters\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (TypeParameter a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_914.\n      AST.Traversable1.Class.Traversable1 a_914\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeParameters where\n  matchedSymbols _ = [199]\n  showFailure _ node_915 =\n    \"expected \"\n      GHC.Base.<> ( \"type_parameters\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_915 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_915) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_916 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_917 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_918 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_919 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_916\n        c1_917 = TreeSitter.Node.nodeStartPoint node_915\n      TreeSitter.Node.TSPoint\n        r2_918\n        c2_919 = TreeSitter.Node.nodeEndPoint node_915\n\nderiving instance GHC.Classes.Eq a_920 => GHC.Classes.Eq (TypeParameters a_920)\n\nderiving instance GHC.Classes.Ord a_921 => GHC.Classes.Ord (TypeParameters a_921)\n\nderiving instance GHC.Show.Show a_922 => GHC.Show.Show (TypeParameters a_922)\n\ninstance AST.Unmarshal.Unmarshal TypeParameters\n\ninstance Data.Foldable.Foldable TypeParameters where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeParameters where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeParameters where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UnaryExpression a = UnaryExpression\n  { ann :: a,\n    operator :: (AST.Parse.Err ((AnonymousBang GHC.Generics.:+: AnonymousPlus GHC.Generics.:+: AnonymousMinus GHC.Generics.:+: AnonymousTilde) a)),\n    operand :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_923.\n      AST.Traversable1.Class.Traversable1 a_923\n    )\n\ninstance AST.Unmarshal.SymbolMatching UnaryExpression where\n  matchedSymbols _ = [133]\n  showFailure _ node_924 =\n    \"expected \"\n      GHC.Base.<> ( \"unary_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_924 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_924) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_925 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_926 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_927 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_928 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_925\n        c1_926 = TreeSitter.Node.nodeStartPoint node_924\n      TreeSitter.Node.TSPoint\n        r2_927\n        c2_928 = TreeSitter.Node.nodeEndPoint node_924\n\nderiving instance GHC.Classes.Eq a_929 => GHC.Classes.Eq (UnaryExpression a_929)\n\nderiving instance GHC.Classes.Ord a_930 => GHC.Classes.Ord (UnaryExpression a_930)\n\nderiving instance GHC.Show.Show a_931 => GHC.Show.Show (UnaryExpression a_931)\n\ninstance AST.Unmarshal.Unmarshal UnaryExpression\n\ninstance Data.Foldable.Foldable UnaryExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UnaryExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UnaryExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UpdateExpression a = UpdateExpression\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_932.\n      AST.Traversable1.Class.Traversable1 a_932\n    )\n\ninstance AST.Unmarshal.SymbolMatching UpdateExpression where\n  matchedSymbols _ = [134]\n  showFailure _ node_933 =\n    \"expected \"\n      GHC.Base.<> ( \"update_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_933 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_933) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_934 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_935 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_936 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_937 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_934\n        c1_935 = TreeSitter.Node.nodeStartPoint node_933\n      TreeSitter.Node.TSPoint\n        r2_936\n        c2_937 = TreeSitter.Node.nodeEndPoint node_933\n\nderiving instance GHC.Classes.Eq a_938 => GHC.Classes.Eq (UpdateExpression a_938)\n\nderiving instance GHC.Classes.Ord a_939 => GHC.Classes.Ord (UpdateExpression a_939)\n\nderiving instance GHC.Show.Show a_940 => GHC.Show.Show (UpdateExpression a_940)\n\ninstance AST.Unmarshal.Unmarshal UpdateExpression\n\ninstance Data.Foldable.Foldable UpdateExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UpdateExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UpdateExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata VariableDeclarator a = VariableDeclarator\n  { ann :: a,\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: ArrayInitializer) a))),\n    name :: (AST.Parse.Err (Identifier a)),\n    dimensions :: (GHC.Maybe.Maybe (AST.Parse.Err (Dimensions a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_941.\n      AST.Traversable1.Class.Traversable1 a_941\n    )\n\ninstance AST.Unmarshal.SymbolMatching VariableDeclarator where\n  matchedSymbols _ = [222]\n  showFailure _ node_942 =\n    \"expected \"\n      GHC.Base.<> ( \"variable_declarator\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_942 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_942) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_943 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_944 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_945 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_946 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_943\n        c1_944 = TreeSitter.Node.nodeStartPoint node_942\n      TreeSitter.Node.TSPoint\n        r2_945\n        c2_946 = TreeSitter.Node.nodeEndPoint node_942\n\nderiving instance GHC.Classes.Eq a_947 => GHC.Classes.Eq (VariableDeclarator a_947)\n\nderiving instance GHC.Classes.Ord a_948 => GHC.Classes.Ord (VariableDeclarator a_948)\n\nderiving instance GHC.Show.Show a_949 => GHC.Show.Show (VariableDeclarator a_949)\n\ninstance AST.Unmarshal.Unmarshal VariableDeclarator\n\ninstance Data.Foldable.Foldable VariableDeclarator where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor VariableDeclarator where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable VariableDeclarator where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata WhileStatement a = WhileStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (Statement a)),\n    condition :: (AST.Parse.Err (ParenthesizedExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_950.\n      AST.Traversable1.Class.Traversable1 a_950\n    )\n\ninstance AST.Unmarshal.SymbolMatching WhileStatement where\n  matchedSymbols _ = [174]\n  showFailure _ node_951 =\n    \"expected \"\n      GHC.Base.<> ( \"while_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_951 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_951) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_952 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_953 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_954 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_955 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_952\n        c1_953 = TreeSitter.Node.nodeStartPoint node_951\n      TreeSitter.Node.TSPoint\n        r2_954\n        c2_955 = TreeSitter.Node.nodeEndPoint node_951\n\nderiving instance GHC.Classes.Eq a_956 => GHC.Classes.Eq (WhileStatement a_956)\n\nderiving instance GHC.Classes.Ord a_957 => GHC.Classes.Ord (WhileStatement a_957)\n\nderiving instance GHC.Show.Show a_958 => GHC.Show.Show (WhileStatement a_958)\n\ninstance AST.Unmarshal.Unmarshal WhileStatement\n\ninstance Data.Foldable.Foldable WhileStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor WhileStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable WhileStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Wildcard a = Wildcard\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Type GHC.Generics.:+: Annotation GHC.Generics.:+: MarkerAnnotation GHC.Generics.:+: Super) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_959.\n      AST.Traversable1.Class.Traversable1 a_959\n    )\n\ninstance AST.Unmarshal.SymbolMatching Wildcard where\n  matchedSymbols _ = [148]\n  showFailure _ node_960 =\n    \"expected \"\n      GHC.Base.<> ( \"wildcard\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_960 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_960) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_961 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_962 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_963 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_964 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_961\n        c1_962 = TreeSitter.Node.nodeStartPoint node_960\n      TreeSitter.Node.TSPoint\n        r2_963\n        c2_964 = TreeSitter.Node.nodeEndPoint node_960\n\nderiving instance GHC.Classes.Eq a_965 => GHC.Classes.Eq (Wildcard a_965)\n\nderiving instance GHC.Classes.Ord a_966 => GHC.Classes.Ord (Wildcard a_966)\n\nderiving instance GHC.Show.Show a_967 => GHC.Show.Show (Wildcard a_967)\n\ninstance AST.Unmarshal.Unmarshal Wildcard\n\ninstance Data.Foldable.Foldable Wildcard where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Wildcard where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Wildcard where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousBang = AST.Token.Token \"!\" 51\n\ntype AnonymousBangEqual = AST.Token.Token \"!=\" 33\n\ntype AnonymousPercent = AST.Token.Token \"%\" 42\n\ntype AnonymousPercentEqual = AST.Token.Token \"%=\" 24\n\ntype AnonymousAmpersand = AST.Token.Token \"&\" 14\n\ntype AnonymousAmpersandAmpersand = AST.Token.Token \"&&\" 34\n\ntype AnonymousAmpersandEqual = AST.Token.Token \"&=\" 21\n\ntype AnonymousLParen = AST.Token.Token \"(\" 13\n\ntype AnonymousRParen = AST.Token.Token \")\" 15\n\ntype AnonymousStar = AST.Token.Token \"*\" 38\n\ntype AnonymousStarEqual = AST.Token.Token \"*=\" 19\n\ntype AnonymousPlus = AST.Token.Token \"+\" 36\n\ntype AnonymousPlusPlus = AST.Token.Token \"++\" 53\n\ntype AnonymousPlusEqual = AST.Token.Token \"+=\" 17\n\ntype AnonymousComma = AST.Token.Token \",\" 48\n\ntype AnonymousMinus = AST.Token.Token \"-\" 37\n\ntype AnonymousMinusMinus = AST.Token.Token \"--\" 54\n\ntype AnonymousMinusEqual = AST.Token.Token \"-=\" 18\n\ntype AnonymousMinusRAngle = AST.Token.Token \"->\" 47\n\ntype AnonymousDot = AST.Token.Token \".\" 58\n\ntype AnonymousDotDotDot = AST.Token.Token \"...\" 118\n\ntype AnonymousSlash = AST.Token.Token \"/\" 39\n\ntype AnonymousSlashEqual = AST.Token.Token \"/=\" 20\n\ntype AnonymousColon = AST.Token.Token \":\" 50\n\ntype AnonymousColonColon = AST.Token.Token \"::\" 60\n\ntype AnonymousSemicolon = AST.Token.Token \";\" 62\n\ntype AnonymousLAngle = AST.Token.Token \"<\" 29\n\ntype AnonymousLAngleLAngle = AST.Token.Token \"<<\" 43\n\ntype AnonymousLAngleLAngleEqual = AST.Token.Token \"<<=\" 25\n\ntype AnonymousLAngleEqual = AST.Token.Token \"<=\" 32\n\ntype AnonymousEqual = AST.Token.Token \"=\" 16\n\ntype AnonymousEqualEqual = AST.Token.Token \"==\" 30\n\ntype AnonymousRAngle = AST.Token.Token \">\" 28\n\ntype AnonymousRAngleEqual = AST.Token.Token \">=\" 31\n\ntype AnonymousRAngleRAngle = AST.Token.Token \">>\" 44\n\ntype AnonymousRAngleRAngleEqual = AST.Token.Token \">>=\" 26\n\ntype AnonymousRAngleRAngleRAngle = AST.Token.Token \">>>\" 45\n\ntype AnonymousRAngleRAngleRAngleEqual = AST.Token.Token \">>>=\" 27\n\ntype AnonymousQuestion = AST.Token.Token \"?\" 49\n\ntype AnonymousAt = AST.Token.Token \"@\" 82\n\ntype AnonymousAtinterface = AST.Token.Token \"@interface\" 107\n\ntype AnonymousLBracket = AST.Token.Token \"[\" 56\n\ntype AnonymousRBracket = AST.Token.Token \"]\" 57\n\ntype AnonymousCaret = AST.Token.Token \"^\" 41\n\ntype AnonymousCaretEqual = AST.Token.Token \"^=\" 23\n\ntype AnonymousAbstract = AST.Token.Token \"abstract\" 100\n\ntype AnonymousAssert = AST.Token.Token \"assert\" 65\n\ndata BinaryIntegerLiteral a = BinaryIntegerLiteral {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_968.\n      AST.Traversable1.Class.Traversable1 a_968\n    )\n\ninstance AST.Unmarshal.SymbolMatching BinaryIntegerLiteral where\n  matchedSymbols _ = [5]\n  showFailure _ node_969 =\n    \"expected \"\n      GHC.Base.<> ( \"binary_integer_literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_969 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_969) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_970 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_971 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_972 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_973 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_970\n        c1_971 = TreeSitter.Node.nodeStartPoint node_969\n      TreeSitter.Node.TSPoint\n        r2_972\n        c2_973 = TreeSitter.Node.nodeEndPoint node_969\n\nderiving instance GHC.Classes.Eq a_974 => GHC.Classes.Eq (BinaryIntegerLiteral a_974)\n\nderiving instance GHC.Classes.Ord a_975 => GHC.Classes.Ord (BinaryIntegerLiteral a_975)\n\nderiving instance GHC.Show.Show a_976 => GHC.Show.Show (BinaryIntegerLiteral a_976)\n\ninstance AST.Unmarshal.Unmarshal BinaryIntegerLiteral\n\ninstance Data.Foldable.Foldable BinaryIntegerLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BinaryIntegerLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BinaryIntegerLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BooleanType a = BooleanType {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_977.\n      AST.Traversable1.Class.Traversable1 a_977\n    )\n\ninstance AST.Unmarshal.SymbolMatching BooleanType where\n  matchedSymbols _ = [116]\n  showFailure _ node_978 =\n    \"expected \"\n      GHC.Base.<> ( \"boolean_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_978 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_978) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_979 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_980 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_981 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_982 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_979\n        c1_980 = TreeSitter.Node.nodeStartPoint node_978\n      TreeSitter.Node.TSPoint\n        r2_981\n        c2_982 = TreeSitter.Node.nodeEndPoint node_978\n\nderiving instance GHC.Classes.Eq a_983 => GHC.Classes.Eq (BooleanType a_983)\n\nderiving instance GHC.Classes.Ord a_984 => GHC.Classes.Ord (BooleanType a_984)\n\nderiving instance GHC.Show.Show a_985 => GHC.Show.Show (BooleanType a_985)\n\ninstance AST.Unmarshal.Unmarshal BooleanType\n\ninstance Data.Foldable.Foldable BooleanType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BooleanType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BooleanType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousBreak = AST.Token.Token \"break\" 71\n\ntype AnonymousByte = AST.Token.Token \"byte\" 109\n\ntype AnonymousCase = AST.Token.Token \"case\" 67\n\ntype AnonymousCatch = AST.Token.Token \"catch\" 77\n\ntype AnonymousChar = AST.Token.Token \"char\" 113\n\ndata CharacterLiteral a = CharacterLiteral {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_986.\n      AST.Traversable1.Class.Traversable1 a_986\n    )\n\ninstance AST.Unmarshal.SymbolMatching CharacterLiteral where\n  matchedSymbols _ = [10]\n  showFailure _ node_987 =\n    \"expected \"\n      GHC.Base.<> ( \"character_literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_987 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_987) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_988 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_989 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_990 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_991 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_988\n        c1_989 = TreeSitter.Node.nodeStartPoint node_987\n      TreeSitter.Node.TSPoint\n        r2_990\n        c2_991 = TreeSitter.Node.nodeEndPoint node_987\n\nderiving instance GHC.Classes.Eq a_992 => GHC.Classes.Eq (CharacterLiteral a_992)\n\nderiving instance GHC.Classes.Ord a_993 => GHC.Classes.Ord (CharacterLiteral a_993)\n\nderiving instance GHC.Show.Show a_994 => GHC.Show.Show (CharacterLiteral a_994)\n\ninstance AST.Unmarshal.Unmarshal CharacterLiteral\n\ninstance Data.Foldable.Foldable CharacterLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CharacterLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CharacterLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousClass = AST.Token.Token \"class\" 59\n\ntype AnonymousContinue = AST.Token.Token \"continue\" 72\n\ndata DecimalFloatingPointLiteral a = DecimalFloatingPointLiteral\n  { ann :: a,\n    text :: Data.Text.Internal.Text\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_995.\n      AST.Traversable1.Class.Traversable1 a_995\n    )\n\ninstance AST.Unmarshal.SymbolMatching DecimalFloatingPointLiteral where\n  matchedSymbols _ = [6]\n  showFailure _ node_996 =\n    \"expected \"\n      GHC.Base.<> ( \"decimal_floating_point_literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_996 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_996) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_997 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_998 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_999 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1000 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_997\n        c1_998 = TreeSitter.Node.nodeStartPoint node_996\n      TreeSitter.Node.TSPoint\n        r2_999\n        c2_1000 = TreeSitter.Node.nodeEndPoint node_996\n\nderiving instance GHC.Classes.Eq a_1001 => GHC.Classes.Eq (DecimalFloatingPointLiteral a_1001)\n\nderiving instance GHC.Classes.Ord a_1002 => GHC.Classes.Ord (DecimalFloatingPointLiteral a_1002)\n\nderiving instance GHC.Show.Show a_1003 => GHC.Show.Show (DecimalFloatingPointLiteral a_1003)\n\ninstance AST.Unmarshal.Unmarshal DecimalFloatingPointLiteral\n\ninstance Data.Foldable.Foldable DecimalFloatingPointLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DecimalFloatingPointLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DecimalFloatingPointLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DecimalIntegerLiteral a = DecimalIntegerLiteral {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1004.\n      AST.Traversable1.Class.Traversable1 a_1004\n    )\n\ninstance AST.Unmarshal.SymbolMatching DecimalIntegerLiteral where\n  matchedSymbols _ = [2]\n  showFailure _ node_1005 =\n    \"expected \"\n      GHC.Base.<> ( \"decimal_integer_literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1005 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1005) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1006 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1007 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1008 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1009 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1006\n        c1_1007 = TreeSitter.Node.nodeStartPoint node_1005\n      TreeSitter.Node.TSPoint\n        r2_1008\n        c2_1009 = TreeSitter.Node.nodeEndPoint node_1005\n\nderiving instance GHC.Classes.Eq a_1010 => GHC.Classes.Eq (DecimalIntegerLiteral a_1010)\n\nderiving instance GHC.Classes.Ord a_1011 => GHC.Classes.Ord (DecimalIntegerLiteral a_1011)\n\nderiving instance GHC.Show.Show a_1012 => GHC.Show.Show (DecimalIntegerLiteral a_1012)\n\ninstance AST.Unmarshal.Unmarshal DecimalIntegerLiteral\n\ninstance Data.Foldable.Foldable DecimalIntegerLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DecimalIntegerLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DecimalIntegerLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousDefault = AST.Token.Token \"default\" 68\n\ntype AnonymousDo = AST.Token.Token \"do\" 69\n\ntype AnonymousDouble = AST.Token.Token \"double\" 115\n\ntype AnonymousElse = AST.Token.Token \"else\" 80\n\ntype AnonymousEnum = AST.Token.Token \"enum\" 96\n\ntype AnonymousExports = AST.Token.Token \"exports\" 86\n\ntype AnonymousExtends = AST.Token.Token \"extends\" 61\n\ndata False a = False {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1013.\n      AST.Traversable1.Class.Traversable1 a_1013\n    )\n\ninstance AST.Unmarshal.SymbolMatching False where\n  matchedSymbols _ = [9]\n  showFailure _ node_1014 =\n    \"expected \"\n      GHC.Base.<> ( \"false\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1014 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1014) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1015 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1016 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1017 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1018 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1015\n        c1_1016 = TreeSitter.Node.nodeStartPoint node_1014\n      TreeSitter.Node.TSPoint\n        r2_1017\n        c2_1018 = TreeSitter.Node.nodeEndPoint node_1014\n\nderiving instance GHC.Classes.Eq a_1019 => GHC.Classes.Eq (False a_1019)\n\nderiving instance GHC.Classes.Ord a_1020 => GHC.Classes.Ord (False a_1020)\n\nderiving instance GHC.Show.Show a_1021 => GHC.Show.Show (False a_1021)\n\ninstance AST.Unmarshal.Unmarshal False\n\ninstance Data.Foldable.Foldable False where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor False where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable False where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousFinal = AST.Token.Token \"final\" 101\n\ntype AnonymousFinally = AST.Token.Token \"finally\" 78\n\ntype AnonymousFloat = AST.Token.Token \"float\" 114\n\ntype AnonymousFor = AST.Token.Token \"for\" 81\n\ndata HexFloatingPointLiteral a = HexFloatingPointLiteral\n  { ann :: a,\n    text :: Data.Text.Internal.Text\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1022.\n      AST.Traversable1.Class.Traversable1 a_1022\n    )\n\ninstance AST.Unmarshal.SymbolMatching HexFloatingPointLiteral where\n  matchedSymbols _ = [7]\n  showFailure _ node_1023 =\n    \"expected \"\n      GHC.Base.<> ( \"hex_floating_point_literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1023 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1023) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1024 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1025 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1026 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1027 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1024\n        c1_1025 = TreeSitter.Node.nodeStartPoint node_1023\n      TreeSitter.Node.TSPoint\n        r2_1026\n        c2_1027 = TreeSitter.Node.nodeEndPoint node_1023\n\nderiving instance GHC.Classes.Eq a_1028 => GHC.Classes.Eq (HexFloatingPointLiteral a_1028)\n\nderiving instance GHC.Classes.Ord a_1029 => GHC.Classes.Ord (HexFloatingPointLiteral a_1029)\n\nderiving instance GHC.Show.Show a_1030 => GHC.Show.Show (HexFloatingPointLiteral a_1030)\n\ninstance AST.Unmarshal.Unmarshal HexFloatingPointLiteral\n\ninstance Data.Foldable.Foldable HexFloatingPointLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor HexFloatingPointLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable HexFloatingPointLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata HexIntegerLiteral a = HexIntegerLiteral {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1031.\n      AST.Traversable1.Class.Traversable1 a_1031\n    )\n\ninstance AST.Unmarshal.SymbolMatching HexIntegerLiteral where\n  matchedSymbols _ = [3]\n  showFailure _ node_1032 =\n    \"expected \"\n      GHC.Base.<> ( \"hex_integer_literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1032 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1032) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1033 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1034 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1035 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1036 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1033\n        c1_1034 = TreeSitter.Node.nodeStartPoint node_1032\n      TreeSitter.Node.TSPoint\n        r2_1035\n        c2_1036 = TreeSitter.Node.nodeEndPoint node_1032\n\nderiving instance GHC.Classes.Eq a_1037 => GHC.Classes.Eq (HexIntegerLiteral a_1037)\n\nderiving instance GHC.Classes.Ord a_1038 => GHC.Classes.Ord (HexIntegerLiteral a_1038)\n\nderiving instance GHC.Show.Show a_1039 => GHC.Show.Show (HexIntegerLiteral a_1039)\n\ninstance AST.Unmarshal.Unmarshal HexIntegerLiteral\n\ninstance Data.Foldable.Foldable HexIntegerLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor HexIntegerLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable HexIntegerLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Identifier a = Identifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1040.\n      AST.Traversable1.Class.Traversable1 a_1040\n    )\n\ninstance AST.Unmarshal.SymbolMatching Identifier where\n  matchedSymbols _ = [1]\n  showFailure _ node_1041 =\n    \"expected \"\n      GHC.Base.<> ( \"identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1041 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1041) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1042 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1043 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1044 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1045 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1042\n        c1_1043 = TreeSitter.Node.nodeStartPoint node_1041\n      TreeSitter.Node.TSPoint\n        r2_1044\n        c2_1045 = TreeSitter.Node.nodeEndPoint node_1041\n\nderiving instance GHC.Classes.Eq a_1046 => GHC.Classes.Eq (Identifier a_1046)\n\nderiving instance GHC.Classes.Ord a_1047 => GHC.Classes.Ord (Identifier a_1047)\n\nderiving instance GHC.Show.Show a_1048 => GHC.Show.Show (Identifier a_1048)\n\ninstance AST.Unmarshal.Unmarshal Identifier\n\ninstance Data.Foldable.Foldable Identifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Identifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Identifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousIf = AST.Token.Token \"if\" 79\n\ntype AnonymousImplements = AST.Token.Token \"implements\" 106\n\ntype AnonymousImport = AST.Token.Token \"import\" 95\n\ntype AnonymousInstanceof = AST.Token.Token \"instanceof\" 46\n\ntype AnonymousInt = AST.Token.Token \"int\" 111\n\ntype AnonymousInterface = AST.Token.Token \"interface\" 108\n\ntype AnonymousLong = AST.Token.Token \"long\" 112\n\ntype AnonymousModule = AST.Token.Token \"module\" 84\n\ntype AnonymousNative = AST.Token.Token \"native\" 103\n\ntype AnonymousNew = AST.Token.Token \"new\" 55\n\ndata NullLiteral a = NullLiteral {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1049.\n      AST.Traversable1.Class.Traversable1 a_1049\n    )\n\ninstance AST.Unmarshal.SymbolMatching NullLiteral where\n  matchedSymbols _ = [12]\n  showFailure _ node_1050 =\n    \"expected \"\n      GHC.Base.<> ( \"null_literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1050 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1050) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1051 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1052 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1053 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1054 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1051\n        c1_1052 = TreeSitter.Node.nodeStartPoint node_1050\n      TreeSitter.Node.TSPoint\n        r2_1053\n        c2_1054 = TreeSitter.Node.nodeEndPoint node_1050\n\nderiving instance GHC.Classes.Eq a_1055 => GHC.Classes.Eq (NullLiteral a_1055)\n\nderiving instance GHC.Classes.Ord a_1056 => GHC.Classes.Ord (NullLiteral a_1056)\n\nderiving instance GHC.Show.Show a_1057 => GHC.Show.Show (NullLiteral a_1057)\n\ninstance AST.Unmarshal.Unmarshal NullLiteral\n\ninstance Data.Foldable.Foldable NullLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NullLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NullLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata OctalIntegerLiteral a = OctalIntegerLiteral {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1058.\n      AST.Traversable1.Class.Traversable1 a_1058\n    )\n\ninstance AST.Unmarshal.SymbolMatching OctalIntegerLiteral where\n  matchedSymbols _ = [4]\n  showFailure _ node_1059 =\n    \"expected \"\n      GHC.Base.<> ( \"octal_integer_literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1059 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1059) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1060 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1061 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1062 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1063 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1060\n        c1_1061 = TreeSitter.Node.nodeStartPoint node_1059\n      TreeSitter.Node.TSPoint\n        r2_1062\n        c2_1063 = TreeSitter.Node.nodeEndPoint node_1059\n\nderiving instance GHC.Classes.Eq a_1064 => GHC.Classes.Eq (OctalIntegerLiteral a_1064)\n\nderiving instance GHC.Classes.Ord a_1065 => GHC.Classes.Ord (OctalIntegerLiteral a_1065)\n\nderiving instance GHC.Show.Show a_1066 => GHC.Show.Show (OctalIntegerLiteral a_1066)\n\ninstance AST.Unmarshal.Unmarshal OctalIntegerLiteral\n\ninstance Data.Foldable.Foldable OctalIntegerLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor OctalIntegerLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable OctalIntegerLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousOpen = AST.Token.Token \"open\" 83\n\ntype AnonymousOpens = AST.Token.Token \"opens\" 88\n\ntype AnonymousPackage = AST.Token.Token \"package\" 94\n\ntype AnonymousPrivate = AST.Token.Token \"private\" 99\n\ntype AnonymousProtected = AST.Token.Token \"protected\" 98\n\ntype AnonymousProvides = AST.Token.Token \"provides\" 90\n\ntype AnonymousPublic = AST.Token.Token \"public\" 97\n\ntype AnonymousRequires = AST.Token.Token \"requires\" 85\n\ntype AnonymousReturn = AST.Token.Token \"return\" 73\n\ntype AnonymousShort = AST.Token.Token \"short\" 110\n\ntype AnonymousStatic = AST.Token.Token \"static\" 93\n\ntype AnonymousStrictfp = AST.Token.Token \"strictfp\" 102\n\ndata StringLiteral a = StringLiteral {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1067.\n      AST.Traversable1.Class.Traversable1 a_1067\n    )\n\ninstance AST.Unmarshal.SymbolMatching StringLiteral where\n  matchedSymbols _ = [11]\n  showFailure _ node_1068 =\n    \"expected \"\n      GHC.Base.<> ( \"string_literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1068 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1068) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1069 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1070 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1071 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1072 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1069\n        c1_1070 = TreeSitter.Node.nodeStartPoint node_1068\n      TreeSitter.Node.TSPoint\n        r2_1071\n        c2_1072 = TreeSitter.Node.nodeEndPoint node_1068\n\nderiving instance GHC.Classes.Eq a_1073 => GHC.Classes.Eq (StringLiteral a_1073)\n\nderiving instance GHC.Classes.Ord a_1074 => GHC.Classes.Ord (StringLiteral a_1074)\n\nderiving instance GHC.Show.Show a_1075 => GHC.Show.Show (StringLiteral a_1075)\n\ninstance AST.Unmarshal.Unmarshal StringLiteral\n\ninstance Data.Foldable.Foldable StringLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor StringLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable StringLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Super a = Super {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1076.\n      AST.Traversable1.Class.Traversable1 a_1076\n    )\n\ninstance AST.Unmarshal.SymbolMatching Super where\n  matchedSymbols _ = [121]\n  showFailure _ node_1077 =\n    \"expected \"\n      GHC.Base.<> ( \"super\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1077 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1077) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1078 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1079 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1080 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1081 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1078\n        c1_1079 = TreeSitter.Node.nodeStartPoint node_1077\n      TreeSitter.Node.TSPoint\n        r2_1080\n        c2_1081 = TreeSitter.Node.nodeEndPoint node_1077\n\nderiving instance GHC.Classes.Eq a_1082 => GHC.Classes.Eq (Super a_1082)\n\nderiving instance GHC.Classes.Ord a_1083 => GHC.Classes.Ord (Super a_1083)\n\nderiving instance GHC.Show.Show a_1084 => GHC.Show.Show (Super a_1084)\n\ninstance AST.Unmarshal.Unmarshal Super\n\ninstance Data.Foldable.Foldable Super where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Super where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Super where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousSwitch = AST.Token.Token \"switch\" 66\n\ntype AnonymousSynchronized = AST.Token.Token \"synchronized\" 74\n\ndata This a = This {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1085.\n      AST.Traversable1.Class.Traversable1 a_1085\n    )\n\ninstance AST.Unmarshal.SymbolMatching This where\n  matchedSymbols _ = [120]\n  showFailure _ node_1086 =\n    \"expected \"\n      GHC.Base.<> ( \"this\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1086 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1086) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1087 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1088 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1089 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1090 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1087\n        c1_1088 = TreeSitter.Node.nodeStartPoint node_1086\n      TreeSitter.Node.TSPoint\n        r2_1089\n        c2_1090 = TreeSitter.Node.nodeEndPoint node_1086\n\nderiving instance GHC.Classes.Eq a_1091 => GHC.Classes.Eq (This a_1091)\n\nderiving instance GHC.Classes.Ord a_1092 => GHC.Classes.Ord (This a_1092)\n\nderiving instance GHC.Show.Show a_1093 => GHC.Show.Show (This a_1093)\n\ninstance AST.Unmarshal.Unmarshal This\n\ninstance Data.Foldable.Foldable This where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor This where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable This where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousThrow = AST.Token.Token \"throw\" 75\n\ntype AnonymousThrows = AST.Token.Token \"throws\" 119\n\ntype AnonymousTo = AST.Token.Token \"to\" 87\n\ntype AnonymousTransient = AST.Token.Token \"transient\" 104\n\ntype AnonymousTransitive = AST.Token.Token \"transitive\" 92\n\ndata True a = True {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1094.\n      AST.Traversable1.Class.Traversable1 a_1094\n    )\n\ninstance AST.Unmarshal.SymbolMatching True where\n  matchedSymbols _ = [8]\n  showFailure _ node_1095 =\n    \"expected \"\n      GHC.Base.<> ( \"true\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1095 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1095) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1096 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1097 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1098 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1099 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1096\n        c1_1097 = TreeSitter.Node.nodeStartPoint node_1095\n      TreeSitter.Node.TSPoint\n        r2_1098\n        c2_1099 = TreeSitter.Node.nodeEndPoint node_1095\n\nderiving instance GHC.Classes.Eq a_1100 => GHC.Classes.Eq (True a_1100)\n\nderiving instance GHC.Classes.Ord a_1101 => GHC.Classes.Ord (True a_1101)\n\nderiving instance GHC.Show.Show a_1102 => GHC.Show.Show (True a_1102)\n\ninstance AST.Unmarshal.Unmarshal True\n\ninstance Data.Foldable.Foldable True where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor True where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable True where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousTry = AST.Token.Token \"try\" 76\n\ndata TypeIdentifier a = TypeIdentifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1103.\n      AST.Traversable1.Class.Traversable1 a_1103\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeIdentifier where\n  matchedSymbols _ = [274]\n  showFailure _ node_1104 =\n    \"expected \"\n      GHC.Base.<> ( \"type_identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1104 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1104) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1105 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1106 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1107 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1108 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1105\n        c1_1106 = TreeSitter.Node.nodeStartPoint node_1104\n      TreeSitter.Node.TSPoint\n        r2_1107\n        c2_1108 = TreeSitter.Node.nodeEndPoint node_1104\n\nderiving instance GHC.Classes.Eq a_1109 => GHC.Classes.Eq (TypeIdentifier a_1109)\n\nderiving instance GHC.Classes.Ord a_1110 => GHC.Classes.Ord (TypeIdentifier a_1110)\n\nderiving instance GHC.Show.Show a_1111 => GHC.Show.Show (TypeIdentifier a_1111)\n\ninstance AST.Unmarshal.Unmarshal TypeIdentifier\n\ninstance Data.Foldable.Foldable TypeIdentifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeIdentifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeIdentifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousUses = AST.Token.Token \"uses\" 89\n\ndata VoidType a = VoidType {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1112.\n      AST.Traversable1.Class.Traversable1 a_1112\n    )\n\ninstance AST.Unmarshal.SymbolMatching VoidType where\n  matchedSymbols _ = [117]\n  showFailure _ node_1113 =\n    \"expected \"\n      GHC.Base.<> ( \"void_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1113 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1113) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1114 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1115 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1116 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1117 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1114\n        c1_1115 = TreeSitter.Node.nodeStartPoint node_1113\n      TreeSitter.Node.TSPoint\n        r2_1116\n        c2_1117 = TreeSitter.Node.nodeEndPoint node_1113\n\nderiving instance GHC.Classes.Eq a_1118 => GHC.Classes.Eq (VoidType a_1118)\n\nderiving instance GHC.Classes.Ord a_1119 => GHC.Classes.Ord (VoidType a_1119)\n\nderiving instance GHC.Show.Show a_1120 => GHC.Show.Show (VoidType a_1120)\n\ninstance AST.Unmarshal.Unmarshal VoidType\n\ninstance Data.Foldable.Foldable VoidType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor VoidType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable VoidType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousVolatile = AST.Token.Token \"volatile\" 105\n\ntype AnonymousWhile = AST.Token.Token \"while\" 70\n\ntype AnonymousWith = AST.Token.Token \"with\" 91\n\ntype AnonymousLBrace = AST.Token.Token \"{\" 63\n\ntype AnonymousPipe = AST.Token.Token \"|\" 40\n\ntype AnonymousPipeEqual = AST.Token.Token \"|=\" 22\n\ntype AnonymousPipePipe = AST.Token.Token \"||\" 35\n\ntype AnonymousRBrace = AST.Token.Token \"}\" 64\n\ntype AnonymousTilde = AST.Token.Token \"~\" 52\n"
  },
  {
    "path": "semantic-java/src/Language/Java/Grammar.hs",
    "content": "{-# LANGUAGE TemplateHaskell #-}\n\nmodule Language.Java.Grammar\n( tree_sitter_java\n, Grammar(..)\n) where\n\nimport AST.Grammar.TH\nimport Language.Haskell.TH\nimport TreeSitter.Java (tree_sitter_java)\n\n-- | Statically-known rules corresponding to symbols in the grammar.\nmkStaticallyKnownRuleGrammarData (mkName \"Grammar\") tree_sitter_java\n"
  },
  {
    "path": "semantic-java/src/Language/Java/Tags.hs",
    "content": "{-# LANGUAGE DefaultSignatures #-}\n{-# LANGUAGE DisambiguateRecordFields #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE NamedFieldPuns #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n\nmodule Language.Java.Tags\n  ( ToTags (..),\n  )\nwhere\n\nimport AST.Element\nimport qualified AST.Parse as Parse\nimport AST.Token\nimport AST.Traversable1\nimport Control.Effect.Reader\nimport Control.Effect.Writer\nimport Control.Effect.State\nimport Data.Foldable\nimport qualified Language.Java.AST as Java\nimport Proto.Semantic as P\nimport Source.Loc\nimport Source.Range\nimport Source.Source as Source\nimport qualified Tags.Tagging.Precise as Tags\n\nclass ToTags t where\n  tags ::\n    ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n      Has (Writer Tags.Tags) sig m\n    ) =>\n    t Loc ->\n    m ()\n  default tags ::\n    ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n      Has (Writer Tags.Tags) sig m,\n      Traversable1 ToTags t\n    ) =>\n    t Loc ->\n    m ()\n  tags = gtags\n\ninstance (ToTags l, ToTags r) => ToTags (l :+: r) where\n  tags (L1 l) = tags l\n  tags (R1 r) = tags r\n\ninstance ToTags (Token sym n) where tags _ = pure ()\n\ninstance ToTags Java.MethodDeclaration where\n  tags\n    t@Java.MethodDeclaration\n      { ann = Loc {byteRange = range},\n        name = Parse.Success (Java.Identifier {text, ann}),\n        body\n      } = do\n      let srcRange =\n              range\n                { end = case body of\n                    Just (Parse.Success (Java.Block {ann = Loc Range {end} _})) -> end\n                    Nothing -> end range\n                    Just (Parse.Fail _) -> end range\n                }\n      Tags.yield text P.METHOD P.DEFINITION ann srcRange\n      gtags t\n  tags _ = pure ()\n\n-- TODO: we can coalesce a lot of these instances given proper use of HasField\n-- to do the equivalent of type-generic pattern-matching.\n\ninstance ToTags Java.ClassDeclaration where\n  tags\n    t@Java.ClassDeclaration\n      { ann = Loc {byteRange = Range {start}},\n        name = Parse.Success (Java.Identifier {text, ann}),\n        body = Parse.Success (Java.ClassBody {ann = Loc Range {start = end} _})\n      } = do\n      Tags.yield text P.CLASS P.DEFINITION ann (Range start end)\n      gtags t\n  tags _ = pure ()\n\ninstance ToTags Java.MethodInvocation where\n  tags\n    t@Java.MethodInvocation\n      { ann = Loc {byteRange = range},\n        name = Parse.Success (Java.Identifier {text, ann})\n      } = do\n      Tags.yield text P.CALL P.REFERENCE ann range\n      gtags t\n  tags _ = pure ()\n\ninstance ToTags Java.InterfaceDeclaration where\n  tags\n    t@Java.InterfaceDeclaration\n      { ann = Loc {byteRange},\n        name = Parse.Success (Java.Identifier {text, ann})\n      } = do\n      Tags.yield text P.INTERFACE P.DEFINITION ann byteRange\n      gtags t\n  tags _ = pure ()\n\ninstance ToTags Java.InterfaceTypeList where\n  tags t@Java.InterfaceTypeList {extraChildren = interfaces} = do\n    for_ interfaces $ \\x -> case x of\n      Parse.Success (Java.Type (Prj (Java.UnannotatedType (Prj (Java.SimpleType (Prj Java.TypeIdentifier {ann = loc@Loc {byteRange = range}, text = name})))))) ->\n        Tags.yield name P.IMPLEMENTATION P.REFERENCE loc range\n      _ -> pure ()\n    gtags t\n\ngtags ::\n  ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n    Has (Writer Tags.Tags) sig m,\n    Traversable1 ToTags t\n  ) =>\n  t Loc ->\n  m ()\ngtags = traverse1_ @ToTags (const (pure ())) tags\n\ninstance ToTags Java.AnnotatedType\ninstance ToTags Java.Annotation\ninstance ToTags Java.AnnotationArgumentList\ninstance ToTags Java.AnnotationTypeBody\ninstance ToTags Java.AnnotationTypeDeclaration\ninstance ToTags Java.AnnotationTypeElementDeclaration\ninstance ToTags Java.ArgumentList\ninstance ToTags Java.ArrayAccess\ninstance ToTags Java.ArrayCreationExpression\ninstance ToTags Java.ArrayInitializer\ninstance ToTags Java.ArrayType\ninstance ToTags Java.AssertStatement\ninstance ToTags Java.AssignmentExpression\ninstance ToTags Java.Asterisk\ninstance ToTags Java.BinaryExpression\ninstance ToTags Java.BinaryIntegerLiteral\ninstance ToTags Java.Block\ninstance ToTags Java.BooleanType\ninstance ToTags Java.BreakStatement\ninstance ToTags Java.CastExpression\ninstance ToTags Java.CatchClause\ninstance ToTags Java.CatchFormalParameter\ninstance ToTags Java.CatchType\ninstance ToTags Java.CharacterLiteral\ninstance ToTags Java.ClassBody\n-- instance ToTags Java.ClassDeclaration\ninstance ToTags Java.ClassLiteral\ninstance ToTags Java.ConstantDeclaration\ninstance ToTags Java.ConstructorBody\ninstance ToTags Java.ConstructorDeclaration\ninstance ToTags Java.ContinueStatement\ninstance ToTags Java.DecimalFloatingPointLiteral\ninstance ToTags Java.DecimalIntegerLiteral\ninstance ToTags Java.Declaration\ninstance ToTags Java.Dimensions\ninstance ToTags Java.DimensionsExpr\ninstance ToTags Java.DoStatement\ninstance ToTags Java.ElementValueArrayInitializer\ninstance ToTags Java.ElementValuePair\ninstance ToTags Java.EnhancedForStatement\ninstance ToTags Java.EnumBody\ninstance ToTags Java.EnumBodyDeclarations\ninstance ToTags Java.EnumConstant\ninstance ToTags Java.EnumDeclaration\ninstance ToTags Java.ExplicitConstructorInvocation\ninstance ToTags Java.Expression\ninstance ToTags Java.ExpressionStatement\ninstance ToTags Java.ExtendsInterfaces\ninstance ToTags Java.False\ninstance ToTags Java.FieldAccess\ninstance ToTags Java.FieldDeclaration\ninstance ToTags Java.FinallyClause\ninstance ToTags Java.FloatingPointType\ninstance ToTags Java.ForInit\ninstance ToTags Java.ForStatement\ninstance ToTags Java.FormalParameter\ninstance ToTags Java.FormalParameters\ninstance ToTags Java.GenericType\ninstance ToTags Java.HexFloatingPointLiteral\ninstance ToTags Java.HexIntegerLiteral\ninstance ToTags Java.Identifier\ninstance ToTags Java.IfStatement\ninstance ToTags Java.ImportDeclaration\ninstance ToTags Java.InferredParameters\ninstance ToTags Java.InstanceofExpression\ninstance ToTags Java.IntegralType\ninstance ToTags Java.InterfaceBody\n--instance ToTags Java.InterfaceDeclaration\n-- instance ToTags Java.InterfaceTypeList\ninstance ToTags Java.LabeledStatement\ninstance ToTags Java.LambdaExpression\ninstance ToTags Java.Literal\ninstance ToTags Java.LocalVariableDeclaration\ninstance ToTags Java.LocalVariableDeclarationStatement\ninstance ToTags Java.MarkerAnnotation\n-- instance ToTags Java.MethodDeclaration\n-- instance ToTags Java.MethodInvocation\ninstance ToTags Java.MethodReference\ninstance ToTags Java.Modifiers\ninstance ToTags Java.ModuleDeclaration\ninstance ToTags Java.ModuleDirective\ninstance ToTags Java.ModuleName\ninstance ToTags Java.NullLiteral\ninstance ToTags Java.ObjectCreationExpression\ninstance ToTags Java.OctalIntegerLiteral\ninstance ToTags Java.PackageDeclaration\ninstance ToTags Java.ParenthesizedExpression\ninstance ToTags Java.Primary\ninstance ToTags Java.Program\ninstance ToTags Java.ReceiverParameter\ninstance ToTags Java.RequiresModifier\ninstance ToTags Java.Resource\ninstance ToTags Java.ResourceSpecification\ninstance ToTags Java.ReturnStatement\ninstance ToTags Java.ScopedIdentifier\ninstance ToTags Java.ScopedTypeIdentifier\ninstance ToTags Java.SimpleType\ninstance ToTags Java.SpreadParameter\ninstance ToTags Java.Statement\ninstance ToTags Java.StaticInitializer\ninstance ToTags Java.StringLiteral\ninstance ToTags Java.Super\ninstance ToTags Java.SuperInterfaces\ninstance ToTags Java.Superclass\ninstance ToTags Java.SwitchBlock\ninstance ToTags Java.SwitchLabel\ninstance ToTags Java.SwitchStatement\ninstance ToTags Java.SynchronizedStatement\ninstance ToTags Java.TernaryExpression\ninstance ToTags Java.This\ninstance ToTags Java.ThrowStatement\ninstance ToTags Java.Throws\ninstance ToTags Java.True\ninstance ToTags Java.TryStatement\ninstance ToTags Java.TryWithResourcesStatement\ninstance ToTags Java.Type\ninstance ToTags Java.TypeArguments\ninstance ToTags Java.TypeBound\ninstance ToTags Java.TypeIdentifier\ninstance ToTags Java.TypeParameter\ninstance ToTags Java.TypeParameters\ninstance ToTags Java.UnannotatedType\ninstance ToTags Java.UnaryExpression\ninstance ToTags Java.UpdateExpression\ninstance ToTags Java.VariableDeclarator\ninstance ToTags Java.VoidType\ninstance ToTags Java.WhileStatement\ninstance ToTags Java.Wildcard\n"
  },
  {
    "path": "semantic-java/src/Language/Java.hs",
    "content": "{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n-- | Semantic functionality for Java programs.\nmodule Language.Java\n( Term(..)\n, Language.Java.Grammar.tree_sitter_java\n) where\n\nimport           AST.Marshal.JSON\nimport           Data.Proxy\nimport qualified Language.Java.AST as Java\nimport qualified Language.Java.Tags as JavaTags\nimport qualified Tags.Tagging.Precise as Tags\nimport qualified Language.Java.Grammar (tree_sitter_java)\nimport qualified AST.Unmarshal as TS\n\nnewtype Term a = Term { getTerm :: Java.Program a }\n  deriving MarshalJSON\n\ninstance TS.SymbolMatching Term where\n  matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy Java.Program)\n  showFailure _ = TS.showFailure (Proxy :: Proxy Java.Program)\n\ninstance TS.Unmarshal Term where\n  matchers = fmap (fmap (TS.hoist Term)) TS.matchers\n\ninstance Tags.ToTags Term where\n  tags src = Tags.runTagging src . JavaTags.tags . getTerm\n"
  },
  {
    "path": "semantic-java/test/PreciseTest.hs",
    "content": "{-# LANGUAGE CPP #-}\n{-# LANGUAGE ImplicitParams #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE TypeApplications #-}\n{-# OPTIONS_GHC -Wno-unused-imports #-}\nmodule Main\n  ( main,\n  )\nwhere\n\nimport           AST.TestHelpers\nimport           AST.Unmarshal\nimport qualified Language.Java.AST as Java\nimport qualified System.Path.Fixture as Fixture\nimport           Test.Tasty\nimport           TreeSitter.Java\n\nmain :: IO ()\nmain = do\n#if BAZEL_BUILD\n  rf <- Fixture.create\n  --\n  let ?project = \"external/tree-sitter-java\"\n      ?runfiles = rf\n  let dirs = Fixture.absRelDir \"corpus\"\n#else\n  dirs <- Java.getTestCorpusDir\n#endif\n  readCorpusFiles' dirs\n    >>= traverse (testCorpus parse)\n    >>= defaultMain . tests\n  where\n    parse = parseByteString @Java.Program @() tree_sitter_java\n\ntests :: [TestTree] -> TestTree\ntests = testGroup \"tree-sitter-java corpus tests\"\n"
  },
  {
    "path": "semantic-json/BUILD.bazel",
    "content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\n    \"//:build/common.bzl\",\n    \"semantic_language_library\",\n)\n\nsemantic_language_library(\n    name = \"semantic-json\",\n    srcs = glob([\"src/**/*.hs\"]),\n    language = \"json\",\n)\n"
  },
  {
    "path": "semantic-json/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 GitHub\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "semantic-json/README.md",
    "content": "# semantic-json\n\nSemantic support for JSON.\n\n\n## Development\n\nThis project consists of a Haskell package named `semantic-json`. The library’s sources are in [`src`][].\n\nDevelopment of `semantic-json` is typically done using `cabal v2-build`:\n\n```shell\ncabal v2-build # build the library\ncabal v2-repl  # load the package into ghci\ncabal v2-test  # build and run the doctests\n```\n\n[`src`]: https://github.com/github/semantic/tree/master/semantic-json/src\n"
  },
  {
    "path": "semantic-json/Setup.hs",
    "content": "import Distribution.Simple\nmain = defaultMain\n"
  },
  {
    "path": "semantic-json/semantic-json.cabal",
    "content": "cabal-version:       2.4\n\nname:                semantic-json\nversion:             0.0.0.0\nsynopsis:            Semantic support for JSON\ndescription:         Semantic support for JSON.\nhomepage:            https://github.com/github/semantic/tree/master/semantic-json#readme\nbug-reports:         https://github.com/github/semantic/issues\nlicense:             MIT\nlicense-file:        LICENSE\nauthor:              The Semantic authors\nmaintainer:          opensource+semantic@github.com\ncopyright:           (c) 2019 GitHub, Inc.\ncategory:            Language\nbuild-type:          Simple\nstability:           alpha\nextra-source-files:  README.md\n\ntested-with:         GHC == 8.6.5\n\ncommon haskell\n  default-language:    Haskell2010\n  ghc-options:\n    -Weverything\n    -Wno-missing-local-signatures\n    -Wno-missing-import-lists\n    -Wno-implicit-prelude\n    -Wno-safe\n    -Wno-unsafe\n    -Wno-name-shadowing\n    -Wno-monomorphism-restriction\n    -Wno-missed-specialisations\n    -Wno-all-missed-specialisations\n    -Wno-star-is-type\n  if (impl(ghc >= 8.8))\n    ghc-options: -Wno-missing-deriving-strategies\n  if (impl(ghc >= 8.10))\n    ghc-options:\n      -Wno-missing-safe-haskell-mode\n      -Wno-prepositive-qualified-module\n  if (impl(ghc >= 9.2))\n    ghc-options:\n      -Wno-missing-kind-signatures\n  cpp-options:\n    -DBAZEL_BUILD=0\n\nlibrary\n  import: haskell\n  exposed-modules:\n    Language.JSON\n    Language.JSON.AST\n    Language.JSON.Grammar\n  hs-source-dirs:      src\n  default-language:    Haskell2010\n  build-depends:\n    , base  >= 4.13 && < 5\n    , semantic-ast\n    , semantic-tags ^>= 0.0\n    , template-haskell  >= 2.15 && < 2.22\n    , text ^>= 1.2.3\n    , tree-sitter ^>= 0.9\n    , tree-sitter-json ^>= 0.7.0.1\n\ntest-suite test\n  import: haskell\n  type:             exitcode-stdio-1.0\n  hs-source-dirs:   test\n  main-is:          PreciseTest.hs\n  build-depends:\n    , base\n    , semantic-ast\n    , semantic-json\n    , tasty\n"
  },
  {
    "path": "semantic-json/src/Language/JSON/AST.hs",
    "content": "-- Language definition for JSON, generated by ast-generate. Do not edit!\n{-# LANGUAGE CPP #-}\n{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE DeriveTraversable #-}\n{-# LANGUAGE DerivingStrategies #-}\n{-# LANGUAGE DuplicateRecordFields #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE QuantifiedConstraints #-}\n{-# LANGUAGE StandaloneDeriving #-}\n{-# LANGUAGE TemplateHaskell #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\n{-# OPTIONS_GHC -fno-warn-unused-imports #-}\n\nmodule Language.JSON.AST (module Language.JSON.AST, getTestCorpusDir) where\n\nimport qualified AST.Parse\nimport qualified AST.Token\nimport qualified AST.Traversable1.Class\nimport qualified AST.Unmarshal\nimport qualified Data.Foldable\nimport qualified Data.List as Data.OldList\nimport qualified Data.Maybe as GHC.Maybe\nimport qualified Data.Text.Internal\nimport qualified Data.Traversable\nimport qualified GHC.Base\nimport qualified GHC.Generics\nimport qualified GHC.Records\nimport qualified GHC.Show\nimport TreeSitter.JSON (getTestCorpusDir)\nimport qualified TreeSitter.Node\nimport qualified Prelude as GHC.Classes\n\ndebugSymbolNames :: [GHC.Base.String]\ndebugSymbolNames = debugSymbolNames_0\n\ndebugSymbolNames_0 :: [GHC.Base.String]\ndebugSymbolNames_0 =\n  [ \"end\",\n    \"_{\",\n    \"_,\",\n    \"_}\",\n    \"_:\",\n    \"_[\",\n    \"_]\",\n    \"_\\\"\",\n    \"_string_content_token1\",\n    \"escape_sequence\",\n    \"number\",\n    \"true\",\n    \"false\",\n    \"null\",\n    \"document\",\n    \"_value\",\n    \"object\",\n    \"pair\",\n    \"array\",\n    \"string\",\n    \"string_content\",\n    \"_object_repeat1\",\n    \"_array_repeat1\",\n    \"_string_content_repeat1\"\n  ]\n\nnewtype Value a = Value {getValue :: ((Array GHC.Generics.:+: False GHC.Generics.:+: Null GHC.Generics.:+: Number GHC.Generics.:+: Object GHC.Generics.:+: String GHC.Generics.:+: True) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1.\n      AST.Traversable1.Class.Traversable1 a_1\n    )\n\ninstance GHC.Records.HasField \"ann\" (Value a_2) a_2 where\n  getField = AST.Unmarshal.gann GHC.Base.. getValue\n\nderiving instance GHC.Classes.Eq a_3 => GHC.Classes.Eq (Value a_3)\n\nderiving instance GHC.Classes.Ord a_4 => GHC.Classes.Ord (Value a_4)\n\nderiving instance GHC.Show.Show a_5 => GHC.Show.Show (Value a_5)\n\ninstance AST.Unmarshal.Unmarshal Value\n\ninstance Data.Foldable.Foldable Value where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Value where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Value where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Array a = Array {ann :: a, extraChildren :: ([AST.Parse.Err (Value a)])}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_6.\n      AST.Traversable1.Class.Traversable1 a_6\n    )\n\ninstance AST.Unmarshal.SymbolMatching Array where\n  matchedSymbols _ = [18]\n  showFailure _ node_7 =\n    \"expected \"\n      GHC.Base.<> ( \"array\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_7 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_7) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_8 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_9 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_10 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_11 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_8\n        c1_9 = TreeSitter.Node.nodeStartPoint node_7\n      TreeSitter.Node.TSPoint\n        r2_10\n        c2_11 = TreeSitter.Node.nodeEndPoint node_7\n\nderiving instance GHC.Classes.Eq a_12 => GHC.Classes.Eq (Array a_12)\n\nderiving instance GHC.Classes.Ord a_13 => GHC.Classes.Ord (Array a_13)\n\nderiving instance GHC.Show.Show a_14 => GHC.Show.Show (Array a_14)\n\ninstance AST.Unmarshal.Unmarshal Array\n\ninstance Data.Foldable.Foldable Array where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Array where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Array where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Document a = Document {ann :: a, extraChildren :: (AST.Parse.Err (Value a))}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_15.\n      AST.Traversable1.Class.Traversable1 a_15\n    )\n\ninstance AST.Unmarshal.SymbolMatching Document where\n  matchedSymbols _ = [14]\n  showFailure _ node_16 =\n    \"expected \"\n      GHC.Base.<> ( \"document\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_16 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_16) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_17 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_18 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_19 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_20 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_17\n        c1_18 = TreeSitter.Node.nodeStartPoint node_16\n      TreeSitter.Node.TSPoint\n        r2_19\n        c2_20 = TreeSitter.Node.nodeEndPoint node_16\n\nderiving instance GHC.Classes.Eq a_21 => GHC.Classes.Eq (Document a_21)\n\nderiving instance GHC.Classes.Ord a_22 => GHC.Classes.Ord (Document a_22)\n\nderiving instance GHC.Show.Show a_23 => GHC.Show.Show (Document a_23)\n\ninstance AST.Unmarshal.Unmarshal Document\n\ninstance Data.Foldable.Foldable Document where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Document where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Document where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Object a = Object {ann :: a, extraChildren :: ([AST.Parse.Err (Pair a)])}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_24.\n      AST.Traversable1.Class.Traversable1 a_24\n    )\n\ninstance AST.Unmarshal.SymbolMatching Object where\n  matchedSymbols _ = [16]\n  showFailure _ node_25 =\n    \"expected \"\n      GHC.Base.<> ( \"object\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_25 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_25) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_26 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_27 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_28 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_29 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_26\n        c1_27 = TreeSitter.Node.nodeStartPoint node_25\n      TreeSitter.Node.TSPoint\n        r2_28\n        c2_29 = TreeSitter.Node.nodeEndPoint node_25\n\nderiving instance GHC.Classes.Eq a_30 => GHC.Classes.Eq (Object a_30)\n\nderiving instance GHC.Classes.Ord a_31 => GHC.Classes.Ord (Object a_31)\n\nderiving instance GHC.Show.Show a_32 => GHC.Show.Show (Object a_32)\n\ninstance AST.Unmarshal.Unmarshal Object\n\ninstance Data.Foldable.Foldable Object where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Object where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Object where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Pair a = Pair\n  { ann :: a,\n    value :: (AST.Parse.Err (Value a)),\n    key :: (AST.Parse.Err ((Number GHC.Generics.:+: String) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_33.\n      AST.Traversable1.Class.Traversable1 a_33\n    )\n\ninstance AST.Unmarshal.SymbolMatching Pair where\n  matchedSymbols _ = [17]\n  showFailure _ node_34 =\n    \"expected \"\n      GHC.Base.<> ( \"pair\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_34 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_34) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_35 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_36 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_37 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_38 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_35\n        c1_36 = TreeSitter.Node.nodeStartPoint node_34\n      TreeSitter.Node.TSPoint\n        r2_37\n        c2_38 = TreeSitter.Node.nodeEndPoint node_34\n\nderiving instance GHC.Classes.Eq a_39 => GHC.Classes.Eq (Pair a_39)\n\nderiving instance GHC.Classes.Ord a_40 => GHC.Classes.Ord (Pair a_40)\n\nderiving instance GHC.Show.Show a_41 => GHC.Show.Show (Pair a_41)\n\ninstance AST.Unmarshal.Unmarshal Pair\n\ninstance Data.Foldable.Foldable Pair where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Pair where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Pair where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata String a = String\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (StringContent a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_42.\n      AST.Traversable1.Class.Traversable1 a_42\n    )\n\ninstance AST.Unmarshal.SymbolMatching String where\n  matchedSymbols _ = [19]\n  showFailure _ node_43 =\n    \"expected \"\n      GHC.Base.<> ( \"string\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_43 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_43) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_44 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_45 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_46 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_47 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_44\n        c1_45 = TreeSitter.Node.nodeStartPoint node_43\n      TreeSitter.Node.TSPoint\n        r2_46\n        c2_47 = TreeSitter.Node.nodeEndPoint node_43\n\nderiving instance GHC.Classes.Eq a_48 => GHC.Classes.Eq (String a_48)\n\nderiving instance GHC.Classes.Ord a_49 => GHC.Classes.Ord (String a_49)\n\nderiving instance GHC.Show.Show a_50 => GHC.Show.Show (String a_50)\n\ninstance AST.Unmarshal.Unmarshal String\n\ninstance Data.Foldable.Foldable String where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor String where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable String where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata StringContent a = StringContent\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (EscapeSequence a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_51.\n      AST.Traversable1.Class.Traversable1 a_51\n    )\n\ninstance AST.Unmarshal.SymbolMatching StringContent where\n  matchedSymbols _ = [20]\n  showFailure _ node_52 =\n    \"expected \"\n      GHC.Base.<> ( \"string_content\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_52 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_52) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_53 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_54 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_55 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_56 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_53\n        c1_54 = TreeSitter.Node.nodeStartPoint node_52\n      TreeSitter.Node.TSPoint\n        r2_55\n        c2_56 = TreeSitter.Node.nodeEndPoint node_52\n\nderiving instance GHC.Classes.Eq a_57 => GHC.Classes.Eq (StringContent a_57)\n\nderiving instance GHC.Classes.Ord a_58 => GHC.Classes.Ord (StringContent a_58)\n\nderiving instance GHC.Show.Show a_59 => GHC.Show.Show (StringContent a_59)\n\ninstance AST.Unmarshal.Unmarshal StringContent\n\ninstance Data.Foldable.Foldable StringContent where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor StringContent where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable StringContent where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousDQuote = AST.Token.Token \"\\\"\" 7\n\ntype AnonymousComma = AST.Token.Token \",\" 2\n\ntype AnonymousColon = AST.Token.Token \":\" 4\n\ntype AnonymousLBracket = AST.Token.Token \"[\" 5\n\ntype AnonymousRBracket = AST.Token.Token \"]\" 6\n\ndata EscapeSequence a = EscapeSequence {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_60.\n      AST.Traversable1.Class.Traversable1 a_60\n    )\n\ninstance AST.Unmarshal.SymbolMatching EscapeSequence where\n  matchedSymbols _ = [9]\n  showFailure _ node_61 =\n    \"expected \"\n      GHC.Base.<> ( \"escape_sequence\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_61 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_61) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_62 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_63 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_64 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_65 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_62\n        c1_63 = TreeSitter.Node.nodeStartPoint node_61\n      TreeSitter.Node.TSPoint\n        r2_64\n        c2_65 = TreeSitter.Node.nodeEndPoint node_61\n\nderiving instance GHC.Classes.Eq a_66 => GHC.Classes.Eq (EscapeSequence a_66)\n\nderiving instance GHC.Classes.Ord a_67 => GHC.Classes.Ord (EscapeSequence a_67)\n\nderiving instance GHC.Show.Show a_68 => GHC.Show.Show (EscapeSequence a_68)\n\ninstance AST.Unmarshal.Unmarshal EscapeSequence\n\ninstance Data.Foldable.Foldable EscapeSequence where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EscapeSequence where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EscapeSequence where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata False a = False {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_69.\n      AST.Traversable1.Class.Traversable1 a_69\n    )\n\ninstance AST.Unmarshal.SymbolMatching False where\n  matchedSymbols _ = [12]\n  showFailure _ node_70 =\n    \"expected \"\n      GHC.Base.<> ( \"false\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_70 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_70) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_71 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_72 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_73 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_74 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_71\n        c1_72 = TreeSitter.Node.nodeStartPoint node_70\n      TreeSitter.Node.TSPoint\n        r2_73\n        c2_74 = TreeSitter.Node.nodeEndPoint node_70\n\nderiving instance GHC.Classes.Eq a_75 => GHC.Classes.Eq (False a_75)\n\nderiving instance GHC.Classes.Ord a_76 => GHC.Classes.Ord (False a_76)\n\nderiving instance GHC.Show.Show a_77 => GHC.Show.Show (False a_77)\n\ninstance AST.Unmarshal.Unmarshal False\n\ninstance Data.Foldable.Foldable False where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor False where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable False where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Null a = Null {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_78.\n      AST.Traversable1.Class.Traversable1 a_78\n    )\n\ninstance AST.Unmarshal.SymbolMatching Null where\n  matchedSymbols _ = [13]\n  showFailure _ node_79 =\n    \"expected \"\n      GHC.Base.<> ( \"null\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_79 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_79) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_80 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_81 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_82 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_83 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_80\n        c1_81 = TreeSitter.Node.nodeStartPoint node_79\n      TreeSitter.Node.TSPoint\n        r2_82\n        c2_83 = TreeSitter.Node.nodeEndPoint node_79\n\nderiving instance GHC.Classes.Eq a_84 => GHC.Classes.Eq (Null a_84)\n\nderiving instance GHC.Classes.Ord a_85 => GHC.Classes.Ord (Null a_85)\n\nderiving instance GHC.Show.Show a_86 => GHC.Show.Show (Null a_86)\n\ninstance AST.Unmarshal.Unmarshal Null\n\ninstance Data.Foldable.Foldable Null where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Null where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Null where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Number a = Number {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_87.\n      AST.Traversable1.Class.Traversable1 a_87\n    )\n\ninstance AST.Unmarshal.SymbolMatching Number where\n  matchedSymbols _ = [10]\n  showFailure _ node_88 =\n    \"expected \"\n      GHC.Base.<> ( \"number\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_88 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_88) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_89 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_90 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_91 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_92 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_89\n        c1_90 = TreeSitter.Node.nodeStartPoint node_88\n      TreeSitter.Node.TSPoint\n        r2_91\n        c2_92 = TreeSitter.Node.nodeEndPoint node_88\n\nderiving instance GHC.Classes.Eq a_93 => GHC.Classes.Eq (Number a_93)\n\nderiving instance GHC.Classes.Ord a_94 => GHC.Classes.Ord (Number a_94)\n\nderiving instance GHC.Show.Show a_95 => GHC.Show.Show (Number a_95)\n\ninstance AST.Unmarshal.Unmarshal Number\n\ninstance Data.Foldable.Foldable Number where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Number where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Number where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata True a = True {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_96.\n      AST.Traversable1.Class.Traversable1 a_96\n    )\n\ninstance AST.Unmarshal.SymbolMatching True where\n  matchedSymbols _ = [11]\n  showFailure _ node_97 =\n    \"expected \"\n      GHC.Base.<> ( \"true\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_97 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_97) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_98 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_99 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_100 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_101 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_98\n        c1_99 = TreeSitter.Node.nodeStartPoint node_97\n      TreeSitter.Node.TSPoint\n        r2_100\n        c2_101 = TreeSitter.Node.nodeEndPoint node_97\n\nderiving instance GHC.Classes.Eq a_102 => GHC.Classes.Eq (True a_102)\n\nderiving instance GHC.Classes.Ord a_103 => GHC.Classes.Ord (True a_103)\n\nderiving instance GHC.Show.Show a_104 => GHC.Show.Show (True a_104)\n\ninstance AST.Unmarshal.Unmarshal True\n\ninstance Data.Foldable.Foldable True where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor True where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable True where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousLBrace = AST.Token.Token \"{\" 1\n\ntype AnonymousRBrace = AST.Token.Token \"}\" 3\n\n"
  },
  {
    "path": "semantic-json/src/Language/JSON/Grammar.hs",
    "content": "{-# LANGUAGE TemplateHaskell #-}\nmodule Language.JSON.Grammar\n( tree_sitter_json\n, Grammar(..)\n) where\n\nimport AST.Grammar.TH\nimport Language.Haskell.TH\nimport TreeSitter.JSON (tree_sitter_json)\n\n-- | Statically-known rules corresponding to symbols in the grammar.\nmkStaticallyKnownRuleGrammarData (mkName \"Grammar\") tree_sitter_json\n"
  },
  {
    "path": "semantic-json/src/Language/JSON.hs",
    "content": "{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n-- | Semantic functionality for JSON programs.\nmodule Language.JSON\n( Term(..)\n, TreeSitter.JSON.tree_sitter_json\n) where\n\nimport           AST.Marshal.JSON\nimport           Data.Proxy\nimport qualified Language.JSON.AST as JSON\nimport qualified Tags.Tagging.Precise as Tags\nimport qualified TreeSitter.JSON (tree_sitter_json)\nimport qualified AST.Unmarshal as TS\n\nnewtype Term a = Term { getTerm :: JSON.Document a }\n  deriving MarshalJSON\n\ninstance TS.SymbolMatching Term where\n  matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy JSON.Document)\n  showFailure _ = TS.showFailure (Proxy :: Proxy JSON.Document)\n\ninstance TS.Unmarshal Term where\n  matchers = fmap (fmap (TS.hoist Term)) TS.matchers\n\n-- | Tags aren’t really meaningful for JSON, but by implementing this we can avoid having to customize the set of parsers used for computing tags.\ninstance Tags.ToTags Term where\n  tags _ _ = []\n"
  },
  {
    "path": "semantic-json/test/PreciseTest.hs",
    "content": "{-# LANGUAGE CPP #-}\n{-# LANGUAGE DisambiguateRecordFields #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE TypeApplications #-}\nmodule Main (main) where\n\nimport           AST.TestHelpers\nimport           AST.Unmarshal\nimport qualified Language.JSON.AST as JSON\nimport           Language.JSON.Grammar\nimport           Test.Tasty\n\nmain :: IO ()\nmain = do\n#if BAZEL_BUILD\n  rf <- Fixture.create\n  let ?project = \"external/semantic-json\"\n      ?runfiles = rf\n  let dirs = Fixture.absRelDir \"corpus\"\n#else\n  dirs <- JSON.getTestCorpusDir\n#endif\n  readCorpusFiles' dirs\n    >>= traverse (testCorpus parse)\n    >>= defaultMain . tests\n  where parse = parseByteString @(JSON.Document) @() tree_sitter_json\n\ntests :: [TestTree] -> TestTree\ntests = testGroup \"tree-sitter-json corpus tests\"\n"
  },
  {
    "path": "semantic-parse/BUILD.bazel",
    "content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\n    \"@rules_haskell//haskell:defs.bzl\",\n    \"haskell_binary\",\n)\nload(\n    \"//:build/common.bzl\",\n    \"GHC_FLAGS\",\n)\n\nhaskell_binary(\n    name = \"exe\",\n    srcs = [\"app/Main.hs\"],\n    compiler_flags = GHC_FLAGS,\n    deps = [\n        \"//:base\",\n        \"//:bytestring\",\n        \"//:text\",\n        \"//semantic-ast\",\n        \"//semantic-python\",\n        \"//semantic-source\",\n        \"@stackage//:aeson\",\n        \"@stackage//:aeson-pretty\",\n        \"@stackage//:optparse-applicative\",\n        \"@stackage//:pretty-simple\",\n    ],\n)\n"
  },
  {
    "path": "semantic-parse/CHANGELOG.md",
    "content": "# Revision history for semantic-parse\n\n## 0.1.0.0 -- YYYY-mm-dd\n\n* First version. Released on an unsuspecting world.\n"
  },
  {
    "path": "semantic-parse/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 GitHub\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "semantic-parse/README.md",
    "content": "# semantic-parse\n\nThis package provides a command line tool that will output ASTs in supported formats.\n\n#### CLI\n\nTo output ASTs, run the `semantic-parse` command, specifying two mandatory options: 1) the format you'd like to return (ex., `Show`, `JSON`, etc.) and 2) the option specifying whether the source code will be passed in directly via command line (using `--sourceString`) or via providing the file path `--sourceFile`.\n\nFilepath:\n```\nsemantic-parse --format [FORMAT] --sourceFile [FILEPATH]\n```\n\nSource string:\n```\nsemantic-parse --format [FORMAT] --sourceString [SOURCE]\n```\n\nAn example command is:\n\n```\nsemantic-parse -- --format Show --sourceString \"a\"\n```\n\nThis will generate an AST\n\n```\nRight (Module {ann = (Range {start = 0, end = 1},Span {start = Pos {line = 0, column = 0}, end = Pos {line = 0, column = 1}}), extraChildren = [R1 (ExpressionStatementSimpleStatement (ExpressionStatement {ann = (Range {start = 0, end = 1},Span {start = Pos {line = 0, column = 0}, end = Pos {line = 0, column = 1}}), extraChildren = L1 (PrimaryExpressionExpression (IdentifierPrimaryExpression (Identifier {ann = (Range {start = 0, end = 1},Span {start = Pos {line = 0, column = 0}, end = Pos {line = 0, column = 1}}), bytes = \"a\"}))) :| []}))]})\n```\n"
  },
  {
    "path": "semantic-parse/Setup.hs",
    "content": "import Distribution.Simple\nmain = defaultMain\n"
  },
  {
    "path": "semantic-parse/app/Main.hs",
    "content": "{-# LANGUAGE TypeApplications #-}\n\nmodule Main (main) where\n\nimport AST.Unmarshal\nimport qualified Language.Python.AST as AST\nimport qualified Language.Python.Grammar as Python\nimport Source.Range\nimport Source.Span\nimport Data.Aeson (toJSON)\nimport Data.ByteString.Char8\nimport Data.ByteString (readFile)\nimport Options.Applicative hiding (style)\nimport Text.Pretty.Simple (pPrint, pPrintNoColor)\nimport Data.Foldable (traverse_)\nimport Control.Monad ((>=>))\nimport AST.Marshal.JSON (marshal)\nimport Data.ByteString.Lazy.Char8 (putStrLn)\nimport Data.Aeson.Encode.Pretty (encodePretty)\n\ndata SemanticAST = SemanticAST\n  { _format :: Format\n  , _noColor  :: Bool\n  , _source :: Either [FilePath] String\n  }\n\n-- Usage: semantic-parse --format ARG [--no-color] (--sourceString STRING | FILEPATHS…)\nparseAST :: Parser SemanticAST\nparseAST = SemanticAST\n  <$> option auto\n    ( long \"format\"\n    <> help \"Specify desired output: show, json, sexpression\" )\n  <*> switch\n    ( long \"no-color\"\n    <> help \"Print with color: --color\"\n    )\n  <*> (Left <$> some\n    (Options.Applicative.argument str (metavar \"FILEPATH(S)\"))\n    <|> Right <$> strOption\n      ( long \"sourceString\"\n      <> metavar \"STRING\"\n      <> help \"Specify source input to parse\"\n      ))\n\n\nmain :: IO ()\nmain = generateAST =<< execParser opts\n\n\ngenerateAST :: SemanticAST -> IO ()\ngenerateAST (SemanticAST format noColor source) =\n  getByteStrings >>= traverse_ go\n  where getByteStrings = case source of\n          Left filePaths -> traverse Data.ByteString.readFile filePaths\n          Right source   -> pure [Data.ByteString.Char8.pack source]\n        go = ast >=> display\n        ast = parseByteString @AST.Module @(Range, Span) Python.tree_sitter_python -- TODO: generalize for all languages\n        display = case format of\n          Json -> Data.ByteString.Lazy.Char8.putStrLn . encodePretty . either toJSON (marshal . fmap (const ())) -- TODO: replacing range and span annotations with () for which there is a ToJSON instance for now, deal with this later\n          Show -> print\n          Pretty | noColor -> pPrintNoColor\n                 | otherwise -> pPrint\n\n\nopts :: ParserInfo SemanticAST\nopts = info (parseAST <**> helper)\n  ( fullDesc\n <> progDesc \"Parse source code and produce an AST\"\n <> header \"semantic-parse is a package used to parse source code\" )\n\n-- TODO: Define formats for json, sexpression, etc.\ndata Format = Show\n            | Pretty\n            | Json\n  deriving (Read)\n"
  },
  {
    "path": "semantic-parse/semantic-parse.cabal",
    "content": "cabal-version:       2.4\n-- Initial package description 'semantic-ast.cabal' generated by 'cabal\n-- init'.  For further documentation, see\n-- http://haskell.org/cabal/users-guide/\n\nname:                semantic-parse\nversion:             0.1.0.0\n-- synopsis:\n-- description:\n-- bug-reports:\nlicense:             MIT\nlicense-file:        LICENSE\nauthor:              The Semantic Authors\nmaintainer:          opensource+semantic@github.com\ncopyright:           (c) 2019 GitHub, Inc.\ncategory:            Language\nextra-source-files:  CHANGELOG.md\n\ntested-with:         GHC == 8.6.5\n\ncommon haskell\n  default-language:    Haskell2010\n  ghc-options:\n    -Weverything\n    -Wno-missing-local-signatures\n    -Wno-missing-import-lists\n    -Wno-implicit-prelude\n    -Wno-safe\n    -Wno-unsafe\n    -Wno-name-shadowing\n    -Wno-monomorphism-restriction\n    -Wno-missed-specialisations\n    -Wno-all-missed-specialisations\n    -Wno-star-is-type\n  if (impl(ghc >= 8.8))\n    ghc-options: -Wno-missing-deriving-strategies\n  if (impl(ghc >= 8.10))\n    ghc-options:\n      -Wno-missing-safe-haskell-mode\n      -Wno-prepositive-qualified-module\n  if (impl(ghc >= 9.2))\n    ghc-options:\n      -Wno-missing-kind-signatures\n\nexecutable semantic-parse\n  import:              haskell\n  main-is:             Main.hs\n  -- other-modules:\n  -- other-extensions:\n  build-depends:\n    , aeson\n    , aeson-pretty\n    , base\n    , bytestring\n    , optparse-applicative\n    , pretty-simple\n    , semantic-ast\n    , semantic-python\n    , semantic-source ^>= 0.2\n  hs-source-dirs:      app\n  default-language:    Haskell2010\n"
  },
  {
    "path": "semantic-php/BUILD.bazel",
    "content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\n    \"//:build/common.bzl\",\n    \"semantic_language_library\",\n)\n\nsemantic_language_library(\n    name = \"semantic-php\",\n    srcs = glob([\"src/**/*.hs\"]),\n    language = \"php\",\n)\n"
  },
  {
    "path": "semantic-php/CHANGELOG.md",
    "content": "# Revision history for semantic-php\n\n## 0.1.0.0 -- YYYY-mm-dd\n\n* First version. Released on an unsuspecting world.\n"
  },
  {
    "path": "semantic-php/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 GitHub\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "semantic-php/README.md",
    "content": "# Semantic support for PHP\n\nThis package implements `semantic` support for PHP.\n"
  },
  {
    "path": "semantic-php/Setup.hs",
    "content": "import Distribution.Simple\nmain = defaultMain\n"
  },
  {
    "path": "semantic-php/semantic-php.cabal",
    "content": "cabal-version:       2.4\n\nname:                semantic-php\nversion:             0.0.0.0\nsynopsis:            Semantic support for PHP.\ndescription:         Semantic support for PHP.\nhomepage:            https://github.com/github/semantic/tree/master/semantic-php#readme\nbug-reports:         https://github.com/github/semantic/issues\nlicense:             MIT\nlicense-file:        LICENSE\nauthor:              The Semantic authors\nmaintainer:          opensource+semantic@github.com\ncopyright:           (c) 2019 GitHub, Inc.\ncategory:            Language\nbuild-type:          Simple\nstability:           alpha\nextra-source-files:  README.md\n\ntested-with:         GHC == 8.6.5\n\ncommon haskell\n  default-language:    Haskell2010\n  ghc-options:\n    -Weverything\n    -Wno-missing-local-signatures\n    -Wno-missing-import-lists\n    -Wno-implicit-prelude\n    -Wno-safe\n    -Wno-unsafe\n    -Wno-name-shadowing\n    -Wno-monomorphism-restriction\n    -Wno-missed-specialisations\n    -Wno-all-missed-specialisations\n    -Wno-star-is-type\n  if (impl(ghc >= 8.8))\n    ghc-options: -Wno-missing-deriving-strategies\n  if (impl(ghc >= 8.10))\n    ghc-options:\n      -Wno-missing-safe-haskell-mode\n      -Wno-prepositive-qualified-module\n  if (impl(ghc >= 9.2))\n    ghc-options:\n      -Wno-missing-kind-signatures\n\nlibrary\n  import: haskell\n  exposed-modules:\n    Language.PHP\n    Language.PHP.AST\n    Language.PHP.Grammar\n    Language.PHP.Tags\n  hs-source-dirs: src\n  build-depends:\n    , base  >= 4.13 && < 5\n    , fused-effects ^>= 1.1\n    , semantic-ast\n    , semantic-proto ^>= 0\n    , semantic-source ^>= 0.2\n    , semantic-tags ^>= 0.0\n    , template-haskell  >= 2.15 && < 2.22\n    , text ^>= 1.2.3\n    , tree-sitter ^>= 0.9\n    , tree-sitter-php ^>= 0.5.0.0\n"
  },
  {
    "path": "semantic-php/src/Language/PHP/AST.hs",
    "content": "-- Language definition for PHP, generated by ast-generate. Do not edit!\n{-# LANGUAGE CPP #-}\n{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE DeriveTraversable #-}\n{-# LANGUAGE DerivingStrategies #-}\n{-# LANGUAGE DuplicateRecordFields #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE QuantifiedConstraints #-}\n{-# LANGUAGE StandaloneDeriving #-}\n{-# LANGUAGE TemplateHaskell #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\n{-# OPTIONS_GHC -fno-warn-unused-imports #-}\n\nmodule Language.PHP.AST (module Language.PHP.AST) where\n\nimport qualified AST.Parse\nimport qualified AST.Token\nimport qualified AST.Traversable1.Class\nimport qualified AST.Unmarshal\nimport qualified Data.Foldable\nimport qualified Data.List as Data.OldList\nimport qualified Data.Maybe as GHC.Maybe\nimport qualified Data.Text.Internal\nimport qualified Data.Traversable\nimport qualified GHC.Base\nimport qualified GHC.Generics\nimport qualified GHC.Records\nimport qualified GHC.Show\nimport qualified TreeSitter.Node\nimport qualified Prelude as GHC.Classes\n\ndebugSymbolNames :: [GHC.Base.String]\ndebugSymbolNames = debugSymbolNames_0\n\ndebugSymbolNames_0 :: [GHC.Base.String]\ndebugSymbolNames_0 =\n  [ \"end\",\n    \"name\",\n    \"php_tag\",\n    \"_?>\",\n    \"_text_token1\",\n    \"_text_token2\",\n    \"_;\",\n    \"_static\",\n    \"_,\",\n    \"_=\",\n    \"_global\",\n    \"_namespace\",\n    \"_use\",\n    \"_\\\\\",\n    \"_function\",\n    \"_const\",\n    \"_as\",\n    \"_{\",\n    \"_}\",\n    \"_trait\",\n    \"_interface\",\n    \"_extends\",\n    \"_class\",\n    \"_abstract\",\n    \"_final\",\n    \"_implements\",\n    \"var_modifier\",\n    \"_insteadof\",\n    \"_public\",\n    \"_protected\",\n    \"_private\",\n    \"_&\",\n    \"_(\",\n    \"_)\",\n    \"_...\",\n    \"_?\",\n    \"_array\",\n    \"_callable\",\n    \"_iterable\",\n    \"_bool\",\n    \"_float\",\n    \"_int\",\n    \"_string\",\n    \"_void\",\n    \"_binary\",\n    \"_boolean\",\n    \"_double\",\n    \"_integer\",\n    \"_object\",\n    \"_real\",\n    \"_unset\",\n    \"_:\",\n    \"_echo\",\n    \"_declare\",\n    \"_enddeclare\",\n    \"_ticks\",\n    \"_encoding\",\n    \"_strict_types\",\n    \"float\",\n    \"_try\",\n    \"_catch\",\n    \"_finally\",\n    \"_goto\",\n    \"_continue\",\n    \"_break\",\n    \"integer\",\n    \"_return\",\n    \"_throw\",\n    \"_while\",\n    \"_endwhile\",\n    \"_do\",\n    \"_for\",\n    \"_endfor\",\n    \"_foreach\",\n    \"_endforeach\",\n    \"_=>\",\n    \"_if\",\n    \"_endif\",\n    \"_elseif\",\n    \"_else\",\n    \"_switch\",\n    \"_endswitch\",\n    \"_case\",\n    \"_default\",\n    \"_@\",\n    \"_+\",\n    \"_-\",\n    \"_~\",\n    \"_!\",\n    \"_**\",\n    \"_clone\",\n    \"_::\",\n    \"_print\",\n    \"_new\",\n    \"_++\",\n    \"_--\",\n    \"shell_command_expression\",\n    \"_**=\",\n    \"_*=\",\n    \"_/=\",\n    \"_%=\",\n    \"_+=\",\n    \"_-=\",\n    \"_.=\",\n    \"_<<=\",\n    \"_>>=\",\n    \"_&=\",\n    \"_^=\",\n    \"_|=\",\n    \"_->\",\n    \"_list\",\n    \"_self\",\n    \"_parent\",\n    \"_[\",\n    \"_]\",\n    \"string\",\n    \"boolean\",\n    \"null\",\n    \"_$\",\n    \"_yield\",\n    \"_from\",\n    \"_instanceof\",\n    \"_??\",\n    \"_and\",\n    \"_or\",\n    \"_xor\",\n    \"_||\",\n    \"_&&\",\n    \"_|\",\n    \"_^\",\n    \"_==\",\n    \"_!=\",\n    \"_<>\",\n    \"_===\",\n    \"_!==\",\n    \"_<\",\n    \"_>\",\n    \"_<=\",\n    \"_>=\",\n    \"_<=>\",\n    \"_<<\",\n    \"_>>\",\n    \"_.\",\n    \"_*\",\n    \"_/\",\n    \"_%\",\n    \"_include\",\n    \"_include_once\",\n    \"_require\",\n    \"_require_once\",\n    \"comment\",\n    \"_automatic_semicolon\",\n    \"heredoc\",\n    \"_eof\",\n    \"program\",\n    \"text_interpolation\",\n    \"text\",\n    \"empty_statement\",\n    \"function_static_declaration\",\n    \"static_variable_declaration\",\n    \"global_declaration\",\n    \"namespace_definition\",\n    \"namespace_use_declaration\",\n    \"namespace_function_or_const\",\n    \"namespace_use_clause\",\n    \"qualified_name\",\n    \"namespace_name_as_prefix\",\n    \"namespace_name\",\n    \"namespace_aliasing_clause\",\n    \"namespace_use_group\",\n    \"namespace_use_group_clause\",\n    \"trait_declaration\",\n    \"interface_declaration\",\n    \"interface_base_clause\",\n    \"class_declaration\",\n    \"declaration_list\",\n    \"class_modifier\",\n    \"class_base_clause\",\n    \"class_interface_clause\",\n    \"_member_declaration\",\n    \"const_declaration\",\n    \"property_declaration\",\n    \"_modifier\",\n    \"property_element\",\n    \"property_initializer\",\n    \"method_declaration\",\n    \"static_modifier\",\n    \"use_declaration\",\n    \"use_list\",\n    \"use_instead_of_clause\",\n    \"use_as_clause\",\n    \"visibility_modifier\",\n    \"function_definition\",\n    \"_function_definition_header\",\n    \"formal_parameters\",\n    \"simple_parameter\",\n    \"variadic_parameter\",\n    \"_type\",\n    \"optional_type\",\n    \"primitive_type\",\n    \"cast_type\",\n    \"_return_type\",\n    \"const_element\",\n    \"echo_statement\",\n    \"unset_statement\",\n    \"declare_statement\",\n    \"declare_directive\",\n    \"try_statement\",\n    \"catch_clause\",\n    \"finally_clause\",\n    \"_jump_statement\",\n    \"goto_statement\",\n    \"continue_statement\",\n    \"break_statement\",\n    \"return_statement\",\n    \"throw_statement\",\n    \"while_statement\",\n    \"do_statement\",\n    \"for_statement\",\n    \"_expressions\",\n    \"sequence_expression\",\n    \"foreach_statement\",\n    \"pair\",\n    \"if_statement\",\n    \"colon_block\",\n    \"else_if_clause\",\n    \"else_clause\",\n    \"else_if_clause\",\n    \"else_clause\",\n    \"switch_statement\",\n    \"switch_block\",\n    \"case_statement\",\n    \"default_statement\",\n    \"compound_statement\",\n    \"named_label_statement\",\n    \"expression_statement\",\n    \"_expression\",\n    \"_unary_expression\",\n    \"unary_op_expression\",\n    \"exponentiation_expression\",\n    \"clone_expression\",\n    \"_primary_expression\",\n    \"parenthesized_expression\",\n    \"class_constant_access_expression\",\n    \"print_intrinsic\",\n    \"anonymous_function_creation_expression\",\n    \"anonymous_function_use_clause\",\n    \"object_creation_expression\",\n    \"update_expression\",\n    \"cast_expression\",\n    \"cast_expression\",\n    \"assignment_expression\",\n    \"conditional_expression\",\n    \"augmented_assignment_expression\",\n    \"member_access_expression\",\n    \"scoped_property_access_expression\",\n    \"list_literal\",\n    \"function_call_expression\",\n    \"scoped_call_expression\",\n    \"_scope_resolution_qualifier\",\n    \"relative_scope\",\n    \"arguments\",\n    \"member_call_expression\",\n    \"variadic_unpacking\",\n    \"subscript_expression\",\n    \"_dereferencable_expression\",\n    \"array_creation_expression\",\n    \"_string\",\n    \"dynamic_variable_name\",\n    \"variable_name\",\n    \"yield_expression\",\n    \"array_element_initializer\",\n    \"binary_expression\",\n    \"include_expression\",\n    \"include_once_expression\",\n    \"require_expression\",\n    \"require_once_expression\",\n    \"name\",\n    \"_program_repeat1\",\n    \"_text_repeat1\",\n    \"_function_static_declaration_repeat1\",\n    \"_global_declaration_repeat1\",\n    \"_namespace_use_declaration_repeat1\",\n    \"_namespace_name_repeat1\",\n    \"_namespace_use_group_repeat1\",\n    \"_interface_base_clause_repeat1\",\n    \"_declaration_list_repeat1\",\n    \"_const_declaration_repeat1\",\n    \"_property_declaration_repeat1\",\n    \"_property_declaration_repeat2\",\n    \"_use_list_repeat1\",\n    \"_formal_parameters_repeat1\",\n    \"_unset_statement_repeat1\",\n    \"_try_statement_repeat1\",\n    \"_if_statement_repeat1\",\n    \"_if_statement_repeat2\",\n    \"_switch_block_repeat1\",\n    \"_anonymous_function_use_clause_repeat1\",\n    \"_list_literal_repeat1\",\n    \"_arguments_repeat1\",\n    \"_array_creation_expression_repeat1\",\n    \"type_name\"\n  ]\n\nnewtype Expression a = Expression {getExpression :: ((PrimaryExpression GHC.Generics.:+: AssignmentExpression GHC.Generics.:+: AugmentedAssignmentExpression GHC.Generics.:+: BinaryExpression GHC.Generics.:+: CastExpression GHC.Generics.:+: CloneExpression GHC.Generics.:+: ConditionalExpression GHC.Generics.:+: ExponentiationExpression GHC.Generics.:+: IncludeExpression GHC.Generics.:+: IncludeOnceExpression GHC.Generics.:+: RequireExpression GHC.Generics.:+: RequireOnceExpression GHC.Generics.:+: UnaryOpExpression GHC.Generics.:+: YieldExpression) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1.\n      AST.Traversable1.Class.Traversable1 a_1\n    )\n\ninstance GHC.Records.HasField \"ann\" (Expression a_2) a_2 where\n  getField = AST.Unmarshal.gann GHC.Base.. getExpression\n\nderiving instance GHC.Classes.Eq a_3 => GHC.Classes.Eq (Expression a_3)\n\nderiving instance GHC.Classes.Ord a_4 => GHC.Classes.Ord (Expression a_4)\n\nderiving instance GHC.Show.Show a_5 => GHC.Show.Show (Expression a_5)\n\ninstance AST.Unmarshal.Unmarshal Expression\n\ninstance Data.Foldable.Foldable Expression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Expression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Expression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Literal a = Literal {getLiteral :: ((Boolean GHC.Generics.:+: Float GHC.Generics.:+: Heredoc GHC.Generics.:+: Integer GHC.Generics.:+: Null GHC.Generics.:+: String) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_6.\n      AST.Traversable1.Class.Traversable1 a_6\n    )\n\ninstance GHC.Records.HasField \"ann\" (Literal a_7) a_7 where\n  getField = AST.Unmarshal.gann GHC.Base.. getLiteral\n\nderiving instance GHC.Classes.Eq a_8 => GHC.Classes.Eq (Literal a_8)\n\nderiving instance GHC.Classes.Ord a_9 => GHC.Classes.Ord (Literal a_9)\n\nderiving instance GHC.Show.Show a_10 => GHC.Show.Show (Literal a_10)\n\ninstance AST.Unmarshal.Unmarshal Literal\n\ninstance Data.Foldable.Foldable Literal where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Literal where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Literal where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype PrimaryExpression a = PrimaryExpression {getPrimaryExpression :: ((Literal GHC.Generics.:+: AnonymousFunctionCreationExpression GHC.Generics.:+: ArrayCreationExpression GHC.Generics.:+: CastExpression GHC.Generics.:+: ClassConstantAccessExpression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: FunctionCallExpression GHC.Generics.:+: MemberAccessExpression GHC.Generics.:+: MemberCallExpression GHC.Generics.:+: ObjectCreationExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: PrintIntrinsic GHC.Generics.:+: QualifiedName GHC.Generics.:+: ScopedCallExpression GHC.Generics.:+: ScopedPropertyAccessExpression GHC.Generics.:+: ShellCommandExpression GHC.Generics.:+: SubscriptExpression GHC.Generics.:+: UpdateExpression GHC.Generics.:+: VariableName) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_11.\n      AST.Traversable1.Class.Traversable1 a_11\n    )\n\ninstance GHC.Records.HasField \"ann\" (PrimaryExpression a_12) a_12 where\n  getField = AST.Unmarshal.gann GHC.Base.. getPrimaryExpression\n\nderiving instance GHC.Classes.Eq a_13 => GHC.Classes.Eq (PrimaryExpression a_13)\n\nderiving instance GHC.Classes.Ord a_14 => GHC.Classes.Ord (PrimaryExpression a_14)\n\nderiving instance GHC.Show.Show a_15 => GHC.Show.Show (PrimaryExpression a_15)\n\ninstance AST.Unmarshal.Unmarshal PrimaryExpression\n\ninstance Data.Foldable.Foldable PrimaryExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PrimaryExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PrimaryExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Statement a = Statement {getStatement :: ((BreakStatement GHC.Generics.:+: ClassDeclaration GHC.Generics.:+: CompoundStatement GHC.Generics.:+: ConstDeclaration GHC.Generics.:+: ContinueStatement GHC.Generics.:+: DeclareStatement GHC.Generics.:+: DoStatement GHC.Generics.:+: EchoStatement GHC.Generics.:+: EmptyStatement GHC.Generics.:+: ExpressionStatement GHC.Generics.:+: ForStatement GHC.Generics.:+: ForeachStatement GHC.Generics.:+: FunctionDefinition GHC.Generics.:+: FunctionStaticDeclaration GHC.Generics.:+: GlobalDeclaration GHC.Generics.:+: GotoStatement GHC.Generics.:+: IfStatement GHC.Generics.:+: InterfaceDeclaration GHC.Generics.:+: NamedLabelStatement GHC.Generics.:+: NamespaceDefinition GHC.Generics.:+: NamespaceUseDeclaration GHC.Generics.:+: ReturnStatement GHC.Generics.:+: SwitchStatement GHC.Generics.:+: ThrowStatement GHC.Generics.:+: TraitDeclaration GHC.Generics.:+: TryStatement GHC.Generics.:+: UnsetStatement GHC.Generics.:+: WhileStatement) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_16.\n      AST.Traversable1.Class.Traversable1 a_16\n    )\n\ninstance GHC.Records.HasField \"ann\" (Statement a_17) a_17 where\n  getField = AST.Unmarshal.gann GHC.Base.. getStatement\n\nderiving instance GHC.Classes.Eq a_18 => GHC.Classes.Eq (Statement a_18)\n\nderiving instance GHC.Classes.Ord a_19 => GHC.Classes.Ord (Statement a_19)\n\nderiving instance GHC.Show.Show a_20 => GHC.Show.Show (Statement a_20)\n\ninstance AST.Unmarshal.Unmarshal Statement\n\ninstance Data.Foldable.Foldable Statement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Statement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Statement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Type a = Type {getType :: ((OptionalType GHC.Generics.:+: PrimitiveType GHC.Generics.:+: TypeName) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_21.\n      AST.Traversable1.Class.Traversable1 a_21\n    )\n\ninstance GHC.Records.HasField \"ann\" (Type a_22) a_22 where\n  getField = AST.Unmarshal.gann GHC.Base.. getType\n\nderiving instance GHC.Classes.Eq a_23 => GHC.Classes.Eq (Type a_23)\n\nderiving instance GHC.Classes.Ord a_24 => GHC.Classes.Ord (Type a_24)\n\nderiving instance GHC.Show.Show a_25 => GHC.Show.Show (Type a_25)\n\ninstance AST.Unmarshal.Unmarshal Type\n\ninstance Data.Foldable.Foldable Type where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Type where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Type where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AnonymousFunctionCreationExpression a = AnonymousFunctionCreationExpression\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (Type a))),\n    body :: (AST.Parse.Err (CompoundStatement a)),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (AnonymousFunctionUseClause a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_26.\n      AST.Traversable1.Class.Traversable1 a_26\n    )\n\ninstance AST.Unmarshal.SymbolMatching AnonymousFunctionCreationExpression where\n  matchedSymbols _ = [245]\n  showFailure _ node_27 =\n    \"expected \"\n      GHC.Base.<> ( \"anonymous_function_creation_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_27 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_27) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_28 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_29 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_30 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_31 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_28\n        c1_29 = TreeSitter.Node.nodeStartPoint node_27\n      TreeSitter.Node.TSPoint\n        r2_30\n        c2_31 = TreeSitter.Node.nodeEndPoint node_27\n\nderiving instance GHC.Classes.Eq a_32 => GHC.Classes.Eq (AnonymousFunctionCreationExpression a_32)\n\nderiving instance GHC.Classes.Ord a_33 => GHC.Classes.Ord (AnonymousFunctionCreationExpression a_33)\n\nderiving instance GHC.Show.Show a_34 => GHC.Show.Show (AnonymousFunctionCreationExpression a_34)\n\ninstance AST.Unmarshal.Unmarshal AnonymousFunctionCreationExpression\n\ninstance Data.Foldable.Foldable AnonymousFunctionCreationExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AnonymousFunctionCreationExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AnonymousFunctionCreationExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AnonymousFunctionUseClause a = AnonymousFunctionUseClause\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (VariableName a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_35.\n      AST.Traversable1.Class.Traversable1 a_35\n    )\n\ninstance AST.Unmarshal.SymbolMatching AnonymousFunctionUseClause where\n  matchedSymbols _ = [246]\n  showFailure _ node_36 =\n    \"expected \"\n      GHC.Base.<> ( \"anonymous_function_use_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_36 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_36) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_37 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_38 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_39 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_40 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_37\n        c1_38 = TreeSitter.Node.nodeStartPoint node_36\n      TreeSitter.Node.TSPoint\n        r2_39\n        c2_40 = TreeSitter.Node.nodeEndPoint node_36\n\nderiving instance GHC.Classes.Eq a_41 => GHC.Classes.Eq (AnonymousFunctionUseClause a_41)\n\nderiving instance GHC.Classes.Ord a_42 => GHC.Classes.Ord (AnonymousFunctionUseClause a_42)\n\nderiving instance GHC.Show.Show a_43 => GHC.Show.Show (AnonymousFunctionUseClause a_43)\n\ninstance AST.Unmarshal.Unmarshal AnonymousFunctionUseClause\n\ninstance Data.Foldable.Foldable AnonymousFunctionUseClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AnonymousFunctionUseClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AnonymousFunctionUseClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Arguments a = Arguments\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: VariadicUnpacking) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_44.\n      AST.Traversable1.Class.Traversable1 a_44\n    )\n\ninstance AST.Unmarshal.SymbolMatching Arguments where\n  matchedSymbols _ = [261]\n  showFailure _ node_45 =\n    \"expected \"\n      GHC.Base.<> ( \"arguments\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_45 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_45) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_46 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_47 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_48 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_49 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_46\n        c1_47 = TreeSitter.Node.nodeStartPoint node_45\n      TreeSitter.Node.TSPoint\n        r2_48\n        c2_49 = TreeSitter.Node.nodeEndPoint node_45\n\nderiving instance GHC.Classes.Eq a_50 => GHC.Classes.Eq (Arguments a_50)\n\nderiving instance GHC.Classes.Ord a_51 => GHC.Classes.Ord (Arguments a_51)\n\nderiving instance GHC.Show.Show a_52 => GHC.Show.Show (Arguments a_52)\n\ninstance AST.Unmarshal.Unmarshal Arguments\n\ninstance Data.Foldable.Foldable Arguments where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Arguments where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Arguments where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ArrayCreationExpression a = ArrayCreationExpression\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (ArrayElementInitializer a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_53.\n      AST.Traversable1.Class.Traversable1 a_53\n    )\n\ninstance AST.Unmarshal.SymbolMatching ArrayCreationExpression where\n  matchedSymbols _ = [266]\n  showFailure _ node_54 =\n    \"expected \"\n      GHC.Base.<> ( \"array_creation_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_54 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_54) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_55 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_56 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_57 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_58 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_55\n        c1_56 = TreeSitter.Node.nodeStartPoint node_54\n      TreeSitter.Node.TSPoint\n        r2_57\n        c2_58 = TreeSitter.Node.nodeEndPoint node_54\n\nderiving instance GHC.Classes.Eq a_59 => GHC.Classes.Eq (ArrayCreationExpression a_59)\n\nderiving instance GHC.Classes.Ord a_60 => GHC.Classes.Ord (ArrayCreationExpression a_60)\n\nderiving instance GHC.Show.Show a_61 => GHC.Show.Show (ArrayCreationExpression a_61)\n\ninstance AST.Unmarshal.Unmarshal ArrayCreationExpression\n\ninstance Data.Foldable.Foldable ArrayCreationExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ArrayCreationExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ArrayCreationExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ArrayElementInitializer a = ArrayElementInitializer\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Expression a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_62.\n      AST.Traversable1.Class.Traversable1 a_62\n    )\n\ninstance AST.Unmarshal.SymbolMatching ArrayElementInitializer where\n  matchedSymbols _ = [271]\n  showFailure _ node_63 =\n    \"expected \"\n      GHC.Base.<> ( \"array_element_initializer\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_63 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_63) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_64 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_65 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_66 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_67 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_64\n        c1_65 = TreeSitter.Node.nodeStartPoint node_63\n      TreeSitter.Node.TSPoint\n        r2_66\n        c2_67 = TreeSitter.Node.nodeEndPoint node_63\n\nderiving instance GHC.Classes.Eq a_68 => GHC.Classes.Eq (ArrayElementInitializer a_68)\n\nderiving instance GHC.Classes.Ord a_69 => GHC.Classes.Ord (ArrayElementInitializer a_69)\n\nderiving instance GHC.Show.Show a_70 => GHC.Show.Show (ArrayElementInitializer a_70)\n\ninstance AST.Unmarshal.Unmarshal ArrayElementInitializer\n\ninstance Data.Foldable.Foldable ArrayElementInitializer where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ArrayElementInitializer where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ArrayElementInitializer where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AssignmentExpression a = AssignmentExpression\n  { ann :: a,\n    left :: (AST.Parse.Err ((ArrayCreationExpression GHC.Generics.:+: CastExpression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: FunctionCallExpression GHC.Generics.:+: ListLiteral GHC.Generics.:+: MemberAccessExpression GHC.Generics.:+: MemberCallExpression GHC.Generics.:+: ScopedCallExpression GHC.Generics.:+: ScopedPropertyAccessExpression GHC.Generics.:+: SubscriptExpression GHC.Generics.:+: VariableName) a)),\n    right :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_71.\n      AST.Traversable1.Class.Traversable1 a_71\n    )\n\ninstance AST.Unmarshal.SymbolMatching AssignmentExpression where\n  matchedSymbols _ = [251]\n  showFailure _ node_72 =\n    \"expected \"\n      GHC.Base.<> ( \"assignment_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_72 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_72) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_73 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_74 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_75 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_76 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_73\n        c1_74 = TreeSitter.Node.nodeStartPoint node_72\n      TreeSitter.Node.TSPoint\n        r2_75\n        c2_76 = TreeSitter.Node.nodeEndPoint node_72\n\nderiving instance GHC.Classes.Eq a_77 => GHC.Classes.Eq (AssignmentExpression a_77)\n\nderiving instance GHC.Classes.Ord a_78 => GHC.Classes.Ord (AssignmentExpression a_78)\n\nderiving instance GHC.Show.Show a_79 => GHC.Show.Show (AssignmentExpression a_79)\n\ninstance AST.Unmarshal.Unmarshal AssignmentExpression\n\ninstance Data.Foldable.Foldable AssignmentExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AssignmentExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AssignmentExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AugmentedAssignmentExpression a = AugmentedAssignmentExpression\n  { ann :: a,\n    operator :: (AST.Parse.Err ((AnonymousPercentEqual GHC.Generics.:+: AnonymousAmpersandEqual GHC.Generics.:+: AnonymousStarStarEqual GHC.Generics.:+: AnonymousStarEqual GHC.Generics.:+: AnonymousPlusEqual GHC.Generics.:+: AnonymousMinusEqual GHC.Generics.:+: AnonymousDotEqual GHC.Generics.:+: AnonymousSlashEqual GHC.Generics.:+: AnonymousLAngleLAngleEqual GHC.Generics.:+: AnonymousRAngleRAngleEqual GHC.Generics.:+: AnonymousCaretEqual GHC.Generics.:+: AnonymousPipeEqual) a)),\n    left :: (AST.Parse.Err ((CastExpression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: FunctionCallExpression GHC.Generics.:+: MemberAccessExpression GHC.Generics.:+: MemberCallExpression GHC.Generics.:+: ScopedCallExpression GHC.Generics.:+: ScopedPropertyAccessExpression GHC.Generics.:+: SubscriptExpression GHC.Generics.:+: VariableName) a)),\n    right :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_80.\n      AST.Traversable1.Class.Traversable1 a_80\n    )\n\ninstance AST.Unmarshal.SymbolMatching AugmentedAssignmentExpression where\n  matchedSymbols _ = [253]\n  showFailure _ node_81 =\n    \"expected \"\n      GHC.Base.<> ( \"augmented_assignment_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_81 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_81) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_82 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_83 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_84 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_85 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_82\n        c1_83 = TreeSitter.Node.nodeStartPoint node_81\n      TreeSitter.Node.TSPoint\n        r2_84\n        c2_85 = TreeSitter.Node.nodeEndPoint node_81\n\nderiving instance GHC.Classes.Eq a_86 => GHC.Classes.Eq (AugmentedAssignmentExpression a_86)\n\nderiving instance GHC.Classes.Ord a_87 => GHC.Classes.Ord (AugmentedAssignmentExpression a_87)\n\nderiving instance GHC.Show.Show a_88 => GHC.Show.Show (AugmentedAssignmentExpression a_88)\n\ninstance AST.Unmarshal.Unmarshal AugmentedAssignmentExpression\n\ninstance Data.Foldable.Foldable AugmentedAssignmentExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AugmentedAssignmentExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AugmentedAssignmentExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BinaryExpression a = BinaryExpression\n  { ann :: a,\n    operator :: (GHC.Maybe.Maybe (AST.Parse.Err ((AnonymousBangEqual GHC.Generics.:+: AnonymousBangEqualEqual GHC.Generics.:+: AnonymousPercent GHC.Generics.:+: AnonymousAmpersand GHC.Generics.:+: AnonymousAmpersandAmpersand GHC.Generics.:+: AnonymousStar GHC.Generics.:+: AnonymousPlus GHC.Generics.:+: AnonymousMinus GHC.Generics.:+: AnonymousDot GHC.Generics.:+: AnonymousSlash GHC.Generics.:+: AnonymousLAngle GHC.Generics.:+: AnonymousLAngleLAngle GHC.Generics.:+: AnonymousLAngleEqual GHC.Generics.:+: AnonymousLAngleEqualRAngle GHC.Generics.:+: AnonymousLAngleRAngle GHC.Generics.:+: AnonymousEqualEqual GHC.Generics.:+: AnonymousEqualEqualEqual GHC.Generics.:+: AnonymousRAngle GHC.Generics.:+: AnonymousRAngleEqual GHC.Generics.:+: AnonymousRAngleRAngle GHC.Generics.:+: AnonymousCaret GHC.Generics.:+: AnonymousAnd GHC.Generics.:+: AnonymousInstanceof GHC.Generics.:+: AnonymousOr GHC.Generics.:+: AnonymousXor GHC.Generics.:+: AnonymousPipe GHC.Generics.:+: AnonymousPipePipe) a))),\n    left :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    right :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: MemberAccessExpression GHC.Generics.:+: QualifiedName GHC.Generics.:+: ScopedPropertyAccessExpression GHC.Generics.:+: SubscriptExpression GHC.Generics.:+: VariableName) a))),\n    extraChildren :: ([AST.Parse.Err (Expression a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_89.\n      AST.Traversable1.Class.Traversable1 a_89\n    )\n\ninstance AST.Unmarshal.SymbolMatching BinaryExpression where\n  matchedSymbols _ = [272]\n  showFailure _ node_90 =\n    \"expected \"\n      GHC.Base.<> ( \"binary_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_90 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_90) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_91 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_92 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_93 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_94 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_91\n        c1_92 = TreeSitter.Node.nodeStartPoint node_90\n      TreeSitter.Node.TSPoint\n        r2_93\n        c2_94 = TreeSitter.Node.nodeEndPoint node_90\n\nderiving instance GHC.Classes.Eq a_95 => GHC.Classes.Eq (BinaryExpression a_95)\n\nderiving instance GHC.Classes.Ord a_96 => GHC.Classes.Ord (BinaryExpression a_96)\n\nderiving instance GHC.Show.Show a_97 => GHC.Show.Show (BinaryExpression a_97)\n\ninstance AST.Unmarshal.Unmarshal BinaryExpression\n\ninstance Data.Foldable.Foldable BinaryExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BinaryExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BinaryExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BreakStatement a = BreakStatement\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_98.\n      AST.Traversable1.Class.Traversable1 a_98\n    )\n\ninstance AST.Unmarshal.SymbolMatching BreakStatement where\n  matchedSymbols _ = [213]\n  showFailure _ node_99 =\n    \"expected \"\n      GHC.Base.<> ( \"break_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_99 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_99) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_100 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_101 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_102 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_103 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_100\n        c1_101 = TreeSitter.Node.nodeStartPoint node_99\n      TreeSitter.Node.TSPoint\n        r2_102\n        c2_103 = TreeSitter.Node.nodeEndPoint node_99\n\nderiving instance GHC.Classes.Eq a_104 => GHC.Classes.Eq (BreakStatement a_104)\n\nderiving instance GHC.Classes.Ord a_105 => GHC.Classes.Ord (BreakStatement a_105)\n\nderiving instance GHC.Show.Show a_106 => GHC.Show.Show (BreakStatement a_106)\n\ninstance AST.Unmarshal.Unmarshal BreakStatement\n\ninstance Data.Foldable.Foldable BreakStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BreakStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BreakStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CaseStatement a = CaseStatement\n  { ann :: a,\n    value :: (AST.Parse.Err (Expression a)),\n    extraChildren :: ([AST.Parse.Err (Statement a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_107.\n      AST.Traversable1.Class.Traversable1 a_107\n    )\n\ninstance AST.Unmarshal.SymbolMatching CaseStatement where\n  matchedSymbols _ = [231]\n  showFailure _ node_108 =\n    \"expected \"\n      GHC.Base.<> ( \"case_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_108 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_108) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_109 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_110 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_111 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_112 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_109\n        c1_110 = TreeSitter.Node.nodeStartPoint node_108\n      TreeSitter.Node.TSPoint\n        r2_111\n        c2_112 = TreeSitter.Node.nodeEndPoint node_108\n\nderiving instance GHC.Classes.Eq a_113 => GHC.Classes.Eq (CaseStatement a_113)\n\nderiving instance GHC.Classes.Ord a_114 => GHC.Classes.Ord (CaseStatement a_114)\n\nderiving instance GHC.Show.Show a_115 => GHC.Show.Show (CaseStatement a_115)\n\ninstance AST.Unmarshal.Unmarshal CaseStatement\n\ninstance Data.Foldable.Foldable CaseStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CaseStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CaseStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CastExpression a = CastExpression\n  { ann :: a,\n    value :: (AST.Parse.Err ((PrimaryExpression GHC.Generics.:+: CloneExpression GHC.Generics.:+: ExponentiationExpression GHC.Generics.:+: UnaryOpExpression) a)),\n    type' :: (AST.Parse.Err (CastType a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_116.\n      AST.Traversable1.Class.Traversable1 a_116\n    )\n\ninstance AST.Unmarshal.SymbolMatching CastExpression where\n  matchedSymbols _ = [249, 250]\n  showFailure _ node_117 =\n    \"expected \"\n      GHC.Base.<> ( \"cast_expression, cast_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_117 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_117) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_118 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_119 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_120 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_121 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_118\n        c1_119 = TreeSitter.Node.nodeStartPoint node_117\n      TreeSitter.Node.TSPoint\n        r2_120\n        c2_121 = TreeSitter.Node.nodeEndPoint node_117\n\nderiving instance GHC.Classes.Eq a_122 => GHC.Classes.Eq (CastExpression a_122)\n\nderiving instance GHC.Classes.Ord a_123 => GHC.Classes.Ord (CastExpression a_123)\n\nderiving instance GHC.Show.Show a_124 => GHC.Show.Show (CastExpression a_124)\n\ninstance AST.Unmarshal.Unmarshal CastExpression\n\ninstance Data.Foldable.Foldable CastExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CastExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CastExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CastType a = CastType {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_125.\n      AST.Traversable1.Class.Traversable1 a_125\n    )\n\ninstance AST.Unmarshal.SymbolMatching CastType where\n  matchedSymbols _ = [200]\n  showFailure _ node_126 =\n    \"expected \"\n      GHC.Base.<> ( \"cast_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_126 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_126) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_127 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_128 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_129 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_130 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_127\n        c1_128 = TreeSitter.Node.nodeStartPoint node_126\n      TreeSitter.Node.TSPoint\n        r2_129\n        c2_130 = TreeSitter.Node.nodeEndPoint node_126\n\nderiving instance GHC.Classes.Eq a_131 => GHC.Classes.Eq (CastType a_131)\n\nderiving instance GHC.Classes.Ord a_132 => GHC.Classes.Ord (CastType a_132)\n\nderiving instance GHC.Show.Show a_133 => GHC.Show.Show (CastType a_133)\n\ninstance AST.Unmarshal.Unmarshal CastType\n\ninstance Data.Foldable.Foldable CastType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CastType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CastType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CatchClause a = CatchClause\n  { ann :: a,\n    body :: (AST.Parse.Err (CompoundStatement a)),\n    name :: (AST.Parse.Err (VariableName a)),\n    type' :: (AST.Parse.Err (TypeName a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_134.\n      AST.Traversable1.Class.Traversable1 a_134\n    )\n\ninstance AST.Unmarshal.SymbolMatching CatchClause where\n  matchedSymbols _ = [208]\n  showFailure _ node_135 =\n    \"expected \"\n      GHC.Base.<> ( \"catch_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_135 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_135) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_136 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_137 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_138 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_139 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_136\n        c1_137 = TreeSitter.Node.nodeStartPoint node_135\n      TreeSitter.Node.TSPoint\n        r2_138\n        c2_139 = TreeSitter.Node.nodeEndPoint node_135\n\nderiving instance GHC.Classes.Eq a_140 => GHC.Classes.Eq (CatchClause a_140)\n\nderiving instance GHC.Classes.Ord a_141 => GHC.Classes.Ord (CatchClause a_141)\n\nderiving instance GHC.Show.Show a_142 => GHC.Show.Show (CatchClause a_142)\n\ninstance AST.Unmarshal.Unmarshal CatchClause\n\ninstance Data.Foldable.Foldable CatchClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CatchClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CatchClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ClassBaseClause a = ClassBaseClause\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (QualifiedName a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_143.\n      AST.Traversable1.Class.Traversable1 a_143\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClassBaseClause where\n  matchedSymbols _ = [177]\n  showFailure _ node_144 =\n    \"expected \"\n      GHC.Base.<> ( \"class_base_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_144 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_144) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_145 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_146 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_147 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_148 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_145\n        c1_146 = TreeSitter.Node.nodeStartPoint node_144\n      TreeSitter.Node.TSPoint\n        r2_147\n        c2_148 = TreeSitter.Node.nodeEndPoint node_144\n\nderiving instance GHC.Classes.Eq a_149 => GHC.Classes.Eq (ClassBaseClause a_149)\n\nderiving instance GHC.Classes.Ord a_150 => GHC.Classes.Ord (ClassBaseClause a_150)\n\nderiving instance GHC.Show.Show a_151 => GHC.Show.Show (ClassBaseClause a_151)\n\ninstance AST.Unmarshal.Unmarshal ClassBaseClause\n\ninstance Data.Foldable.Foldable ClassBaseClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClassBaseClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClassBaseClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ClassConstantAccessExpression a = ClassConstantAccessExpression\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayCreationExpression GHC.Generics.:+: CastExpression GHC.Generics.:+: ClassConstantAccessExpression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: FunctionCallExpression GHC.Generics.:+: Heredoc GHC.Generics.:+: MemberAccessExpression GHC.Generics.:+: MemberCallExpression GHC.Generics.:+: Name GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: QualifiedName GHC.Generics.:+: RelativeScope GHC.Generics.:+: ScopedCallExpression GHC.Generics.:+: ScopedPropertyAccessExpression GHC.Generics.:+: String GHC.Generics.:+: SubscriptExpression GHC.Generics.:+: VariableName) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_152.\n      AST.Traversable1.Class.Traversable1 a_152\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClassConstantAccessExpression where\n  matchedSymbols _ = [243]\n  showFailure _ node_153 =\n    \"expected \"\n      GHC.Base.<> ( \"class_constant_access_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_153 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_153) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_154 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_155 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_156 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_157 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_154\n        c1_155 = TreeSitter.Node.nodeStartPoint node_153\n      TreeSitter.Node.TSPoint\n        r2_156\n        c2_157 = TreeSitter.Node.nodeEndPoint node_153\n\nderiving instance GHC.Classes.Eq a_158 => GHC.Classes.Eq (ClassConstantAccessExpression a_158)\n\nderiving instance GHC.Classes.Ord a_159 => GHC.Classes.Ord (ClassConstantAccessExpression a_159)\n\nderiving instance GHC.Show.Show a_160 => GHC.Show.Show (ClassConstantAccessExpression a_160)\n\ninstance AST.Unmarshal.Unmarshal ClassConstantAccessExpression\n\ninstance Data.Foldable.Foldable ClassConstantAccessExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClassConstantAccessExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClassConstantAccessExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ClassDeclaration a = ClassDeclaration\n  { ann :: a,\n    body :: (AST.Parse.Err (DeclarationList a)),\n    name :: (AST.Parse.Err (Name a)),\n    extraChildren :: ([AST.Parse.Err ((ClassBaseClause GHC.Generics.:+: ClassInterfaceClause GHC.Generics.:+: ClassModifier) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_161.\n      AST.Traversable1.Class.Traversable1 a_161\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClassDeclaration where\n  matchedSymbols _ = [174]\n  showFailure _ node_162 =\n    \"expected \"\n      GHC.Base.<> ( \"class_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_162 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_162) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_163 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_164 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_165 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_166 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_163\n        c1_164 = TreeSitter.Node.nodeStartPoint node_162\n      TreeSitter.Node.TSPoint\n        r2_165\n        c2_166 = TreeSitter.Node.nodeEndPoint node_162\n\nderiving instance GHC.Classes.Eq a_167 => GHC.Classes.Eq (ClassDeclaration a_167)\n\nderiving instance GHC.Classes.Ord a_168 => GHC.Classes.Ord (ClassDeclaration a_168)\n\nderiving instance GHC.Show.Show a_169 => GHC.Show.Show (ClassDeclaration a_169)\n\ninstance AST.Unmarshal.Unmarshal ClassDeclaration\n\ninstance Data.Foldable.Foldable ClassDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClassDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClassDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ClassInterfaceClause a = ClassInterfaceClause\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (QualifiedName a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_170.\n      AST.Traversable1.Class.Traversable1 a_170\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClassInterfaceClause where\n  matchedSymbols _ = [178]\n  showFailure _ node_171 =\n    \"expected \"\n      GHC.Base.<> ( \"class_interface_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_171 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_171) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_172 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_173 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_174 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_175 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_172\n        c1_173 = TreeSitter.Node.nodeStartPoint node_171\n      TreeSitter.Node.TSPoint\n        r2_174\n        c2_175 = TreeSitter.Node.nodeEndPoint node_171\n\nderiving instance GHC.Classes.Eq a_176 => GHC.Classes.Eq (ClassInterfaceClause a_176)\n\nderiving instance GHC.Classes.Ord a_177 => GHC.Classes.Ord (ClassInterfaceClause a_177)\n\nderiving instance GHC.Show.Show a_178 => GHC.Show.Show (ClassInterfaceClause a_178)\n\ninstance AST.Unmarshal.Unmarshal ClassInterfaceClause\n\ninstance Data.Foldable.Foldable ClassInterfaceClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClassInterfaceClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClassInterfaceClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ClassModifier a = ClassModifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_179.\n      AST.Traversable1.Class.Traversable1 a_179\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClassModifier where\n  matchedSymbols _ = [176]\n  showFailure _ node_180 =\n    \"expected \"\n      GHC.Base.<> ( \"class_modifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_180 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_180) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_181 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_182 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_183 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_184 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_181\n        c1_182 = TreeSitter.Node.nodeStartPoint node_180\n      TreeSitter.Node.TSPoint\n        r2_183\n        c2_184 = TreeSitter.Node.nodeEndPoint node_180\n\nderiving instance GHC.Classes.Eq a_185 => GHC.Classes.Eq (ClassModifier a_185)\n\nderiving instance GHC.Classes.Ord a_186 => GHC.Classes.Ord (ClassModifier a_186)\n\nderiving instance GHC.Show.Show a_187 => GHC.Show.Show (ClassModifier a_187)\n\ninstance AST.Unmarshal.Unmarshal ClassModifier\n\ninstance Data.Foldable.Foldable ClassModifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClassModifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClassModifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CloneExpression a = CloneExpression\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (PrimaryExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_188.\n      AST.Traversable1.Class.Traversable1 a_188\n    )\n\ninstance AST.Unmarshal.SymbolMatching CloneExpression where\n  matchedSymbols _ = [240]\n  showFailure _ node_189 =\n    \"expected \"\n      GHC.Base.<> ( \"clone_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_189 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_189) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_190 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_191 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_192 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_193 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_190\n        c1_191 = TreeSitter.Node.nodeStartPoint node_189\n      TreeSitter.Node.TSPoint\n        r2_192\n        c2_193 = TreeSitter.Node.nodeEndPoint node_189\n\nderiving instance GHC.Classes.Eq a_194 => GHC.Classes.Eq (CloneExpression a_194)\n\nderiving instance GHC.Classes.Ord a_195 => GHC.Classes.Ord (CloneExpression a_195)\n\nderiving instance GHC.Show.Show a_196 => GHC.Show.Show (CloneExpression a_196)\n\ninstance AST.Unmarshal.Unmarshal CloneExpression\n\ninstance Data.Foldable.Foldable CloneExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CloneExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CloneExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ColonBlock a = ColonBlock\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (Statement a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_197.\n      AST.Traversable1.Class.Traversable1 a_197\n    )\n\ninstance AST.Unmarshal.SymbolMatching ColonBlock where\n  matchedSymbols _ = [224]\n  showFailure _ node_198 =\n    \"expected \"\n      GHC.Base.<> ( \"colon_block\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_198 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_198) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_199 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_200 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_201 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_202 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_199\n        c1_200 = TreeSitter.Node.nodeStartPoint node_198\n      TreeSitter.Node.TSPoint\n        r2_201\n        c2_202 = TreeSitter.Node.nodeEndPoint node_198\n\nderiving instance GHC.Classes.Eq a_203 => GHC.Classes.Eq (ColonBlock a_203)\n\nderiving instance GHC.Classes.Ord a_204 => GHC.Classes.Ord (ColonBlock a_204)\n\nderiving instance GHC.Show.Show a_205 => GHC.Show.Show (ColonBlock a_205)\n\ninstance AST.Unmarshal.Unmarshal ColonBlock\n\ninstance Data.Foldable.Foldable ColonBlock where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ColonBlock where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ColonBlock where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CompoundStatement a = CompoundStatement\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (Statement a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_206.\n      AST.Traversable1.Class.Traversable1 a_206\n    )\n\ninstance AST.Unmarshal.SymbolMatching CompoundStatement where\n  matchedSymbols _ = [233]\n  showFailure _ node_207 =\n    \"expected \"\n      GHC.Base.<> ( \"compound_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_207 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_207) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_208 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_209 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_210 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_211 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_208\n        c1_209 = TreeSitter.Node.nodeStartPoint node_207\n      TreeSitter.Node.TSPoint\n        r2_210\n        c2_211 = TreeSitter.Node.nodeEndPoint node_207\n\nderiving instance GHC.Classes.Eq a_212 => GHC.Classes.Eq (CompoundStatement a_212)\n\nderiving instance GHC.Classes.Ord a_213 => GHC.Classes.Ord (CompoundStatement a_213)\n\nderiving instance GHC.Show.Show a_214 => GHC.Show.Show (CompoundStatement a_214)\n\ninstance AST.Unmarshal.Unmarshal CompoundStatement\n\ninstance Data.Foldable.Foldable CompoundStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CompoundStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CompoundStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ConditionalExpression a = ConditionalExpression\n  { ann :: a,\n    alternative :: (AST.Parse.Err (Expression a)),\n    body :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    condition :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_215.\n      AST.Traversable1.Class.Traversable1 a_215\n    )\n\ninstance AST.Unmarshal.SymbolMatching ConditionalExpression where\n  matchedSymbols _ = [252]\n  showFailure _ node_216 =\n    \"expected \"\n      GHC.Base.<> ( \"conditional_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_216 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_216) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_217 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_218 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_219 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_220 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_217\n        c1_218 = TreeSitter.Node.nodeStartPoint node_216\n      TreeSitter.Node.TSPoint\n        r2_219\n        c2_220 = TreeSitter.Node.nodeEndPoint node_216\n\nderiving instance GHC.Classes.Eq a_221 => GHC.Classes.Eq (ConditionalExpression a_221)\n\nderiving instance GHC.Classes.Ord a_222 => GHC.Classes.Ord (ConditionalExpression a_222)\n\nderiving instance GHC.Show.Show a_223 => GHC.Show.Show (ConditionalExpression a_223)\n\ninstance AST.Unmarshal.Unmarshal ConditionalExpression\n\ninstance Data.Foldable.Foldable ConditionalExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ConditionalExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ConditionalExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ConstDeclaration a = ConstDeclaration\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ConstElement GHC.Generics.:+: VisibilityModifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_224.\n      AST.Traversable1.Class.Traversable1 a_224\n    )\n\ninstance AST.Unmarshal.SymbolMatching ConstDeclaration where\n  matchedSymbols _ = [180]\n  showFailure _ node_225 =\n    \"expected \"\n      GHC.Base.<> ( \"const_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_225 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_225) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_226 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_227 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_228 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_229 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_226\n        c1_227 = TreeSitter.Node.nodeStartPoint node_225\n      TreeSitter.Node.TSPoint\n        r2_228\n        c2_229 = TreeSitter.Node.nodeEndPoint node_225\n\nderiving instance GHC.Classes.Eq a_230 => GHC.Classes.Eq (ConstDeclaration a_230)\n\nderiving instance GHC.Classes.Ord a_231 => GHC.Classes.Ord (ConstDeclaration a_231)\n\nderiving instance GHC.Show.Show a_232 => GHC.Show.Show (ConstDeclaration a_232)\n\ninstance AST.Unmarshal.Unmarshal ConstDeclaration\n\ninstance Data.Foldable.Foldable ConstDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ConstDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ConstDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ConstElement a = ConstElement\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: Name) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_233.\n      AST.Traversable1.Class.Traversable1 a_233\n    )\n\ninstance AST.Unmarshal.SymbolMatching ConstElement where\n  matchedSymbols _ = [202]\n  showFailure _ node_234 =\n    \"expected \"\n      GHC.Base.<> ( \"const_element\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_234 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_234) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_235 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_236 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_237 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_238 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_235\n        c1_236 = TreeSitter.Node.nodeStartPoint node_234\n      TreeSitter.Node.TSPoint\n        r2_237\n        c2_238 = TreeSitter.Node.nodeEndPoint node_234\n\nderiving instance GHC.Classes.Eq a_239 => GHC.Classes.Eq (ConstElement a_239)\n\nderiving instance GHC.Classes.Ord a_240 => GHC.Classes.Ord (ConstElement a_240)\n\nderiving instance GHC.Show.Show a_241 => GHC.Show.Show (ConstElement a_241)\n\ninstance AST.Unmarshal.Unmarshal ConstElement\n\ninstance Data.Foldable.Foldable ConstElement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ConstElement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ConstElement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ContinueStatement a = ContinueStatement\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_242.\n      AST.Traversable1.Class.Traversable1 a_242\n    )\n\ninstance AST.Unmarshal.SymbolMatching ContinueStatement where\n  matchedSymbols _ = [212]\n  showFailure _ node_243 =\n    \"expected \"\n      GHC.Base.<> ( \"continue_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_243 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_243) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_244 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_245 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_246 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_247 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_244\n        c1_245 = TreeSitter.Node.nodeStartPoint node_243\n      TreeSitter.Node.TSPoint\n        r2_246\n        c2_247 = TreeSitter.Node.nodeEndPoint node_243\n\nderiving instance GHC.Classes.Eq a_248 => GHC.Classes.Eq (ContinueStatement a_248)\n\nderiving instance GHC.Classes.Ord a_249 => GHC.Classes.Ord (ContinueStatement a_249)\n\nderiving instance GHC.Show.Show a_250 => GHC.Show.Show (ContinueStatement a_250)\n\ninstance AST.Unmarshal.Unmarshal ContinueStatement\n\ninstance Data.Foldable.Foldable ContinueStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ContinueStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ContinueStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DeclarationList a = DeclarationList\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((ConstDeclaration GHC.Generics.:+: MethodDeclaration GHC.Generics.:+: PropertyDeclaration GHC.Generics.:+: UseDeclaration) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_251.\n      AST.Traversable1.Class.Traversable1 a_251\n    )\n\ninstance AST.Unmarshal.SymbolMatching DeclarationList where\n  matchedSymbols _ = [175]\n  showFailure _ node_252 =\n    \"expected \"\n      GHC.Base.<> ( \"declaration_list\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_252 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_252) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_253 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_254 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_255 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_256 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_253\n        c1_254 = TreeSitter.Node.nodeStartPoint node_252\n      TreeSitter.Node.TSPoint\n        r2_255\n        c2_256 = TreeSitter.Node.nodeEndPoint node_252\n\nderiving instance GHC.Classes.Eq a_257 => GHC.Classes.Eq (DeclarationList a_257)\n\nderiving instance GHC.Classes.Ord a_258 => GHC.Classes.Ord (DeclarationList a_258)\n\nderiving instance GHC.Show.Show a_259 => GHC.Show.Show (DeclarationList a_259)\n\ninstance AST.Unmarshal.Unmarshal DeclarationList\n\ninstance Data.Foldable.Foldable DeclarationList where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DeclarationList where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DeclarationList where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DeclareDirective a = DeclareDirective\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Literal a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_260.\n      AST.Traversable1.Class.Traversable1 a_260\n    )\n\ninstance AST.Unmarshal.SymbolMatching DeclareDirective where\n  matchedSymbols _ = [206]\n  showFailure _ node_261 =\n    \"expected \"\n      GHC.Base.<> ( \"declare_directive\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_261 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_261) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_262 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_263 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_264 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_265 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_262\n        c1_263 = TreeSitter.Node.nodeStartPoint node_261\n      TreeSitter.Node.TSPoint\n        r2_264\n        c2_265 = TreeSitter.Node.nodeEndPoint node_261\n\nderiving instance GHC.Classes.Eq a_266 => GHC.Classes.Eq (DeclareDirective a_266)\n\nderiving instance GHC.Classes.Ord a_267 => GHC.Classes.Ord (DeclareDirective a_267)\n\nderiving instance GHC.Show.Show a_268 => GHC.Show.Show (DeclareDirective a_268)\n\ninstance AST.Unmarshal.Unmarshal DeclareDirective\n\ninstance Data.Foldable.Foldable DeclareDirective where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DeclareDirective where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DeclareDirective where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DeclareStatement a = DeclareStatement\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Statement GHC.Generics.:+: DeclareDirective) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_269.\n      AST.Traversable1.Class.Traversable1 a_269\n    )\n\ninstance AST.Unmarshal.SymbolMatching DeclareStatement where\n  matchedSymbols _ = [205]\n  showFailure _ node_270 =\n    \"expected \"\n      GHC.Base.<> ( \"declare_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_270 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_270) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_271 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_272 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_273 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_274 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_271\n        c1_272 = TreeSitter.Node.nodeStartPoint node_270\n      TreeSitter.Node.TSPoint\n        r2_273\n        c2_274 = TreeSitter.Node.nodeEndPoint node_270\n\nderiving instance GHC.Classes.Eq a_275 => GHC.Classes.Eq (DeclareStatement a_275)\n\nderiving instance GHC.Classes.Ord a_276 => GHC.Classes.Ord (DeclareStatement a_276)\n\nderiving instance GHC.Show.Show a_277 => GHC.Show.Show (DeclareStatement a_277)\n\ninstance AST.Unmarshal.Unmarshal DeclareStatement\n\ninstance Data.Foldable.Foldable DeclareStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DeclareStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DeclareStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DefaultStatement a = DefaultStatement\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (Statement a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_278.\n      AST.Traversable1.Class.Traversable1 a_278\n    )\n\ninstance AST.Unmarshal.SymbolMatching DefaultStatement where\n  matchedSymbols _ = [232]\n  showFailure _ node_279 =\n    \"expected \"\n      GHC.Base.<> ( \"default_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_279 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_279) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_280 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_281 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_282 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_283 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_280\n        c1_281 = TreeSitter.Node.nodeStartPoint node_279\n      TreeSitter.Node.TSPoint\n        r2_282\n        c2_283 = TreeSitter.Node.nodeEndPoint node_279\n\nderiving instance GHC.Classes.Eq a_284 => GHC.Classes.Eq (DefaultStatement a_284)\n\nderiving instance GHC.Classes.Ord a_285 => GHC.Classes.Ord (DefaultStatement a_285)\n\nderiving instance GHC.Show.Show a_286 => GHC.Show.Show (DefaultStatement a_286)\n\ninstance AST.Unmarshal.Unmarshal DefaultStatement\n\ninstance Data.Foldable.Foldable DefaultStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DefaultStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DefaultStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DoStatement a = DoStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (Statement a)),\n    condition :: (AST.Parse.Err (ParenthesizedExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_287.\n      AST.Traversable1.Class.Traversable1 a_287\n    )\n\ninstance AST.Unmarshal.SymbolMatching DoStatement where\n  matchedSymbols _ = [217]\n  showFailure _ node_288 =\n    \"expected \"\n      GHC.Base.<> ( \"do_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_288 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_288) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_289 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_290 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_291 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_292 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_289\n        c1_290 = TreeSitter.Node.nodeStartPoint node_288\n      TreeSitter.Node.TSPoint\n        r2_291\n        c2_292 = TreeSitter.Node.nodeEndPoint node_288\n\nderiving instance GHC.Classes.Eq a_293 => GHC.Classes.Eq (DoStatement a_293)\n\nderiving instance GHC.Classes.Ord a_294 => GHC.Classes.Ord (DoStatement a_294)\n\nderiving instance GHC.Show.Show a_295 => GHC.Show.Show (DoStatement a_295)\n\ninstance AST.Unmarshal.Unmarshal DoStatement\n\ninstance Data.Foldable.Foldable DoStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DoStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DoStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DynamicVariableName a = DynamicVariableName\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: VariableName) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_296.\n      AST.Traversable1.Class.Traversable1 a_296\n    )\n\ninstance AST.Unmarshal.SymbolMatching DynamicVariableName where\n  matchedSymbols _ = [268]\n  showFailure _ node_297 =\n    \"expected \"\n      GHC.Base.<> ( \"dynamic_variable_name\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_297 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_297) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_298 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_299 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_300 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_301 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_298\n        c1_299 = TreeSitter.Node.nodeStartPoint node_297\n      TreeSitter.Node.TSPoint\n        r2_300\n        c2_301 = TreeSitter.Node.nodeEndPoint node_297\n\nderiving instance GHC.Classes.Eq a_302 => GHC.Classes.Eq (DynamicVariableName a_302)\n\nderiving instance GHC.Classes.Ord a_303 => GHC.Classes.Ord (DynamicVariableName a_303)\n\nderiving instance GHC.Show.Show a_304 => GHC.Show.Show (DynamicVariableName a_304)\n\ninstance AST.Unmarshal.Unmarshal DynamicVariableName\n\ninstance Data.Foldable.Foldable DynamicVariableName where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DynamicVariableName where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DynamicVariableName where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata EchoStatement a = EchoStatement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_305.\n      AST.Traversable1.Class.Traversable1 a_305\n    )\n\ninstance AST.Unmarshal.SymbolMatching EchoStatement where\n  matchedSymbols _ = [203]\n  showFailure _ node_306 =\n    \"expected \"\n      GHC.Base.<> ( \"echo_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_306 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_306) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_307 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_308 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_309 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_310 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_307\n        c1_308 = TreeSitter.Node.nodeStartPoint node_306\n      TreeSitter.Node.TSPoint\n        r2_309\n        c2_310 = TreeSitter.Node.nodeEndPoint node_306\n\nderiving instance GHC.Classes.Eq a_311 => GHC.Classes.Eq (EchoStatement a_311)\n\nderiving instance GHC.Classes.Ord a_312 => GHC.Classes.Ord (EchoStatement a_312)\n\nderiving instance GHC.Show.Show a_313 => GHC.Show.Show (EchoStatement a_313)\n\ninstance AST.Unmarshal.Unmarshal EchoStatement\n\ninstance Data.Foldable.Foldable EchoStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EchoStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EchoStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ElseClause a = ElseClause\n  { ann :: a,\n    body :: (AST.Parse.Err ((Statement GHC.Generics.:+: ColonBlock) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_314.\n      AST.Traversable1.Class.Traversable1 a_314\n    )\n\ninstance AST.Unmarshal.SymbolMatching ElseClause where\n  matchedSymbols _ = [226, 228]\n  showFailure _ node_315 =\n    \"expected \"\n      GHC.Base.<> ( \"else_clause, else_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_315 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_315) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_316 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_317 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_318 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_319 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_316\n        c1_317 = TreeSitter.Node.nodeStartPoint node_315\n      TreeSitter.Node.TSPoint\n        r2_318\n        c2_319 = TreeSitter.Node.nodeEndPoint node_315\n\nderiving instance GHC.Classes.Eq a_320 => GHC.Classes.Eq (ElseClause a_320)\n\nderiving instance GHC.Classes.Ord a_321 => GHC.Classes.Ord (ElseClause a_321)\n\nderiving instance GHC.Show.Show a_322 => GHC.Show.Show (ElseClause a_322)\n\ninstance AST.Unmarshal.Unmarshal ElseClause\n\ninstance Data.Foldable.Foldable ElseClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ElseClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ElseClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ElseIfClause a = ElseIfClause\n  { ann :: a,\n    body :: (AST.Parse.Err ((Statement GHC.Generics.:+: ColonBlock) a)),\n    condition :: (AST.Parse.Err (ParenthesizedExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_323.\n      AST.Traversable1.Class.Traversable1 a_323\n    )\n\ninstance AST.Unmarshal.SymbolMatching ElseIfClause where\n  matchedSymbols _ = [225, 227]\n  showFailure _ node_324 =\n    \"expected \"\n      GHC.Base.<> ( \"else_if_clause, else_if_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_324 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_324) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_325 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_326 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_327 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_328 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_325\n        c1_326 = TreeSitter.Node.nodeStartPoint node_324\n      TreeSitter.Node.TSPoint\n        r2_327\n        c2_328 = TreeSitter.Node.nodeEndPoint node_324\n\nderiving instance GHC.Classes.Eq a_329 => GHC.Classes.Eq (ElseIfClause a_329)\n\nderiving instance GHC.Classes.Ord a_330 => GHC.Classes.Ord (ElseIfClause a_330)\n\nderiving instance GHC.Show.Show a_331 => GHC.Show.Show (ElseIfClause a_331)\n\ninstance AST.Unmarshal.Unmarshal ElseIfClause\n\ninstance Data.Foldable.Foldable ElseIfClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ElseIfClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ElseIfClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata EmptyStatement a = EmptyStatement {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_332.\n      AST.Traversable1.Class.Traversable1 a_332\n    )\n\ninstance AST.Unmarshal.SymbolMatching EmptyStatement where\n  matchedSymbols _ = [157]\n  showFailure _ node_333 =\n    \"expected \"\n      GHC.Base.<> ( \"empty_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_333 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_333) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_334 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_335 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_336 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_337 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_334\n        c1_335 = TreeSitter.Node.nodeStartPoint node_333\n      TreeSitter.Node.TSPoint\n        r2_336\n        c2_337 = TreeSitter.Node.nodeEndPoint node_333\n\nderiving instance GHC.Classes.Eq a_338 => GHC.Classes.Eq (EmptyStatement a_338)\n\nderiving instance GHC.Classes.Ord a_339 => GHC.Classes.Ord (EmptyStatement a_339)\n\nderiving instance GHC.Show.Show a_340 => GHC.Show.Show (EmptyStatement a_340)\n\ninstance AST.Unmarshal.Unmarshal EmptyStatement\n\ninstance Data.Foldable.Foldable EmptyStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EmptyStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EmptyStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExponentiationExpression a = ExponentiationExpression\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((PrimaryExpression GHC.Generics.:+: CloneExpression GHC.Generics.:+: ExponentiationExpression) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_341.\n      AST.Traversable1.Class.Traversable1 a_341\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExponentiationExpression where\n  matchedSymbols _ = [239]\n  showFailure _ node_342 =\n    \"expected \"\n      GHC.Base.<> ( \"exponentiation_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_342 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_342) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_343 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_344 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_345 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_346 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_343\n        c1_344 = TreeSitter.Node.nodeStartPoint node_342\n      TreeSitter.Node.TSPoint\n        r2_345\n        c2_346 = TreeSitter.Node.nodeEndPoint node_342\n\nderiving instance GHC.Classes.Eq a_347 => GHC.Classes.Eq (ExponentiationExpression a_347)\n\nderiving instance GHC.Classes.Ord a_348 => GHC.Classes.Ord (ExponentiationExpression a_348)\n\nderiving instance GHC.Show.Show a_349 => GHC.Show.Show (ExponentiationExpression a_349)\n\ninstance AST.Unmarshal.Unmarshal ExponentiationExpression\n\ninstance Data.Foldable.Foldable ExponentiationExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExponentiationExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExponentiationExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExpressionStatement a = ExpressionStatement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_350.\n      AST.Traversable1.Class.Traversable1 a_350\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExpressionStatement where\n  matchedSymbols _ = [235]\n  showFailure _ node_351 =\n    \"expected \"\n      GHC.Base.<> ( \"expression_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_351 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_351) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_352 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_353 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_354 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_355 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_352\n        c1_353 = TreeSitter.Node.nodeStartPoint node_351\n      TreeSitter.Node.TSPoint\n        r2_354\n        c2_355 = TreeSitter.Node.nodeEndPoint node_351\n\nderiving instance GHC.Classes.Eq a_356 => GHC.Classes.Eq (ExpressionStatement a_356)\n\nderiving instance GHC.Classes.Ord a_357 => GHC.Classes.Ord (ExpressionStatement a_357)\n\nderiving instance GHC.Show.Show a_358 => GHC.Show.Show (ExpressionStatement a_358)\n\ninstance AST.Unmarshal.Unmarshal ExpressionStatement\n\ninstance Data.Foldable.Foldable ExpressionStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExpressionStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExpressionStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FinallyClause a = FinallyClause\n  { ann :: a,\n    body :: (AST.Parse.Err (CompoundStatement a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_359.\n      AST.Traversable1.Class.Traversable1 a_359\n    )\n\ninstance AST.Unmarshal.SymbolMatching FinallyClause where\n  matchedSymbols _ = [209]\n  showFailure _ node_360 =\n    \"expected \"\n      GHC.Base.<> ( \"finally_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_360 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_360) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_361 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_362 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_363 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_364 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_361\n        c1_362 = TreeSitter.Node.nodeStartPoint node_360\n      TreeSitter.Node.TSPoint\n        r2_363\n        c2_364 = TreeSitter.Node.nodeEndPoint node_360\n\nderiving instance GHC.Classes.Eq a_365 => GHC.Classes.Eq (FinallyClause a_365)\n\nderiving instance GHC.Classes.Ord a_366 => GHC.Classes.Ord (FinallyClause a_366)\n\nderiving instance GHC.Show.Show a_367 => GHC.Show.Show (FinallyClause a_367)\n\ninstance AST.Unmarshal.Unmarshal FinallyClause\n\ninstance Data.Foldable.Foldable FinallyClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FinallyClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FinallyClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ForStatement a = ForStatement\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: Statement GHC.Generics.:+: SequenceExpression) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_368.\n      AST.Traversable1.Class.Traversable1 a_368\n    )\n\ninstance AST.Unmarshal.SymbolMatching ForStatement where\n  matchedSymbols _ = [218]\n  showFailure _ node_369 =\n    \"expected \"\n      GHC.Base.<> ( \"for_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_369 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_369) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_370 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_371 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_372 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_373 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_370\n        c1_371 = TreeSitter.Node.nodeStartPoint node_369\n      TreeSitter.Node.TSPoint\n        r2_372\n        c2_373 = TreeSitter.Node.nodeEndPoint node_369\n\nderiving instance GHC.Classes.Eq a_374 => GHC.Classes.Eq (ForStatement a_374)\n\nderiving instance GHC.Classes.Ord a_375 => GHC.Classes.Ord (ForStatement a_375)\n\nderiving instance GHC.Show.Show a_376 => GHC.Show.Show (ForStatement a_376)\n\ninstance AST.Unmarshal.Unmarshal ForStatement\n\ninstance Data.Foldable.Foldable ForStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ForStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ForStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ForeachStatement a = ForeachStatement\n  { ann :: a,\n    body :: (GHC.Maybe.Maybe (AST.Parse.Err ((Statement GHC.Generics.:+: ColonBlock) a))),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: ListLiteral GHC.Generics.:+: Pair) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_377.\n      AST.Traversable1.Class.Traversable1 a_377\n    )\n\ninstance AST.Unmarshal.SymbolMatching ForeachStatement where\n  matchedSymbols _ = [221]\n  showFailure _ node_378 =\n    \"expected \"\n      GHC.Base.<> ( \"foreach_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_378 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_378) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_379 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_380 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_381 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_382 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_379\n        c1_380 = TreeSitter.Node.nodeStartPoint node_378\n      TreeSitter.Node.TSPoint\n        r2_381\n        c2_382 = TreeSitter.Node.nodeEndPoint node_378\n\nderiving instance GHC.Classes.Eq a_383 => GHC.Classes.Eq (ForeachStatement a_383)\n\nderiving instance GHC.Classes.Ord a_384 => GHC.Classes.Ord (ForeachStatement a_384)\n\nderiving instance GHC.Show.Show a_385 => GHC.Show.Show (ForeachStatement a_385)\n\ninstance AST.Unmarshal.Unmarshal ForeachStatement\n\ninstance Data.Foldable.Foldable ForeachStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ForeachStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ForeachStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FormalParameters a = FormalParameters\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((SimpleParameter GHC.Generics.:+: VariadicParameter) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_386.\n      AST.Traversable1.Class.Traversable1 a_386\n    )\n\ninstance AST.Unmarshal.SymbolMatching FormalParameters where\n  matchedSymbols _ = [194]\n  showFailure _ node_387 =\n    \"expected \"\n      GHC.Base.<> ( \"formal_parameters\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_387 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_387) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_388 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_389 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_390 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_391 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_388\n        c1_389 = TreeSitter.Node.nodeStartPoint node_387\n      TreeSitter.Node.TSPoint\n        r2_390\n        c2_391 = TreeSitter.Node.nodeEndPoint node_387\n\nderiving instance GHC.Classes.Eq a_392 => GHC.Classes.Eq (FormalParameters a_392)\n\nderiving instance GHC.Classes.Ord a_393 => GHC.Classes.Ord (FormalParameters a_393)\n\nderiving instance GHC.Show.Show a_394 => GHC.Show.Show (FormalParameters a_394)\n\ninstance AST.Unmarshal.Unmarshal FormalParameters\n\ninstance Data.Foldable.Foldable FormalParameters where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FormalParameters where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FormalParameters where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FunctionCallExpression a = FunctionCallExpression\n  { ann :: a,\n    function :: (AST.Parse.Err ((ArrayCreationExpression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: FunctionCallExpression GHC.Generics.:+: Heredoc GHC.Generics.:+: MemberCallExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: QualifiedName GHC.Generics.:+: ScopedCallExpression GHC.Generics.:+: String GHC.Generics.:+: SubscriptExpression GHC.Generics.:+: VariableName) a)),\n    arguments :: (AST.Parse.Err (Arguments a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_395.\n      AST.Traversable1.Class.Traversable1 a_395\n    )\n\ninstance AST.Unmarshal.SymbolMatching FunctionCallExpression where\n  matchedSymbols _ = [257]\n  showFailure _ node_396 =\n    \"expected \"\n      GHC.Base.<> ( \"function_call_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_396 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_396) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_397 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_398 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_399 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_400 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_397\n        c1_398 = TreeSitter.Node.nodeStartPoint node_396\n      TreeSitter.Node.TSPoint\n        r2_399\n        c2_400 = TreeSitter.Node.nodeEndPoint node_396\n\nderiving instance GHC.Classes.Eq a_401 => GHC.Classes.Eq (FunctionCallExpression a_401)\n\nderiving instance GHC.Classes.Ord a_402 => GHC.Classes.Ord (FunctionCallExpression a_402)\n\nderiving instance GHC.Show.Show a_403 => GHC.Show.Show (FunctionCallExpression a_403)\n\ninstance AST.Unmarshal.Unmarshal FunctionCallExpression\n\ninstance Data.Foldable.Foldable FunctionCallExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FunctionCallExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FunctionCallExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FunctionDefinition a = FunctionDefinition\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (Type a))),\n    body :: (AST.Parse.Err (CompoundStatement a)),\n    name :: (AST.Parse.Err (Name a)),\n    parameters :: (AST.Parse.Err (FormalParameters a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_404.\n      AST.Traversable1.Class.Traversable1 a_404\n    )\n\ninstance AST.Unmarshal.SymbolMatching FunctionDefinition where\n  matchedSymbols _ = [192]\n  showFailure _ node_405 =\n    \"expected \"\n      GHC.Base.<> ( \"function_definition\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_405 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_405) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_406 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_407 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_408 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_409 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_406\n        c1_407 = TreeSitter.Node.nodeStartPoint node_405\n      TreeSitter.Node.TSPoint\n        r2_408\n        c2_409 = TreeSitter.Node.nodeEndPoint node_405\n\nderiving instance GHC.Classes.Eq a_410 => GHC.Classes.Eq (FunctionDefinition a_410)\n\nderiving instance GHC.Classes.Ord a_411 => GHC.Classes.Ord (FunctionDefinition a_411)\n\nderiving instance GHC.Show.Show a_412 => GHC.Show.Show (FunctionDefinition a_412)\n\ninstance AST.Unmarshal.Unmarshal FunctionDefinition\n\ninstance Data.Foldable.Foldable FunctionDefinition where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FunctionDefinition where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FunctionDefinition where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FunctionStaticDeclaration a = FunctionStaticDeclaration\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (StaticVariableDeclaration a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_413.\n      AST.Traversable1.Class.Traversable1 a_413\n    )\n\ninstance AST.Unmarshal.SymbolMatching FunctionStaticDeclaration where\n  matchedSymbols _ = [158]\n  showFailure _ node_414 =\n    \"expected \"\n      GHC.Base.<> ( \"function_static_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_414 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_414) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_415 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_416 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_417 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_418 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_415\n        c1_416 = TreeSitter.Node.nodeStartPoint node_414\n      TreeSitter.Node.TSPoint\n        r2_417\n        c2_418 = TreeSitter.Node.nodeEndPoint node_414\n\nderiving instance GHC.Classes.Eq a_419 => GHC.Classes.Eq (FunctionStaticDeclaration a_419)\n\nderiving instance GHC.Classes.Ord a_420 => GHC.Classes.Ord (FunctionStaticDeclaration a_420)\n\nderiving instance GHC.Show.Show a_421 => GHC.Show.Show (FunctionStaticDeclaration a_421)\n\ninstance AST.Unmarshal.Unmarshal FunctionStaticDeclaration\n\ninstance Data.Foldable.Foldable FunctionStaticDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FunctionStaticDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FunctionStaticDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata GlobalDeclaration a = GlobalDeclaration\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((DynamicVariableName GHC.Generics.:+: VariableName) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_422.\n      AST.Traversable1.Class.Traversable1 a_422\n    )\n\ninstance AST.Unmarshal.SymbolMatching GlobalDeclaration where\n  matchedSymbols _ = [160]\n  showFailure _ node_423 =\n    \"expected \"\n      GHC.Base.<> ( \"global_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_423 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_423) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_424 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_425 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_426 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_427 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_424\n        c1_425 = TreeSitter.Node.nodeStartPoint node_423\n      TreeSitter.Node.TSPoint\n        r2_426\n        c2_427 = TreeSitter.Node.nodeEndPoint node_423\n\nderiving instance GHC.Classes.Eq a_428 => GHC.Classes.Eq (GlobalDeclaration a_428)\n\nderiving instance GHC.Classes.Ord a_429 => GHC.Classes.Ord (GlobalDeclaration a_429)\n\nderiving instance GHC.Show.Show a_430 => GHC.Show.Show (GlobalDeclaration a_430)\n\ninstance AST.Unmarshal.Unmarshal GlobalDeclaration\n\ninstance Data.Foldable.Foldable GlobalDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor GlobalDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable GlobalDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata GotoStatement a = GotoStatement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Name a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_431.\n      AST.Traversable1.Class.Traversable1 a_431\n    )\n\ninstance AST.Unmarshal.SymbolMatching GotoStatement where\n  matchedSymbols _ = [211]\n  showFailure _ node_432 =\n    \"expected \"\n      GHC.Base.<> ( \"goto_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_432 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_432) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_433 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_434 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_435 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_436 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_433\n        c1_434 = TreeSitter.Node.nodeStartPoint node_432\n      TreeSitter.Node.TSPoint\n        r2_435\n        c2_436 = TreeSitter.Node.nodeEndPoint node_432\n\nderiving instance GHC.Classes.Eq a_437 => GHC.Classes.Eq (GotoStatement a_437)\n\nderiving instance GHC.Classes.Ord a_438 => GHC.Classes.Ord (GotoStatement a_438)\n\nderiving instance GHC.Show.Show a_439 => GHC.Show.Show (GotoStatement a_439)\n\ninstance AST.Unmarshal.Unmarshal GotoStatement\n\ninstance Data.Foldable.Foldable GotoStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor GotoStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable GotoStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IfStatement a = IfStatement\n  { ann :: a,\n    alternative :: ([AST.Parse.Err ((ElseClause GHC.Generics.:+: ElseIfClause) a)]),\n    body :: (AST.Parse.Err ((Statement GHC.Generics.:+: ColonBlock) a)),\n    condition :: (AST.Parse.Err (ParenthesizedExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_440.\n      AST.Traversable1.Class.Traversable1 a_440\n    )\n\ninstance AST.Unmarshal.SymbolMatching IfStatement where\n  matchedSymbols _ = [223]\n  showFailure _ node_441 =\n    \"expected \"\n      GHC.Base.<> ( \"if_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_441 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_441) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_442 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_443 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_444 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_445 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_442\n        c1_443 = TreeSitter.Node.nodeStartPoint node_441\n      TreeSitter.Node.TSPoint\n        r2_444\n        c2_445 = TreeSitter.Node.nodeEndPoint node_441\n\nderiving instance GHC.Classes.Eq a_446 => GHC.Classes.Eq (IfStatement a_446)\n\nderiving instance GHC.Classes.Ord a_447 => GHC.Classes.Ord (IfStatement a_447)\n\nderiving instance GHC.Show.Show a_448 => GHC.Show.Show (IfStatement a_448)\n\ninstance AST.Unmarshal.Unmarshal IfStatement\n\ninstance Data.Foldable.Foldable IfStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IfStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IfStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IncludeExpression a = IncludeExpression\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_449.\n      AST.Traversable1.Class.Traversable1 a_449\n    )\n\ninstance AST.Unmarshal.SymbolMatching IncludeExpression where\n  matchedSymbols _ = [273]\n  showFailure _ node_450 =\n    \"expected \"\n      GHC.Base.<> ( \"include_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_450 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_450) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_451 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_452 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_453 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_454 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_451\n        c1_452 = TreeSitter.Node.nodeStartPoint node_450\n      TreeSitter.Node.TSPoint\n        r2_453\n        c2_454 = TreeSitter.Node.nodeEndPoint node_450\n\nderiving instance GHC.Classes.Eq a_455 => GHC.Classes.Eq (IncludeExpression a_455)\n\nderiving instance GHC.Classes.Ord a_456 => GHC.Classes.Ord (IncludeExpression a_456)\n\nderiving instance GHC.Show.Show a_457 => GHC.Show.Show (IncludeExpression a_457)\n\ninstance AST.Unmarshal.Unmarshal IncludeExpression\n\ninstance Data.Foldable.Foldable IncludeExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IncludeExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IncludeExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IncludeOnceExpression a = IncludeOnceExpression\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_458.\n      AST.Traversable1.Class.Traversable1 a_458\n    )\n\ninstance AST.Unmarshal.SymbolMatching IncludeOnceExpression where\n  matchedSymbols _ = [274]\n  showFailure _ node_459 =\n    \"expected \"\n      GHC.Base.<> ( \"include_once_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_459 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_459) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_460 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_461 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_462 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_463 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_460\n        c1_461 = TreeSitter.Node.nodeStartPoint node_459\n      TreeSitter.Node.TSPoint\n        r2_462\n        c2_463 = TreeSitter.Node.nodeEndPoint node_459\n\nderiving instance GHC.Classes.Eq a_464 => GHC.Classes.Eq (IncludeOnceExpression a_464)\n\nderiving instance GHC.Classes.Ord a_465 => GHC.Classes.Ord (IncludeOnceExpression a_465)\n\nderiving instance GHC.Show.Show a_466 => GHC.Show.Show (IncludeOnceExpression a_466)\n\ninstance AST.Unmarshal.Unmarshal IncludeOnceExpression\n\ninstance Data.Foldable.Foldable IncludeOnceExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IncludeOnceExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IncludeOnceExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata InterfaceBaseClause a = InterfaceBaseClause\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (QualifiedName a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_467.\n      AST.Traversable1.Class.Traversable1 a_467\n    )\n\ninstance AST.Unmarshal.SymbolMatching InterfaceBaseClause where\n  matchedSymbols _ = [173]\n  showFailure _ node_468 =\n    \"expected \"\n      GHC.Base.<> ( \"interface_base_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_468 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_468) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_469 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_470 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_471 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_472 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_469\n        c1_470 = TreeSitter.Node.nodeStartPoint node_468\n      TreeSitter.Node.TSPoint\n        r2_471\n        c2_472 = TreeSitter.Node.nodeEndPoint node_468\n\nderiving instance GHC.Classes.Eq a_473 => GHC.Classes.Eq (InterfaceBaseClause a_473)\n\nderiving instance GHC.Classes.Ord a_474 => GHC.Classes.Ord (InterfaceBaseClause a_474)\n\nderiving instance GHC.Show.Show a_475 => GHC.Show.Show (InterfaceBaseClause a_475)\n\ninstance AST.Unmarshal.Unmarshal InterfaceBaseClause\n\ninstance Data.Foldable.Foldable InterfaceBaseClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor InterfaceBaseClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable InterfaceBaseClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata InterfaceDeclaration a = InterfaceDeclaration\n  { ann :: a,\n    body :: (AST.Parse.Err (DeclarationList a)),\n    name :: (AST.Parse.Err (Name a)),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (InterfaceBaseClause a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_476.\n      AST.Traversable1.Class.Traversable1 a_476\n    )\n\ninstance AST.Unmarshal.SymbolMatching InterfaceDeclaration where\n  matchedSymbols _ = [172]\n  showFailure _ node_477 =\n    \"expected \"\n      GHC.Base.<> ( \"interface_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_477 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_477) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_478 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_479 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_480 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_481 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_478\n        c1_479 = TreeSitter.Node.nodeStartPoint node_477\n      TreeSitter.Node.TSPoint\n        r2_480\n        c2_481 = TreeSitter.Node.nodeEndPoint node_477\n\nderiving instance GHC.Classes.Eq a_482 => GHC.Classes.Eq (InterfaceDeclaration a_482)\n\nderiving instance GHC.Classes.Ord a_483 => GHC.Classes.Ord (InterfaceDeclaration a_483)\n\nderiving instance GHC.Show.Show a_484 => GHC.Show.Show (InterfaceDeclaration a_484)\n\ninstance AST.Unmarshal.Unmarshal InterfaceDeclaration\n\ninstance Data.Foldable.Foldable InterfaceDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor InterfaceDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable InterfaceDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ListLiteral a = ListLiteral\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: FunctionCallExpression GHC.Generics.:+: ListLiteral GHC.Generics.:+: MemberAccessExpression GHC.Generics.:+: MemberCallExpression GHC.Generics.:+: ScopedCallExpression GHC.Generics.:+: ScopedPropertyAccessExpression GHC.Generics.:+: SubscriptExpression GHC.Generics.:+: VariableName) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_485.\n      AST.Traversable1.Class.Traversable1 a_485\n    )\n\ninstance AST.Unmarshal.SymbolMatching ListLiteral where\n  matchedSymbols _ = [256]\n  showFailure _ node_486 =\n    \"expected \"\n      GHC.Base.<> ( \"list_literal\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_486 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_486) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_487 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_488 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_489 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_490 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_487\n        c1_488 = TreeSitter.Node.nodeStartPoint node_486\n      TreeSitter.Node.TSPoint\n        r2_489\n        c2_490 = TreeSitter.Node.nodeEndPoint node_486\n\nderiving instance GHC.Classes.Eq a_491 => GHC.Classes.Eq (ListLiteral a_491)\n\nderiving instance GHC.Classes.Ord a_492 => GHC.Classes.Ord (ListLiteral a_492)\n\nderiving instance GHC.Show.Show a_493 => GHC.Show.Show (ListLiteral a_493)\n\ninstance AST.Unmarshal.Unmarshal ListLiteral\n\ninstance Data.Foldable.Foldable ListLiteral where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ListLiteral where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ListLiteral where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MemberAccessExpression a = MemberAccessExpression\n  { ann :: a,\n    name :: (AST.Parse.Err ((Expression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: Name GHC.Generics.:+: VariableName) a)),\n    object :: (AST.Parse.Err ((ArrayCreationExpression GHC.Generics.:+: CastExpression GHC.Generics.:+: ClassConstantAccessExpression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: FunctionCallExpression GHC.Generics.:+: Heredoc GHC.Generics.:+: MemberAccessExpression GHC.Generics.:+: MemberCallExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: ScopedCallExpression GHC.Generics.:+: ScopedPropertyAccessExpression GHC.Generics.:+: String GHC.Generics.:+: SubscriptExpression GHC.Generics.:+: VariableName) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_494.\n      AST.Traversable1.Class.Traversable1 a_494\n    )\n\ninstance AST.Unmarshal.SymbolMatching MemberAccessExpression where\n  matchedSymbols _ = [254]\n  showFailure _ node_495 =\n    \"expected \"\n      GHC.Base.<> ( \"member_access_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_495 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_495) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_496 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_497 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_498 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_499 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_496\n        c1_497 = TreeSitter.Node.nodeStartPoint node_495\n      TreeSitter.Node.TSPoint\n        r2_498\n        c2_499 = TreeSitter.Node.nodeEndPoint node_495\n\nderiving instance GHC.Classes.Eq a_500 => GHC.Classes.Eq (MemberAccessExpression a_500)\n\nderiving instance GHC.Classes.Ord a_501 => GHC.Classes.Ord (MemberAccessExpression a_501)\n\nderiving instance GHC.Show.Show a_502 => GHC.Show.Show (MemberAccessExpression a_502)\n\ninstance AST.Unmarshal.Unmarshal MemberAccessExpression\n\ninstance Data.Foldable.Foldable MemberAccessExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MemberAccessExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MemberAccessExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MemberCallExpression a = MemberCallExpression\n  { ann :: a,\n    arguments :: (AST.Parse.Err (Arguments a)),\n    name :: (AST.Parse.Err ((Expression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: Name GHC.Generics.:+: VariableName) a)),\n    object :: (AST.Parse.Err ((ArrayCreationExpression GHC.Generics.:+: CastExpression GHC.Generics.:+: ClassConstantAccessExpression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: FunctionCallExpression GHC.Generics.:+: Heredoc GHC.Generics.:+: MemberAccessExpression GHC.Generics.:+: MemberCallExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: ScopedCallExpression GHC.Generics.:+: ScopedPropertyAccessExpression GHC.Generics.:+: String GHC.Generics.:+: SubscriptExpression GHC.Generics.:+: VariableName) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_503.\n      AST.Traversable1.Class.Traversable1 a_503\n    )\n\ninstance AST.Unmarshal.SymbolMatching MemberCallExpression where\n  matchedSymbols _ = [262]\n  showFailure _ node_504 =\n    \"expected \"\n      GHC.Base.<> ( \"member_call_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_504 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_504) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_505 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_506 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_507 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_508 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_505\n        c1_506 = TreeSitter.Node.nodeStartPoint node_504\n      TreeSitter.Node.TSPoint\n        r2_507\n        c2_508 = TreeSitter.Node.nodeEndPoint node_504\n\nderiving instance GHC.Classes.Eq a_509 => GHC.Classes.Eq (MemberCallExpression a_509)\n\nderiving instance GHC.Classes.Ord a_510 => GHC.Classes.Ord (MemberCallExpression a_510)\n\nderiving instance GHC.Show.Show a_511 => GHC.Show.Show (MemberCallExpression a_511)\n\ninstance AST.Unmarshal.Unmarshal MemberCallExpression\n\ninstance Data.Foldable.Foldable MemberCallExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MemberCallExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MemberCallExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MethodDeclaration a = MethodDeclaration\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (Type a))),\n    body :: (GHC.Maybe.Maybe (AST.Parse.Err (CompoundStatement a))),\n    name :: (AST.Parse.Err (Name a)),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    extraChildren :: ([AST.Parse.Err ((ClassModifier GHC.Generics.:+: StaticModifier GHC.Generics.:+: VarModifier GHC.Generics.:+: VisibilityModifier) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_512.\n      AST.Traversable1.Class.Traversable1 a_512\n    )\n\ninstance AST.Unmarshal.SymbolMatching MethodDeclaration where\n  matchedSymbols _ = [185]\n  showFailure _ node_513 =\n    \"expected \"\n      GHC.Base.<> ( \"method_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_513 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_513) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_514 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_515 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_516 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_517 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_514\n        c1_515 = TreeSitter.Node.nodeStartPoint node_513\n      TreeSitter.Node.TSPoint\n        r2_516\n        c2_517 = TreeSitter.Node.nodeEndPoint node_513\n\nderiving instance GHC.Classes.Eq a_518 => GHC.Classes.Eq (MethodDeclaration a_518)\n\nderiving instance GHC.Classes.Ord a_519 => GHC.Classes.Ord (MethodDeclaration a_519)\n\nderiving instance GHC.Show.Show a_520 => GHC.Show.Show (MethodDeclaration a_520)\n\ninstance AST.Unmarshal.Unmarshal MethodDeclaration\n\ninstance Data.Foldable.Foldable MethodDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MethodDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MethodDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Name a = Name {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_521.\n      AST.Traversable1.Class.Traversable1 a_521\n    )\n\ninstance AST.Unmarshal.SymbolMatching Name where\n  matchedSymbols _ = [1, 277]\n  showFailure _ node_522 =\n    \"expected \"\n      GHC.Base.<> ( \"name, name\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_522 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_522) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_523 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_524 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_525 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_526 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_523\n        c1_524 = TreeSitter.Node.nodeStartPoint node_522\n      TreeSitter.Node.TSPoint\n        r2_525\n        c2_526 = TreeSitter.Node.nodeEndPoint node_522\n\nderiving instance GHC.Classes.Eq a_527 => GHC.Classes.Eq (Name a_527)\n\nderiving instance GHC.Classes.Ord a_528 => GHC.Classes.Ord (Name a_528)\n\nderiving instance GHC.Show.Show a_529 => GHC.Show.Show (Name a_529)\n\ninstance AST.Unmarshal.Unmarshal Name\n\ninstance Data.Foldable.Foldable Name where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Name where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Name where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NamedLabelStatement a = NamedLabelStatement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Name a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_530.\n      AST.Traversable1.Class.Traversable1 a_530\n    )\n\ninstance AST.Unmarshal.SymbolMatching NamedLabelStatement where\n  matchedSymbols _ = [234]\n  showFailure _ node_531 =\n    \"expected \"\n      GHC.Base.<> ( \"named_label_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_531 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_531) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_532 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_533 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_534 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_535 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_532\n        c1_533 = TreeSitter.Node.nodeStartPoint node_531\n      TreeSitter.Node.TSPoint\n        r2_534\n        c2_535 = TreeSitter.Node.nodeEndPoint node_531\n\nderiving instance GHC.Classes.Eq a_536 => GHC.Classes.Eq (NamedLabelStatement a_536)\n\nderiving instance GHC.Classes.Ord a_537 => GHC.Classes.Ord (NamedLabelStatement a_537)\n\nderiving instance GHC.Show.Show a_538 => GHC.Show.Show (NamedLabelStatement a_538)\n\ninstance AST.Unmarshal.Unmarshal NamedLabelStatement\n\ninstance Data.Foldable.Foldable NamedLabelStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NamedLabelStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NamedLabelStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NamespaceAliasingClause a = NamespaceAliasingClause\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Name a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_539.\n      AST.Traversable1.Class.Traversable1 a_539\n    )\n\ninstance AST.Unmarshal.SymbolMatching NamespaceAliasingClause where\n  matchedSymbols _ = [168]\n  showFailure _ node_540 =\n    \"expected \"\n      GHC.Base.<> ( \"namespace_aliasing_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_540 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_540) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_541 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_542 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_543 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_544 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_541\n        c1_542 = TreeSitter.Node.nodeStartPoint node_540\n      TreeSitter.Node.TSPoint\n        r2_543\n        c2_544 = TreeSitter.Node.nodeEndPoint node_540\n\nderiving instance GHC.Classes.Eq a_545 => GHC.Classes.Eq (NamespaceAliasingClause a_545)\n\nderiving instance GHC.Classes.Ord a_546 => GHC.Classes.Ord (NamespaceAliasingClause a_546)\n\nderiving instance GHC.Show.Show a_547 => GHC.Show.Show (NamespaceAliasingClause a_547)\n\ninstance AST.Unmarshal.Unmarshal NamespaceAliasingClause\n\ninstance Data.Foldable.Foldable NamespaceAliasingClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NamespaceAliasingClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NamespaceAliasingClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NamespaceDefinition a = NamespaceDefinition\n  { ann :: a,\n    body :: (GHC.Maybe.Maybe (AST.Parse.Err (CompoundStatement a))),\n    name :: (GHC.Maybe.Maybe (AST.Parse.Err (NamespaceName a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_548.\n      AST.Traversable1.Class.Traversable1 a_548\n    )\n\ninstance AST.Unmarshal.SymbolMatching NamespaceDefinition where\n  matchedSymbols _ = [161]\n  showFailure _ node_549 =\n    \"expected \"\n      GHC.Base.<> ( \"namespace_definition\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_549 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_549) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_550 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_551 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_552 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_553 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_550\n        c1_551 = TreeSitter.Node.nodeStartPoint node_549\n      TreeSitter.Node.TSPoint\n        r2_552\n        c2_553 = TreeSitter.Node.nodeEndPoint node_549\n\nderiving instance GHC.Classes.Eq a_554 => GHC.Classes.Eq (NamespaceDefinition a_554)\n\nderiving instance GHC.Classes.Ord a_555 => GHC.Classes.Ord (NamespaceDefinition a_555)\n\nderiving instance GHC.Show.Show a_556 => GHC.Show.Show (NamespaceDefinition a_556)\n\ninstance AST.Unmarshal.Unmarshal NamespaceDefinition\n\ninstance Data.Foldable.Foldable NamespaceDefinition where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NamespaceDefinition where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NamespaceDefinition where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NamespaceFunctionOrConst a = NamespaceFunctionOrConst\n  { ann :: a,\n    text :: Data.Text.Internal.Text\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_557.\n      AST.Traversable1.Class.Traversable1 a_557\n    )\n\ninstance AST.Unmarshal.SymbolMatching NamespaceFunctionOrConst where\n  matchedSymbols _ = [163]\n  showFailure _ node_558 =\n    \"expected \"\n      GHC.Base.<> ( \"namespace_function_or_const\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_558 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_558) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_559 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_560 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_561 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_562 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_559\n        c1_560 = TreeSitter.Node.nodeStartPoint node_558\n      TreeSitter.Node.TSPoint\n        r2_561\n        c2_562 = TreeSitter.Node.nodeEndPoint node_558\n\nderiving instance GHC.Classes.Eq a_563 => GHC.Classes.Eq (NamespaceFunctionOrConst a_563)\n\nderiving instance GHC.Classes.Ord a_564 => GHC.Classes.Ord (NamespaceFunctionOrConst a_564)\n\nderiving instance GHC.Show.Show a_565 => GHC.Show.Show (NamespaceFunctionOrConst a_565)\n\ninstance AST.Unmarshal.Unmarshal NamespaceFunctionOrConst\n\ninstance Data.Foldable.Foldable NamespaceFunctionOrConst where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NamespaceFunctionOrConst where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NamespaceFunctionOrConst where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NamespaceName a = NamespaceName\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Name a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_566.\n      AST.Traversable1.Class.Traversable1 a_566\n    )\n\ninstance AST.Unmarshal.SymbolMatching NamespaceName where\n  matchedSymbols _ = [167]\n  showFailure _ node_567 =\n    \"expected \"\n      GHC.Base.<> ( \"namespace_name\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_567 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_567) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_568 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_569 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_570 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_571 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_568\n        c1_569 = TreeSitter.Node.nodeStartPoint node_567\n      TreeSitter.Node.TSPoint\n        r2_570\n        c2_571 = TreeSitter.Node.nodeEndPoint node_567\n\nderiving instance GHC.Classes.Eq a_572 => GHC.Classes.Eq (NamespaceName a_572)\n\nderiving instance GHC.Classes.Ord a_573 => GHC.Classes.Ord (NamespaceName a_573)\n\nderiving instance GHC.Show.Show a_574 => GHC.Show.Show (NamespaceName a_574)\n\ninstance AST.Unmarshal.Unmarshal NamespaceName\n\ninstance Data.Foldable.Foldable NamespaceName where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NamespaceName where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NamespaceName where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NamespaceNameAsPrefix a = NamespaceNameAsPrefix\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (NamespaceName a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_575.\n      AST.Traversable1.Class.Traversable1 a_575\n    )\n\ninstance AST.Unmarshal.SymbolMatching NamespaceNameAsPrefix where\n  matchedSymbols _ = [166]\n  showFailure _ node_576 =\n    \"expected \"\n      GHC.Base.<> ( \"namespace_name_as_prefix\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_576 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_576) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_577 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_578 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_579 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_580 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_577\n        c1_578 = TreeSitter.Node.nodeStartPoint node_576\n      TreeSitter.Node.TSPoint\n        r2_579\n        c2_580 = TreeSitter.Node.nodeEndPoint node_576\n\nderiving instance GHC.Classes.Eq a_581 => GHC.Classes.Eq (NamespaceNameAsPrefix a_581)\n\nderiving instance GHC.Classes.Ord a_582 => GHC.Classes.Ord (NamespaceNameAsPrefix a_582)\n\nderiving instance GHC.Show.Show a_583 => GHC.Show.Show (NamespaceNameAsPrefix a_583)\n\ninstance AST.Unmarshal.Unmarshal NamespaceNameAsPrefix\n\ninstance Data.Foldable.Foldable NamespaceNameAsPrefix where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NamespaceNameAsPrefix where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NamespaceNameAsPrefix where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NamespaceUseClause a = NamespaceUseClause\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((NamespaceAliasingClause GHC.Generics.:+: QualifiedName) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_584.\n      AST.Traversable1.Class.Traversable1 a_584\n    )\n\ninstance AST.Unmarshal.SymbolMatching NamespaceUseClause where\n  matchedSymbols _ = [164]\n  showFailure _ node_585 =\n    \"expected \"\n      GHC.Base.<> ( \"namespace_use_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_585 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_585) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_586 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_587 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_588 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_589 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_586\n        c1_587 = TreeSitter.Node.nodeStartPoint node_585\n      TreeSitter.Node.TSPoint\n        r2_588\n        c2_589 = TreeSitter.Node.nodeEndPoint node_585\n\nderiving instance GHC.Classes.Eq a_590 => GHC.Classes.Eq (NamespaceUseClause a_590)\n\nderiving instance GHC.Classes.Ord a_591 => GHC.Classes.Ord (NamespaceUseClause a_591)\n\nderiving instance GHC.Show.Show a_592 => GHC.Show.Show (NamespaceUseClause a_592)\n\ninstance AST.Unmarshal.Unmarshal NamespaceUseClause\n\ninstance Data.Foldable.Foldable NamespaceUseClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NamespaceUseClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NamespaceUseClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NamespaceUseDeclaration a = NamespaceUseDeclaration\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((NamespaceFunctionOrConst GHC.Generics.:+: NamespaceName GHC.Generics.:+: NamespaceUseClause GHC.Generics.:+: NamespaceUseGroup) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_593.\n      AST.Traversable1.Class.Traversable1 a_593\n    )\n\ninstance AST.Unmarshal.SymbolMatching NamespaceUseDeclaration where\n  matchedSymbols _ = [162]\n  showFailure _ node_594 =\n    \"expected \"\n      GHC.Base.<> ( \"namespace_use_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_594 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_594) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_595 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_596 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_597 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_598 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_595\n        c1_596 = TreeSitter.Node.nodeStartPoint node_594\n      TreeSitter.Node.TSPoint\n        r2_597\n        c2_598 = TreeSitter.Node.nodeEndPoint node_594\n\nderiving instance GHC.Classes.Eq a_599 => GHC.Classes.Eq (NamespaceUseDeclaration a_599)\n\nderiving instance GHC.Classes.Ord a_600 => GHC.Classes.Ord (NamespaceUseDeclaration a_600)\n\nderiving instance GHC.Show.Show a_601 => GHC.Show.Show (NamespaceUseDeclaration a_601)\n\ninstance AST.Unmarshal.Unmarshal NamespaceUseDeclaration\n\ninstance Data.Foldable.Foldable NamespaceUseDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NamespaceUseDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NamespaceUseDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NamespaceUseGroup a = NamespaceUseGroup\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (NamespaceUseGroupClause a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_602.\n      AST.Traversable1.Class.Traversable1 a_602\n    )\n\ninstance AST.Unmarshal.SymbolMatching NamespaceUseGroup where\n  matchedSymbols _ = [169]\n  showFailure _ node_603 =\n    \"expected \"\n      GHC.Base.<> ( \"namespace_use_group\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_603 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_603) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_604 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_605 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_606 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_607 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_604\n        c1_605 = TreeSitter.Node.nodeStartPoint node_603\n      TreeSitter.Node.TSPoint\n        r2_606\n        c2_607 = TreeSitter.Node.nodeEndPoint node_603\n\nderiving instance GHC.Classes.Eq a_608 => GHC.Classes.Eq (NamespaceUseGroup a_608)\n\nderiving instance GHC.Classes.Ord a_609 => GHC.Classes.Ord (NamespaceUseGroup a_609)\n\nderiving instance GHC.Show.Show a_610 => GHC.Show.Show (NamespaceUseGroup a_610)\n\ninstance AST.Unmarshal.Unmarshal NamespaceUseGroup\n\ninstance Data.Foldable.Foldable NamespaceUseGroup where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NamespaceUseGroup where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NamespaceUseGroup where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NamespaceUseGroupClause a = NamespaceUseGroupClause\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((NamespaceAliasingClause GHC.Generics.:+: NamespaceFunctionOrConst GHC.Generics.:+: NamespaceName) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_611.\n      AST.Traversable1.Class.Traversable1 a_611\n    )\n\ninstance AST.Unmarshal.SymbolMatching NamespaceUseGroupClause where\n  matchedSymbols _ = [170]\n  showFailure _ node_612 =\n    \"expected \"\n      GHC.Base.<> ( \"namespace_use_group_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_612 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_612) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_613 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_614 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_615 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_616 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_613\n        c1_614 = TreeSitter.Node.nodeStartPoint node_612\n      TreeSitter.Node.TSPoint\n        r2_615\n        c2_616 = TreeSitter.Node.nodeEndPoint node_612\n\nderiving instance GHC.Classes.Eq a_617 => GHC.Classes.Eq (NamespaceUseGroupClause a_617)\n\nderiving instance GHC.Classes.Ord a_618 => GHC.Classes.Ord (NamespaceUseGroupClause a_618)\n\nderiving instance GHC.Show.Show a_619 => GHC.Show.Show (NamespaceUseGroupClause a_619)\n\ninstance AST.Unmarshal.Unmarshal NamespaceUseGroupClause\n\ninstance Data.Foldable.Foldable NamespaceUseGroupClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NamespaceUseGroupClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NamespaceUseGroupClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ObjectCreationExpression a = ObjectCreationExpression\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Arguments GHC.Generics.:+: ClassBaseClause GHC.Generics.:+: ClassInterfaceClause GHC.Generics.:+: DeclarationList GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: MemberAccessExpression GHC.Generics.:+: QualifiedName GHC.Generics.:+: ScopedPropertyAccessExpression GHC.Generics.:+: SubscriptExpression GHC.Generics.:+: VariableName) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_620.\n      AST.Traversable1.Class.Traversable1 a_620\n    )\n\ninstance AST.Unmarshal.SymbolMatching ObjectCreationExpression where\n  matchedSymbols _ = [247]\n  showFailure _ node_621 =\n    \"expected \"\n      GHC.Base.<> ( \"object_creation_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_621 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_621) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_622 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_623 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_624 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_625 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_622\n        c1_623 = TreeSitter.Node.nodeStartPoint node_621\n      TreeSitter.Node.TSPoint\n        r2_624\n        c2_625 = TreeSitter.Node.nodeEndPoint node_621\n\nderiving instance GHC.Classes.Eq a_626 => GHC.Classes.Eq (ObjectCreationExpression a_626)\n\nderiving instance GHC.Classes.Ord a_627 => GHC.Classes.Ord (ObjectCreationExpression a_627)\n\nderiving instance GHC.Show.Show a_628 => GHC.Show.Show (ObjectCreationExpression a_628)\n\ninstance AST.Unmarshal.Unmarshal ObjectCreationExpression\n\ninstance Data.Foldable.Foldable ObjectCreationExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ObjectCreationExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ObjectCreationExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata OptionalType a = OptionalType\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((PrimitiveType GHC.Generics.:+: TypeName) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_629.\n      AST.Traversable1.Class.Traversable1 a_629\n    )\n\ninstance AST.Unmarshal.SymbolMatching OptionalType where\n  matchedSymbols _ = [198]\n  showFailure _ node_630 =\n    \"expected \"\n      GHC.Base.<> ( \"optional_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_630 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_630) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_631 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_632 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_633 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_634 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_631\n        c1_632 = TreeSitter.Node.nodeStartPoint node_630\n      TreeSitter.Node.TSPoint\n        r2_633\n        c2_634 = TreeSitter.Node.nodeEndPoint node_630\n\nderiving instance GHC.Classes.Eq a_635 => GHC.Classes.Eq (OptionalType a_635)\n\nderiving instance GHC.Classes.Ord a_636 => GHC.Classes.Ord (OptionalType a_636)\n\nderiving instance GHC.Show.Show a_637 => GHC.Show.Show (OptionalType a_637)\n\ninstance AST.Unmarshal.Unmarshal OptionalType\n\ninstance Data.Foldable.Foldable OptionalType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor OptionalType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable OptionalType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Pair a = Pair\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: ListLiteral) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_638.\n      AST.Traversable1.Class.Traversable1 a_638\n    )\n\ninstance AST.Unmarshal.SymbolMatching Pair where\n  matchedSymbols _ = [222]\n  showFailure _ node_639 =\n    \"expected \"\n      GHC.Base.<> ( \"pair\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_639 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_639) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_640 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_641 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_642 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_643 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_640\n        c1_641 = TreeSitter.Node.nodeStartPoint node_639\n      TreeSitter.Node.TSPoint\n        r2_642\n        c2_643 = TreeSitter.Node.nodeEndPoint node_639\n\nderiving instance GHC.Classes.Eq a_644 => GHC.Classes.Eq (Pair a_644)\n\nderiving instance GHC.Classes.Ord a_645 => GHC.Classes.Ord (Pair a_645)\n\nderiving instance GHC.Show.Show a_646 => GHC.Show.Show (Pair a_646)\n\ninstance AST.Unmarshal.Unmarshal Pair\n\ninstance Data.Foldable.Foldable Pair where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Pair where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Pair where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ParenthesizedExpression a = ParenthesizedExpression\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_647.\n      AST.Traversable1.Class.Traversable1 a_647\n    )\n\ninstance AST.Unmarshal.SymbolMatching ParenthesizedExpression where\n  matchedSymbols _ = [242]\n  showFailure _ node_648 =\n    \"expected \"\n      GHC.Base.<> ( \"parenthesized_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_648 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_648) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_649 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_650 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_651 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_652 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_649\n        c1_650 = TreeSitter.Node.nodeStartPoint node_648\n      TreeSitter.Node.TSPoint\n        r2_651\n        c2_652 = TreeSitter.Node.nodeEndPoint node_648\n\nderiving instance GHC.Classes.Eq a_653 => GHC.Classes.Eq (ParenthesizedExpression a_653)\n\nderiving instance GHC.Classes.Ord a_654 => GHC.Classes.Ord (ParenthesizedExpression a_654)\n\nderiving instance GHC.Show.Show a_655 => GHC.Show.Show (ParenthesizedExpression a_655)\n\ninstance AST.Unmarshal.Unmarshal ParenthesizedExpression\n\ninstance Data.Foldable.Foldable ParenthesizedExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ParenthesizedExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ParenthesizedExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PrimitiveType a = PrimitiveType {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_656.\n      AST.Traversable1.Class.Traversable1 a_656\n    )\n\ninstance AST.Unmarshal.SymbolMatching PrimitiveType where\n  matchedSymbols _ = [199]\n  showFailure _ node_657 =\n    \"expected \"\n      GHC.Base.<> ( \"primitive_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_657 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_657) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_658 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_659 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_660 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_661 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_658\n        c1_659 = TreeSitter.Node.nodeStartPoint node_657\n      TreeSitter.Node.TSPoint\n        r2_660\n        c2_661 = TreeSitter.Node.nodeEndPoint node_657\n\nderiving instance GHC.Classes.Eq a_662 => GHC.Classes.Eq (PrimitiveType a_662)\n\nderiving instance GHC.Classes.Ord a_663 => GHC.Classes.Ord (PrimitiveType a_663)\n\nderiving instance GHC.Show.Show a_664 => GHC.Show.Show (PrimitiveType a_664)\n\ninstance AST.Unmarshal.Unmarshal PrimitiveType\n\ninstance Data.Foldable.Foldable PrimitiveType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PrimitiveType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PrimitiveType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PrintIntrinsic a = PrintIntrinsic\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_665.\n      AST.Traversable1.Class.Traversable1 a_665\n    )\n\ninstance AST.Unmarshal.SymbolMatching PrintIntrinsic where\n  matchedSymbols _ = [244]\n  showFailure _ node_666 =\n    \"expected \"\n      GHC.Base.<> ( \"print_intrinsic\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_666 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_666) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_667 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_668 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_669 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_670 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_667\n        c1_668 = TreeSitter.Node.nodeStartPoint node_666\n      TreeSitter.Node.TSPoint\n        r2_669\n        c2_670 = TreeSitter.Node.nodeEndPoint node_666\n\nderiving instance GHC.Classes.Eq a_671 => GHC.Classes.Eq (PrintIntrinsic a_671)\n\nderiving instance GHC.Classes.Ord a_672 => GHC.Classes.Ord (PrintIntrinsic a_672)\n\nderiving instance GHC.Show.Show a_673 => GHC.Show.Show (PrintIntrinsic a_673)\n\ninstance AST.Unmarshal.Unmarshal PrintIntrinsic\n\ninstance Data.Foldable.Foldable PrintIntrinsic where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PrintIntrinsic where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PrintIntrinsic where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Program a = Program\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: PhpTag GHC.Generics.:+: Text) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_674.\n      AST.Traversable1.Class.Traversable1 a_674\n    )\n\ninstance AST.Unmarshal.SymbolMatching Program where\n  matchedSymbols _ = [154]\n  showFailure _ node_675 =\n    \"expected \"\n      GHC.Base.<> ( \"program\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_675 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_675) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_676 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_677 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_678 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_679 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_676\n        c1_677 = TreeSitter.Node.nodeStartPoint node_675\n      TreeSitter.Node.TSPoint\n        r2_678\n        c2_679 = TreeSitter.Node.nodeEndPoint node_675\n\nderiving instance GHC.Classes.Eq a_680 => GHC.Classes.Eq (Program a_680)\n\nderiving instance GHC.Classes.Ord a_681 => GHC.Classes.Ord (Program a_681)\n\nderiving instance GHC.Show.Show a_682 => GHC.Show.Show (Program a_682)\n\ninstance AST.Unmarshal.Unmarshal Program\n\ninstance Data.Foldable.Foldable Program where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Program where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Program where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PropertyDeclaration a = PropertyDeclaration\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ClassModifier GHC.Generics.:+: PropertyElement GHC.Generics.:+: StaticModifier GHC.Generics.:+: VarModifier GHC.Generics.:+: VisibilityModifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_683.\n      AST.Traversable1.Class.Traversable1 a_683\n    )\n\ninstance AST.Unmarshal.SymbolMatching PropertyDeclaration where\n  matchedSymbols _ = [181]\n  showFailure _ node_684 =\n    \"expected \"\n      GHC.Base.<> ( \"property_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_684 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_684) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_685 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_686 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_687 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_688 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_685\n        c1_686 = TreeSitter.Node.nodeStartPoint node_684\n      TreeSitter.Node.TSPoint\n        r2_687\n        c2_688 = TreeSitter.Node.nodeEndPoint node_684\n\nderiving instance GHC.Classes.Eq a_689 => GHC.Classes.Eq (PropertyDeclaration a_689)\n\nderiving instance GHC.Classes.Ord a_690 => GHC.Classes.Ord (PropertyDeclaration a_690)\n\nderiving instance GHC.Show.Show a_691 => GHC.Show.Show (PropertyDeclaration a_691)\n\ninstance AST.Unmarshal.Unmarshal PropertyDeclaration\n\ninstance Data.Foldable.Foldable PropertyDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PropertyDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PropertyDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PropertyElement a = PropertyElement\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((PropertyInitializer GHC.Generics.:+: VariableName) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_692.\n      AST.Traversable1.Class.Traversable1 a_692\n    )\n\ninstance AST.Unmarshal.SymbolMatching PropertyElement where\n  matchedSymbols _ = [183]\n  showFailure _ node_693 =\n    \"expected \"\n      GHC.Base.<> ( \"property_element\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_693 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_693) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_694 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_695 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_696 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_697 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_694\n        c1_695 = TreeSitter.Node.nodeStartPoint node_693\n      TreeSitter.Node.TSPoint\n        r2_696\n        c2_697 = TreeSitter.Node.nodeEndPoint node_693\n\nderiving instance GHC.Classes.Eq a_698 => GHC.Classes.Eq (PropertyElement a_698)\n\nderiving instance GHC.Classes.Ord a_699 => GHC.Classes.Ord (PropertyElement a_699)\n\nderiving instance GHC.Show.Show a_700 => GHC.Show.Show (PropertyElement a_700)\n\ninstance AST.Unmarshal.Unmarshal PropertyElement\n\ninstance Data.Foldable.Foldable PropertyElement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PropertyElement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PropertyElement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PropertyInitializer a = PropertyInitializer\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_701.\n      AST.Traversable1.Class.Traversable1 a_701\n    )\n\ninstance AST.Unmarshal.SymbolMatching PropertyInitializer where\n  matchedSymbols _ = [184]\n  showFailure _ node_702 =\n    \"expected \"\n      GHC.Base.<> ( \"property_initializer\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_702 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_702) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_703 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_704 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_705 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_706 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_703\n        c1_704 = TreeSitter.Node.nodeStartPoint node_702\n      TreeSitter.Node.TSPoint\n        r2_705\n        c2_706 = TreeSitter.Node.nodeEndPoint node_702\n\nderiving instance GHC.Classes.Eq a_707 => GHC.Classes.Eq (PropertyInitializer a_707)\n\nderiving instance GHC.Classes.Ord a_708 => GHC.Classes.Ord (PropertyInitializer a_708)\n\nderiving instance GHC.Show.Show a_709 => GHC.Show.Show (PropertyInitializer a_709)\n\ninstance AST.Unmarshal.Unmarshal PropertyInitializer\n\ninstance Data.Foldable.Foldable PropertyInitializer where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PropertyInitializer where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PropertyInitializer where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata QualifiedName a = QualifiedName\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Name GHC.Generics.:+: NamespaceNameAsPrefix) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_710.\n      AST.Traversable1.Class.Traversable1 a_710\n    )\n\ninstance AST.Unmarshal.SymbolMatching QualifiedName where\n  matchedSymbols _ = [165]\n  showFailure _ node_711 =\n    \"expected \"\n      GHC.Base.<> ( \"qualified_name\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_711 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_711) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_712 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_713 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_714 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_715 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_712\n        c1_713 = TreeSitter.Node.nodeStartPoint node_711\n      TreeSitter.Node.TSPoint\n        r2_714\n        c2_715 = TreeSitter.Node.nodeEndPoint node_711\n\nderiving instance GHC.Classes.Eq a_716 => GHC.Classes.Eq (QualifiedName a_716)\n\nderiving instance GHC.Classes.Ord a_717 => GHC.Classes.Ord (QualifiedName a_717)\n\nderiving instance GHC.Show.Show a_718 => GHC.Show.Show (QualifiedName a_718)\n\ninstance AST.Unmarshal.Unmarshal QualifiedName\n\ninstance Data.Foldable.Foldable QualifiedName where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor QualifiedName where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable QualifiedName where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata RelativeScope a = RelativeScope {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_719.\n      AST.Traversable1.Class.Traversable1 a_719\n    )\n\ninstance AST.Unmarshal.SymbolMatching RelativeScope where\n  matchedSymbols _ = [260]\n  showFailure _ node_720 =\n    \"expected \"\n      GHC.Base.<> ( \"relative_scope\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_720 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_720) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_721 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_722 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_723 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_724 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_721\n        c1_722 = TreeSitter.Node.nodeStartPoint node_720\n      TreeSitter.Node.TSPoint\n        r2_723\n        c2_724 = TreeSitter.Node.nodeEndPoint node_720\n\nderiving instance GHC.Classes.Eq a_725 => GHC.Classes.Eq (RelativeScope a_725)\n\nderiving instance GHC.Classes.Ord a_726 => GHC.Classes.Ord (RelativeScope a_726)\n\nderiving instance GHC.Show.Show a_727 => GHC.Show.Show (RelativeScope a_727)\n\ninstance AST.Unmarshal.Unmarshal RelativeScope\n\ninstance Data.Foldable.Foldable RelativeScope where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RelativeScope where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RelativeScope where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata RequireExpression a = RequireExpression\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_728.\n      AST.Traversable1.Class.Traversable1 a_728\n    )\n\ninstance AST.Unmarshal.SymbolMatching RequireExpression where\n  matchedSymbols _ = [275]\n  showFailure _ node_729 =\n    \"expected \"\n      GHC.Base.<> ( \"require_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_729 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_729) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_730 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_731 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_732 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_733 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_730\n        c1_731 = TreeSitter.Node.nodeStartPoint node_729\n      TreeSitter.Node.TSPoint\n        r2_732\n        c2_733 = TreeSitter.Node.nodeEndPoint node_729\n\nderiving instance GHC.Classes.Eq a_734 => GHC.Classes.Eq (RequireExpression a_734)\n\nderiving instance GHC.Classes.Ord a_735 => GHC.Classes.Ord (RequireExpression a_735)\n\nderiving instance GHC.Show.Show a_736 => GHC.Show.Show (RequireExpression a_736)\n\ninstance AST.Unmarshal.Unmarshal RequireExpression\n\ninstance Data.Foldable.Foldable RequireExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RequireExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RequireExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata RequireOnceExpression a = RequireOnceExpression\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_737.\n      AST.Traversable1.Class.Traversable1 a_737\n    )\n\ninstance AST.Unmarshal.SymbolMatching RequireOnceExpression where\n  matchedSymbols _ = [276]\n  showFailure _ node_738 =\n    \"expected \"\n      GHC.Base.<> ( \"require_once_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_738 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_738) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_739 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_740 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_741 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_742 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_739\n        c1_740 = TreeSitter.Node.nodeStartPoint node_738\n      TreeSitter.Node.TSPoint\n        r2_741\n        c2_742 = TreeSitter.Node.nodeEndPoint node_738\n\nderiving instance GHC.Classes.Eq a_743 => GHC.Classes.Eq (RequireOnceExpression a_743)\n\nderiving instance GHC.Classes.Ord a_744 => GHC.Classes.Ord (RequireOnceExpression a_744)\n\nderiving instance GHC.Show.Show a_745 => GHC.Show.Show (RequireOnceExpression a_745)\n\ninstance AST.Unmarshal.Unmarshal RequireOnceExpression\n\ninstance Data.Foldable.Foldable RequireOnceExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RequireOnceExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RequireOnceExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ReturnStatement a = ReturnStatement\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_746.\n      AST.Traversable1.Class.Traversable1 a_746\n    )\n\ninstance AST.Unmarshal.SymbolMatching ReturnStatement where\n  matchedSymbols _ = [214]\n  showFailure _ node_747 =\n    \"expected \"\n      GHC.Base.<> ( \"return_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_747 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_747) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_748 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_749 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_750 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_751 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_748\n        c1_749 = TreeSitter.Node.nodeStartPoint node_747\n      TreeSitter.Node.TSPoint\n        r2_750\n        c2_751 = TreeSitter.Node.nodeEndPoint node_747\n\nderiving instance GHC.Classes.Eq a_752 => GHC.Classes.Eq (ReturnStatement a_752)\n\nderiving instance GHC.Classes.Ord a_753 => GHC.Classes.Ord (ReturnStatement a_753)\n\nderiving instance GHC.Show.Show a_754 => GHC.Show.Show (ReturnStatement a_754)\n\ninstance AST.Unmarshal.Unmarshal ReturnStatement\n\ninstance Data.Foldable.Foldable ReturnStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ReturnStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ReturnStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ScopedCallExpression a = ScopedCallExpression\n  { ann :: a,\n    arguments :: (AST.Parse.Err (Arguments a)),\n    name :: (AST.Parse.Err ((Expression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: Name GHC.Generics.:+: VariableName) a)),\n    scope :: (AST.Parse.Err ((ArrayCreationExpression GHC.Generics.:+: CastExpression GHC.Generics.:+: ClassConstantAccessExpression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: FunctionCallExpression GHC.Generics.:+: Heredoc GHC.Generics.:+: MemberAccessExpression GHC.Generics.:+: MemberCallExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: QualifiedName GHC.Generics.:+: RelativeScope GHC.Generics.:+: ScopedCallExpression GHC.Generics.:+: ScopedPropertyAccessExpression GHC.Generics.:+: String GHC.Generics.:+: SubscriptExpression GHC.Generics.:+: VariableName) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_755.\n      AST.Traversable1.Class.Traversable1 a_755\n    )\n\ninstance AST.Unmarshal.SymbolMatching ScopedCallExpression where\n  matchedSymbols _ = [258]\n  showFailure _ node_756 =\n    \"expected \"\n      GHC.Base.<> ( \"scoped_call_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_756 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_756) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_757 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_758 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_759 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_760 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_757\n        c1_758 = TreeSitter.Node.nodeStartPoint node_756\n      TreeSitter.Node.TSPoint\n        r2_759\n        c2_760 = TreeSitter.Node.nodeEndPoint node_756\n\nderiving instance GHC.Classes.Eq a_761 => GHC.Classes.Eq (ScopedCallExpression a_761)\n\nderiving instance GHC.Classes.Ord a_762 => GHC.Classes.Ord (ScopedCallExpression a_762)\n\nderiving instance GHC.Show.Show a_763 => GHC.Show.Show (ScopedCallExpression a_763)\n\ninstance AST.Unmarshal.Unmarshal ScopedCallExpression\n\ninstance Data.Foldable.Foldable ScopedCallExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ScopedCallExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ScopedCallExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ScopedPropertyAccessExpression a = ScopedPropertyAccessExpression\n  { ann :: a,\n    name :: (AST.Parse.Err ((DynamicVariableName GHC.Generics.:+: VariableName) a)),\n    scope :: (AST.Parse.Err ((ArrayCreationExpression GHC.Generics.:+: CastExpression GHC.Generics.:+: ClassConstantAccessExpression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: FunctionCallExpression GHC.Generics.:+: Heredoc GHC.Generics.:+: MemberAccessExpression GHC.Generics.:+: MemberCallExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: QualifiedName GHC.Generics.:+: RelativeScope GHC.Generics.:+: ScopedCallExpression GHC.Generics.:+: ScopedPropertyAccessExpression GHC.Generics.:+: String GHC.Generics.:+: SubscriptExpression GHC.Generics.:+: VariableName) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_764.\n      AST.Traversable1.Class.Traversable1 a_764\n    )\n\ninstance AST.Unmarshal.SymbolMatching ScopedPropertyAccessExpression where\n  matchedSymbols _ = [255]\n  showFailure _ node_765 =\n    \"expected \"\n      GHC.Base.<> ( \"scoped_property_access_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_765 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_765) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_766 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_767 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_768 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_769 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_766\n        c1_767 = TreeSitter.Node.nodeStartPoint node_765\n      TreeSitter.Node.TSPoint\n        r2_768\n        c2_769 = TreeSitter.Node.nodeEndPoint node_765\n\nderiving instance GHC.Classes.Eq a_770 => GHC.Classes.Eq (ScopedPropertyAccessExpression a_770)\n\nderiving instance GHC.Classes.Ord a_771 => GHC.Classes.Ord (ScopedPropertyAccessExpression a_771)\n\nderiving instance GHC.Show.Show a_772 => GHC.Show.Show (ScopedPropertyAccessExpression a_772)\n\ninstance AST.Unmarshal.Unmarshal ScopedPropertyAccessExpression\n\ninstance Data.Foldable.Foldable ScopedPropertyAccessExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ScopedPropertyAccessExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ScopedPropertyAccessExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SequenceExpression a = SequenceExpression\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_773.\n      AST.Traversable1.Class.Traversable1 a_773\n    )\n\ninstance AST.Unmarshal.SymbolMatching SequenceExpression where\n  matchedSymbols _ = [220]\n  showFailure _ node_774 =\n    \"expected \"\n      GHC.Base.<> ( \"sequence_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_774 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_774) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_775 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_776 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_777 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_778 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_775\n        c1_776 = TreeSitter.Node.nodeStartPoint node_774\n      TreeSitter.Node.TSPoint\n        r2_777\n        c2_778 = TreeSitter.Node.nodeEndPoint node_774\n\nderiving instance GHC.Classes.Eq a_779 => GHC.Classes.Eq (SequenceExpression a_779)\n\nderiving instance GHC.Classes.Ord a_780 => GHC.Classes.Ord (SequenceExpression a_780)\n\nderiving instance GHC.Show.Show a_781 => GHC.Show.Show (SequenceExpression a_781)\n\ninstance AST.Unmarshal.Unmarshal SequenceExpression\n\ninstance Data.Foldable.Foldable SequenceExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SequenceExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SequenceExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SimpleParameter a = SimpleParameter\n  { ann :: a,\n    defaultValue :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    name :: (AST.Parse.Err (VariableName a)),\n    type' :: (GHC.Maybe.Maybe (AST.Parse.Err (Type a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_782.\n      AST.Traversable1.Class.Traversable1 a_782\n    )\n\ninstance AST.Unmarshal.SymbolMatching SimpleParameter where\n  matchedSymbols _ = [195]\n  showFailure _ node_783 =\n    \"expected \"\n      GHC.Base.<> ( \"simple_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_783 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_783) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_784 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_785 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_786 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_787 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_784\n        c1_785 = TreeSitter.Node.nodeStartPoint node_783\n      TreeSitter.Node.TSPoint\n        r2_786\n        c2_787 = TreeSitter.Node.nodeEndPoint node_783\n\nderiving instance GHC.Classes.Eq a_788 => GHC.Classes.Eq (SimpleParameter a_788)\n\nderiving instance GHC.Classes.Ord a_789 => GHC.Classes.Ord (SimpleParameter a_789)\n\nderiving instance GHC.Show.Show a_790 => GHC.Show.Show (SimpleParameter a_790)\n\ninstance AST.Unmarshal.Unmarshal SimpleParameter\n\ninstance Data.Foldable.Foldable SimpleParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SimpleParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SimpleParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata StaticModifier a = StaticModifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_791.\n      AST.Traversable1.Class.Traversable1 a_791\n    )\n\ninstance AST.Unmarshal.SymbolMatching StaticModifier where\n  matchedSymbols _ = [186]\n  showFailure _ node_792 =\n    \"expected \"\n      GHC.Base.<> ( \"static_modifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_792 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_792) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_793 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_794 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_795 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_796 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_793\n        c1_794 = TreeSitter.Node.nodeStartPoint node_792\n      TreeSitter.Node.TSPoint\n        r2_795\n        c2_796 = TreeSitter.Node.nodeEndPoint node_792\n\nderiving instance GHC.Classes.Eq a_797 => GHC.Classes.Eq (StaticModifier a_797)\n\nderiving instance GHC.Classes.Ord a_798 => GHC.Classes.Ord (StaticModifier a_798)\n\nderiving instance GHC.Show.Show a_799 => GHC.Show.Show (StaticModifier a_799)\n\ninstance AST.Unmarshal.Unmarshal StaticModifier\n\ninstance Data.Foldable.Foldable StaticModifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor StaticModifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable StaticModifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata StaticVariableDeclaration a = StaticVariableDeclaration\n  { ann :: a,\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    name :: (AST.Parse.Err (VariableName a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_800.\n      AST.Traversable1.Class.Traversable1 a_800\n    )\n\ninstance AST.Unmarshal.SymbolMatching StaticVariableDeclaration where\n  matchedSymbols _ = [159]\n  showFailure _ node_801 =\n    \"expected \"\n      GHC.Base.<> ( \"static_variable_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_801 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_801) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_802 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_803 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_804 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_805 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_802\n        c1_803 = TreeSitter.Node.nodeStartPoint node_801\n      TreeSitter.Node.TSPoint\n        r2_804\n        c2_805 = TreeSitter.Node.nodeEndPoint node_801\n\nderiving instance GHC.Classes.Eq a_806 => GHC.Classes.Eq (StaticVariableDeclaration a_806)\n\nderiving instance GHC.Classes.Ord a_807 => GHC.Classes.Ord (StaticVariableDeclaration a_807)\n\nderiving instance GHC.Show.Show a_808 => GHC.Show.Show (StaticVariableDeclaration a_808)\n\ninstance AST.Unmarshal.Unmarshal StaticVariableDeclaration\n\ninstance Data.Foldable.Foldable StaticVariableDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor StaticVariableDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable StaticVariableDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SubscriptExpression a = SubscriptExpression\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: ArrayCreationExpression GHC.Generics.:+: ClassConstantAccessExpression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: FunctionCallExpression GHC.Generics.:+: Heredoc GHC.Generics.:+: MemberAccessExpression GHC.Generics.:+: MemberCallExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: ScopedCallExpression GHC.Generics.:+: ScopedPropertyAccessExpression GHC.Generics.:+: String GHC.Generics.:+: SubscriptExpression GHC.Generics.:+: VariableName) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_809.\n      AST.Traversable1.Class.Traversable1 a_809\n    )\n\ninstance AST.Unmarshal.SymbolMatching SubscriptExpression where\n  matchedSymbols _ = [264]\n  showFailure _ node_810 =\n    \"expected \"\n      GHC.Base.<> ( \"subscript_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_810 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_810) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_811 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_812 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_813 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_814 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_811\n        c1_812 = TreeSitter.Node.nodeStartPoint node_810\n      TreeSitter.Node.TSPoint\n        r2_813\n        c2_814 = TreeSitter.Node.nodeEndPoint node_810\n\nderiving instance GHC.Classes.Eq a_815 => GHC.Classes.Eq (SubscriptExpression a_815)\n\nderiving instance GHC.Classes.Ord a_816 => GHC.Classes.Ord (SubscriptExpression a_816)\n\nderiving instance GHC.Show.Show a_817 => GHC.Show.Show (SubscriptExpression a_817)\n\ninstance AST.Unmarshal.Unmarshal SubscriptExpression\n\ninstance Data.Foldable.Foldable SubscriptExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SubscriptExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SubscriptExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SwitchBlock a = SwitchBlock\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((CaseStatement GHC.Generics.:+: DefaultStatement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_818.\n      AST.Traversable1.Class.Traversable1 a_818\n    )\n\ninstance AST.Unmarshal.SymbolMatching SwitchBlock where\n  matchedSymbols _ = [230]\n  showFailure _ node_819 =\n    \"expected \"\n      GHC.Base.<> ( \"switch_block\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_819 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_819) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_820 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_821 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_822 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_823 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_820\n        c1_821 = TreeSitter.Node.nodeStartPoint node_819\n      TreeSitter.Node.TSPoint\n        r2_822\n        c2_823 = TreeSitter.Node.nodeEndPoint node_819\n\nderiving instance GHC.Classes.Eq a_824 => GHC.Classes.Eq (SwitchBlock a_824)\n\nderiving instance GHC.Classes.Ord a_825 => GHC.Classes.Ord (SwitchBlock a_825)\n\nderiving instance GHC.Show.Show a_826 => GHC.Show.Show (SwitchBlock a_826)\n\ninstance AST.Unmarshal.Unmarshal SwitchBlock\n\ninstance Data.Foldable.Foldable SwitchBlock where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SwitchBlock where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SwitchBlock where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SwitchStatement a = SwitchStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (SwitchBlock a)),\n    condition :: (AST.Parse.Err (ParenthesizedExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_827.\n      AST.Traversable1.Class.Traversable1 a_827\n    )\n\ninstance AST.Unmarshal.SymbolMatching SwitchStatement where\n  matchedSymbols _ = [229]\n  showFailure _ node_828 =\n    \"expected \"\n      GHC.Base.<> ( \"switch_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_828 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_828) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_829 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_830 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_831 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_832 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_829\n        c1_830 = TreeSitter.Node.nodeStartPoint node_828\n      TreeSitter.Node.TSPoint\n        r2_831\n        c2_832 = TreeSitter.Node.nodeEndPoint node_828\n\nderiving instance GHC.Classes.Eq a_833 => GHC.Classes.Eq (SwitchStatement a_833)\n\nderiving instance GHC.Classes.Ord a_834 => GHC.Classes.Ord (SwitchStatement a_834)\n\nderiving instance GHC.Show.Show a_835 => GHC.Show.Show (SwitchStatement a_835)\n\ninstance AST.Unmarshal.Unmarshal SwitchStatement\n\ninstance Data.Foldable.Foldable SwitchStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SwitchStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SwitchStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Text a = Text {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_836.\n      AST.Traversable1.Class.Traversable1 a_836\n    )\n\ninstance AST.Unmarshal.SymbolMatching Text where\n  matchedSymbols _ = [156]\n  showFailure _ node_837 =\n    \"expected \"\n      GHC.Base.<> ( \"text\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_837 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_837) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_838 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_839 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_840 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_841 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_838\n        c1_839 = TreeSitter.Node.nodeStartPoint node_837\n      TreeSitter.Node.TSPoint\n        r2_840\n        c2_841 = TreeSitter.Node.nodeEndPoint node_837\n\nderiving instance GHC.Classes.Eq a_842 => GHC.Classes.Eq (Text a_842)\n\nderiving instance GHC.Classes.Ord a_843 => GHC.Classes.Ord (Text a_843)\n\nderiving instance GHC.Show.Show a_844 => GHC.Show.Show (Text a_844)\n\ninstance AST.Unmarshal.Unmarshal Text\n\ninstance Data.Foldable.Foldable Text where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Text where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Text where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ThrowStatement a = ThrowStatement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_845.\n      AST.Traversable1.Class.Traversable1 a_845\n    )\n\ninstance AST.Unmarshal.SymbolMatching ThrowStatement where\n  matchedSymbols _ = [215]\n  showFailure _ node_846 =\n    \"expected \"\n      GHC.Base.<> ( \"throw_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_846 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_846) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_847 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_848 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_849 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_850 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_847\n        c1_848 = TreeSitter.Node.nodeStartPoint node_846\n      TreeSitter.Node.TSPoint\n        r2_849\n        c2_850 = TreeSitter.Node.nodeEndPoint node_846\n\nderiving instance GHC.Classes.Eq a_851 => GHC.Classes.Eq (ThrowStatement a_851)\n\nderiving instance GHC.Classes.Ord a_852 => GHC.Classes.Ord (ThrowStatement a_852)\n\nderiving instance GHC.Show.Show a_853 => GHC.Show.Show (ThrowStatement a_853)\n\ninstance AST.Unmarshal.Unmarshal ThrowStatement\n\ninstance Data.Foldable.Foldable ThrowStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ThrowStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ThrowStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TraitDeclaration a = TraitDeclaration\n  { ann :: a,\n    body :: (AST.Parse.Err (DeclarationList a)),\n    name :: (AST.Parse.Err (Name a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_854.\n      AST.Traversable1.Class.Traversable1 a_854\n    )\n\ninstance AST.Unmarshal.SymbolMatching TraitDeclaration where\n  matchedSymbols _ = [171]\n  showFailure _ node_855 =\n    \"expected \"\n      GHC.Base.<> ( \"trait_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_855 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_855) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_856 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_857 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_858 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_859 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_856\n        c1_857 = TreeSitter.Node.nodeStartPoint node_855\n      TreeSitter.Node.TSPoint\n        r2_858\n        c2_859 = TreeSitter.Node.nodeEndPoint node_855\n\nderiving instance GHC.Classes.Eq a_860 => GHC.Classes.Eq (TraitDeclaration a_860)\n\nderiving instance GHC.Classes.Ord a_861 => GHC.Classes.Ord (TraitDeclaration a_861)\n\nderiving instance GHC.Show.Show a_862 => GHC.Show.Show (TraitDeclaration a_862)\n\ninstance AST.Unmarshal.Unmarshal TraitDeclaration\n\ninstance Data.Foldable.Foldable TraitDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TraitDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TraitDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TryStatement a = TryStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (CompoundStatement a)),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((CatchClause GHC.Generics.:+: FinallyClause) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_863.\n      AST.Traversable1.Class.Traversable1 a_863\n    )\n\ninstance AST.Unmarshal.SymbolMatching TryStatement where\n  matchedSymbols _ = [207]\n  showFailure _ node_864 =\n    \"expected \"\n      GHC.Base.<> ( \"try_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_864 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_864) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_865 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_866 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_867 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_868 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_865\n        c1_866 = TreeSitter.Node.nodeStartPoint node_864\n      TreeSitter.Node.TSPoint\n        r2_867\n        c2_868 = TreeSitter.Node.nodeEndPoint node_864\n\nderiving instance GHC.Classes.Eq a_869 => GHC.Classes.Eq (TryStatement a_869)\n\nderiving instance GHC.Classes.Ord a_870 => GHC.Classes.Ord (TryStatement a_870)\n\nderiving instance GHC.Show.Show a_871 => GHC.Show.Show (TryStatement a_871)\n\ninstance AST.Unmarshal.Unmarshal TryStatement\n\ninstance Data.Foldable.Foldable TryStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TryStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TryStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeName a = TypeName\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Name GHC.Generics.:+: NamespaceNameAsPrefix) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_872.\n      AST.Traversable1.Class.Traversable1 a_872\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeName where\n  matchedSymbols _ = [301]\n  showFailure _ node_873 =\n    \"expected \"\n      GHC.Base.<> ( \"type_name\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_873 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_873) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_874 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_875 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_876 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_877 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_874\n        c1_875 = TreeSitter.Node.nodeStartPoint node_873\n      TreeSitter.Node.TSPoint\n        r2_876\n        c2_877 = TreeSitter.Node.nodeEndPoint node_873\n\nderiving instance GHC.Classes.Eq a_878 => GHC.Classes.Eq (TypeName a_878)\n\nderiving instance GHC.Classes.Ord a_879 => GHC.Classes.Ord (TypeName a_879)\n\nderiving instance GHC.Show.Show a_880 => GHC.Show.Show (TypeName a_880)\n\ninstance AST.Unmarshal.Unmarshal TypeName\n\ninstance Data.Foldable.Foldable TypeName where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeName where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeName where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UnaryOpExpression a = UnaryOpExpression\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_881.\n      AST.Traversable1.Class.Traversable1 a_881\n    )\n\ninstance AST.Unmarshal.SymbolMatching UnaryOpExpression where\n  matchedSymbols _ = [238]\n  showFailure _ node_882 =\n    \"expected \"\n      GHC.Base.<> ( \"unary_op_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_882 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_882) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_883 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_884 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_885 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_886 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_883\n        c1_884 = TreeSitter.Node.nodeStartPoint node_882\n      TreeSitter.Node.TSPoint\n        r2_885\n        c2_886 = TreeSitter.Node.nodeEndPoint node_882\n\nderiving instance GHC.Classes.Eq a_887 => GHC.Classes.Eq (UnaryOpExpression a_887)\n\nderiving instance GHC.Classes.Ord a_888 => GHC.Classes.Ord (UnaryOpExpression a_888)\n\nderiving instance GHC.Show.Show a_889 => GHC.Show.Show (UnaryOpExpression a_889)\n\ninstance AST.Unmarshal.Unmarshal UnaryOpExpression\n\ninstance Data.Foldable.Foldable UnaryOpExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UnaryOpExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UnaryOpExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UnsetStatement a = UnsetStatement\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((CastExpression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: FunctionCallExpression GHC.Generics.:+: MemberAccessExpression GHC.Generics.:+: MemberCallExpression GHC.Generics.:+: ScopedCallExpression GHC.Generics.:+: ScopedPropertyAccessExpression GHC.Generics.:+: SubscriptExpression GHC.Generics.:+: VariableName) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_890.\n      AST.Traversable1.Class.Traversable1 a_890\n    )\n\ninstance AST.Unmarshal.SymbolMatching UnsetStatement where\n  matchedSymbols _ = [204]\n  showFailure _ node_891 =\n    \"expected \"\n      GHC.Base.<> ( \"unset_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_891 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_891) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_892 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_893 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_894 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_895 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_892\n        c1_893 = TreeSitter.Node.nodeStartPoint node_891\n      TreeSitter.Node.TSPoint\n        r2_894\n        c2_895 = TreeSitter.Node.nodeEndPoint node_891\n\nderiving instance GHC.Classes.Eq a_896 => GHC.Classes.Eq (UnsetStatement a_896)\n\nderiving instance GHC.Classes.Ord a_897 => GHC.Classes.Ord (UnsetStatement a_897)\n\nderiving instance GHC.Show.Show a_898 => GHC.Show.Show (UnsetStatement a_898)\n\ninstance AST.Unmarshal.Unmarshal UnsetStatement\n\ninstance Data.Foldable.Foldable UnsetStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UnsetStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UnsetStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UpdateExpression a = UpdateExpression\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((CastExpression GHC.Generics.:+: DynamicVariableName GHC.Generics.:+: FunctionCallExpression GHC.Generics.:+: MemberAccessExpression GHC.Generics.:+: MemberCallExpression GHC.Generics.:+: ScopedCallExpression GHC.Generics.:+: ScopedPropertyAccessExpression GHC.Generics.:+: SubscriptExpression GHC.Generics.:+: VariableName) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_899.\n      AST.Traversable1.Class.Traversable1 a_899\n    )\n\ninstance AST.Unmarshal.SymbolMatching UpdateExpression where\n  matchedSymbols _ = [248]\n  showFailure _ node_900 =\n    \"expected \"\n      GHC.Base.<> ( \"update_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_900 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_900) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_901 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_902 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_903 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_904 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_901\n        c1_902 = TreeSitter.Node.nodeStartPoint node_900\n      TreeSitter.Node.TSPoint\n        r2_903\n        c2_904 = TreeSitter.Node.nodeEndPoint node_900\n\nderiving instance GHC.Classes.Eq a_905 => GHC.Classes.Eq (UpdateExpression a_905)\n\nderiving instance GHC.Classes.Ord a_906 => GHC.Classes.Ord (UpdateExpression a_906)\n\nderiving instance GHC.Show.Show a_907 => GHC.Show.Show (UpdateExpression a_907)\n\ninstance AST.Unmarshal.Unmarshal UpdateExpression\n\ninstance Data.Foldable.Foldable UpdateExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UpdateExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UpdateExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UseAsClause a = UseAsClause\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ClassConstantAccessExpression GHC.Generics.:+: Name GHC.Generics.:+: VisibilityModifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_908.\n      AST.Traversable1.Class.Traversable1 a_908\n    )\n\ninstance AST.Unmarshal.SymbolMatching UseAsClause where\n  matchedSymbols _ = [190]\n  showFailure _ node_909 =\n    \"expected \"\n      GHC.Base.<> ( \"use_as_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_909 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_909) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_910 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_911 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_912 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_913 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_910\n        c1_911 = TreeSitter.Node.nodeStartPoint node_909\n      TreeSitter.Node.TSPoint\n        r2_912\n        c2_913 = TreeSitter.Node.nodeEndPoint node_909\n\nderiving instance GHC.Classes.Eq a_914 => GHC.Classes.Eq (UseAsClause a_914)\n\nderiving instance GHC.Classes.Ord a_915 => GHC.Classes.Ord (UseAsClause a_915)\n\nderiving instance GHC.Show.Show a_916 => GHC.Show.Show (UseAsClause a_916)\n\ninstance AST.Unmarshal.Unmarshal UseAsClause\n\ninstance Data.Foldable.Foldable UseAsClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UseAsClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UseAsClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UseDeclaration a = UseDeclaration\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((QualifiedName GHC.Generics.:+: UseList) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_917.\n      AST.Traversable1.Class.Traversable1 a_917\n    )\n\ninstance AST.Unmarshal.SymbolMatching UseDeclaration where\n  matchedSymbols _ = [187]\n  showFailure _ node_918 =\n    \"expected \"\n      GHC.Base.<> ( \"use_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_918 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_918) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_919 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_920 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_921 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_922 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_919\n        c1_920 = TreeSitter.Node.nodeStartPoint node_918\n      TreeSitter.Node.TSPoint\n        r2_921\n        c2_922 = TreeSitter.Node.nodeEndPoint node_918\n\nderiving instance GHC.Classes.Eq a_923 => GHC.Classes.Eq (UseDeclaration a_923)\n\nderiving instance GHC.Classes.Ord a_924 => GHC.Classes.Ord (UseDeclaration a_924)\n\nderiving instance GHC.Show.Show a_925 => GHC.Show.Show (UseDeclaration a_925)\n\ninstance AST.Unmarshal.Unmarshal UseDeclaration\n\ninstance Data.Foldable.Foldable UseDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UseDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UseDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UseInsteadOfClause a = UseInsteadOfClause\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ClassConstantAccessExpression GHC.Generics.:+: Name) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_926.\n      AST.Traversable1.Class.Traversable1 a_926\n    )\n\ninstance AST.Unmarshal.SymbolMatching UseInsteadOfClause where\n  matchedSymbols _ = [189]\n  showFailure _ node_927 =\n    \"expected \"\n      GHC.Base.<> ( \"use_instead_of_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_927 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_927) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_928 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_929 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_930 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_931 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_928\n        c1_929 = TreeSitter.Node.nodeStartPoint node_927\n      TreeSitter.Node.TSPoint\n        r2_930\n        c2_931 = TreeSitter.Node.nodeEndPoint node_927\n\nderiving instance GHC.Classes.Eq a_932 => GHC.Classes.Eq (UseInsteadOfClause a_932)\n\nderiving instance GHC.Classes.Ord a_933 => GHC.Classes.Ord (UseInsteadOfClause a_933)\n\nderiving instance GHC.Show.Show a_934 => GHC.Show.Show (UseInsteadOfClause a_934)\n\ninstance AST.Unmarshal.Unmarshal UseInsteadOfClause\n\ninstance Data.Foldable.Foldable UseInsteadOfClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UseInsteadOfClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UseInsteadOfClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UseList a = UseList\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((UseAsClause GHC.Generics.:+: UseInsteadOfClause) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_935.\n      AST.Traversable1.Class.Traversable1 a_935\n    )\n\ninstance AST.Unmarshal.SymbolMatching UseList where\n  matchedSymbols _ = [188]\n  showFailure _ node_936 =\n    \"expected \"\n      GHC.Base.<> ( \"use_list\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_936 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_936) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_937 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_938 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_939 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_940 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_937\n        c1_938 = TreeSitter.Node.nodeStartPoint node_936\n      TreeSitter.Node.TSPoint\n        r2_939\n        c2_940 = TreeSitter.Node.nodeEndPoint node_936\n\nderiving instance GHC.Classes.Eq a_941 => GHC.Classes.Eq (UseList a_941)\n\nderiving instance GHC.Classes.Ord a_942 => GHC.Classes.Ord (UseList a_942)\n\nderiving instance GHC.Show.Show a_943 => GHC.Show.Show (UseList a_943)\n\ninstance AST.Unmarshal.Unmarshal UseList\n\ninstance Data.Foldable.Foldable UseList where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UseList where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UseList where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata VariableName a = VariableName\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Name a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_944.\n      AST.Traversable1.Class.Traversable1 a_944\n    )\n\ninstance AST.Unmarshal.SymbolMatching VariableName where\n  matchedSymbols _ = [269]\n  showFailure _ node_945 =\n    \"expected \"\n      GHC.Base.<> ( \"variable_name\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_945 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_945) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_946 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_947 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_948 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_949 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_946\n        c1_947 = TreeSitter.Node.nodeStartPoint node_945\n      TreeSitter.Node.TSPoint\n        r2_948\n        c2_949 = TreeSitter.Node.nodeEndPoint node_945\n\nderiving instance GHC.Classes.Eq a_950 => GHC.Classes.Eq (VariableName a_950)\n\nderiving instance GHC.Classes.Ord a_951 => GHC.Classes.Ord (VariableName a_951)\n\nderiving instance GHC.Show.Show a_952 => GHC.Show.Show (VariableName a_952)\n\ninstance AST.Unmarshal.Unmarshal VariableName\n\ninstance Data.Foldable.Foldable VariableName where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor VariableName where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable VariableName where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata VariadicParameter a = VariadicParameter\n  { ann :: a,\n    name :: (AST.Parse.Err (VariableName a)),\n    type' :: (GHC.Maybe.Maybe (AST.Parse.Err (Type a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_953.\n      AST.Traversable1.Class.Traversable1 a_953\n    )\n\ninstance AST.Unmarshal.SymbolMatching VariadicParameter where\n  matchedSymbols _ = [196]\n  showFailure _ node_954 =\n    \"expected \"\n      GHC.Base.<> ( \"variadic_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_954 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_954) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_955 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_956 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_957 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_958 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_955\n        c1_956 = TreeSitter.Node.nodeStartPoint node_954\n      TreeSitter.Node.TSPoint\n        r2_957\n        c2_958 = TreeSitter.Node.nodeEndPoint node_954\n\nderiving instance GHC.Classes.Eq a_959 => GHC.Classes.Eq (VariadicParameter a_959)\n\nderiving instance GHC.Classes.Ord a_960 => GHC.Classes.Ord (VariadicParameter a_960)\n\nderiving instance GHC.Show.Show a_961 => GHC.Show.Show (VariadicParameter a_961)\n\ninstance AST.Unmarshal.Unmarshal VariadicParameter\n\ninstance Data.Foldable.Foldable VariadicParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor VariadicParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable VariadicParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata VariadicUnpacking a = VariadicUnpacking\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_962.\n      AST.Traversable1.Class.Traversable1 a_962\n    )\n\ninstance AST.Unmarshal.SymbolMatching VariadicUnpacking where\n  matchedSymbols _ = [263]\n  showFailure _ node_963 =\n    \"expected \"\n      GHC.Base.<> ( \"variadic_unpacking\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_963 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_963) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_964 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_965 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_966 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_967 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_964\n        c1_965 = TreeSitter.Node.nodeStartPoint node_963\n      TreeSitter.Node.TSPoint\n        r2_966\n        c2_967 = TreeSitter.Node.nodeEndPoint node_963\n\nderiving instance GHC.Classes.Eq a_968 => GHC.Classes.Eq (VariadicUnpacking a_968)\n\nderiving instance GHC.Classes.Ord a_969 => GHC.Classes.Ord (VariadicUnpacking a_969)\n\nderiving instance GHC.Show.Show a_970 => GHC.Show.Show (VariadicUnpacking a_970)\n\ninstance AST.Unmarshal.Unmarshal VariadicUnpacking\n\ninstance Data.Foldable.Foldable VariadicUnpacking where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor VariadicUnpacking where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable VariadicUnpacking where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata VisibilityModifier a = VisibilityModifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_971.\n      AST.Traversable1.Class.Traversable1 a_971\n    )\n\ninstance AST.Unmarshal.SymbolMatching VisibilityModifier where\n  matchedSymbols _ = [191]\n  showFailure _ node_972 =\n    \"expected \"\n      GHC.Base.<> ( \"visibility_modifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_972 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_972) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_973 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_974 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_975 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_976 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_973\n        c1_974 = TreeSitter.Node.nodeStartPoint node_972\n      TreeSitter.Node.TSPoint\n        r2_975\n        c2_976 = TreeSitter.Node.nodeEndPoint node_972\n\nderiving instance GHC.Classes.Eq a_977 => GHC.Classes.Eq (VisibilityModifier a_977)\n\nderiving instance GHC.Classes.Ord a_978 => GHC.Classes.Ord (VisibilityModifier a_978)\n\nderiving instance GHC.Show.Show a_979 => GHC.Show.Show (VisibilityModifier a_979)\n\ninstance AST.Unmarshal.Unmarshal VisibilityModifier\n\ninstance Data.Foldable.Foldable VisibilityModifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor VisibilityModifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable VisibilityModifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata WhileStatement a = WhileStatement\n  { ann :: a,\n    body :: (AST.Parse.Err ((Statement GHC.Generics.:+: ColonBlock) a)),\n    condition :: (AST.Parse.Err (ParenthesizedExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_980.\n      AST.Traversable1.Class.Traversable1 a_980\n    )\n\ninstance AST.Unmarshal.SymbolMatching WhileStatement where\n  matchedSymbols _ = [216]\n  showFailure _ node_981 =\n    \"expected \"\n      GHC.Base.<> ( \"while_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_981 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_981) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_982 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_983 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_984 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_985 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_982\n        c1_983 = TreeSitter.Node.nodeStartPoint node_981\n      TreeSitter.Node.TSPoint\n        r2_984\n        c2_985 = TreeSitter.Node.nodeEndPoint node_981\n\nderiving instance GHC.Classes.Eq a_986 => GHC.Classes.Eq (WhileStatement a_986)\n\nderiving instance GHC.Classes.Ord a_987 => GHC.Classes.Ord (WhileStatement a_987)\n\nderiving instance GHC.Show.Show a_988 => GHC.Show.Show (WhileStatement a_988)\n\ninstance AST.Unmarshal.Unmarshal WhileStatement\n\ninstance Data.Foldable.Foldable WhileStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor WhileStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable WhileStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata YieldExpression a = YieldExpression\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: ArrayElementInitializer) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_989.\n      AST.Traversable1.Class.Traversable1 a_989\n    )\n\ninstance AST.Unmarshal.SymbolMatching YieldExpression where\n  matchedSymbols _ = [270]\n  showFailure _ node_990 =\n    \"expected \"\n      GHC.Base.<> ( \"yield_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_990 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_990) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_991 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_992 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_993 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_994 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_991\n        c1_992 = TreeSitter.Node.nodeStartPoint node_990\n      TreeSitter.Node.TSPoint\n        r2_993\n        c2_994 = TreeSitter.Node.nodeEndPoint node_990\n\nderiving instance GHC.Classes.Eq a_995 => GHC.Classes.Eq (YieldExpression a_995)\n\nderiving instance GHC.Classes.Ord a_996 => GHC.Classes.Ord (YieldExpression a_996)\n\nderiving instance GHC.Show.Show a_997 => GHC.Show.Show (YieldExpression a_997)\n\ninstance AST.Unmarshal.Unmarshal YieldExpression\n\ninstance Data.Foldable.Foldable YieldExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor YieldExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable YieldExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousBang = AST.Token.Token \"!\" 88\n\ntype AnonymousBangEqual = AST.Token.Token \"!=\" 131\n\ntype AnonymousBangEqualEqual = AST.Token.Token \"!==\" 134\n\ntype AnonymousDollar = AST.Token.Token \"$\" 118\n\ntype AnonymousPercent = AST.Token.Token \"%\" 145\n\ntype AnonymousPercentEqual = AST.Token.Token \"%=\" 100\n\ntype AnonymousAmpersand = AST.Token.Token \"&\" 31\n\ntype AnonymousAmpersandAmpersand = AST.Token.Token \"&&\" 127\n\ntype AnonymousAmpersandEqual = AST.Token.Token \"&=\" 106\n\ntype AnonymousLParen = AST.Token.Token \"(\" 32\n\ntype AnonymousRParen = AST.Token.Token \")\" 33\n\ntype AnonymousStar = AST.Token.Token \"*\" 143\n\ntype AnonymousStarStar = AST.Token.Token \"**\" 89\n\ntype AnonymousStarStarEqual = AST.Token.Token \"**=\" 97\n\ntype AnonymousStarEqual = AST.Token.Token \"*=\" 98\n\ntype AnonymousPlus = AST.Token.Token \"+\" 85\n\ntype AnonymousPlusPlus = AST.Token.Token \"++\" 94\n\ntype AnonymousPlusEqual = AST.Token.Token \"+=\" 101\n\ntype AnonymousComma = AST.Token.Token \",\" 8\n\ntype AnonymousMinus = AST.Token.Token \"-\" 86\n\ntype AnonymousMinusMinus = AST.Token.Token \"--\" 95\n\ntype AnonymousMinusEqual = AST.Token.Token \"-=\" 102\n\ntype AnonymousMinusRAngle = AST.Token.Token \"->\" 109\n\ntype AnonymousDot = AST.Token.Token \".\" 142\n\ntype AnonymousDotDotDot = AST.Token.Token \"...\" 34\n\ntype AnonymousDotEqual = AST.Token.Token \".=\" 103\n\ntype AnonymousSlash = AST.Token.Token \"/\" 144\n\ntype AnonymousSlashEqual = AST.Token.Token \"/=\" 99\n\ntype AnonymousColon = AST.Token.Token \":\" 51\n\ntype AnonymousColonColon = AST.Token.Token \"::\" 91\n\ntype AnonymousSemicolon = AST.Token.Token \";\" 6\n\ntype AnonymousLAngle = AST.Token.Token \"<\" 135\n\ntype AnonymousLAngleLAngle = AST.Token.Token \"<<\" 140\n\ntype AnonymousLAngleLAngleEqual = AST.Token.Token \"<<=\" 104\n\ntype AnonymousLAngleEqual = AST.Token.Token \"<=\" 137\n\ntype AnonymousLAngleEqualRAngle = AST.Token.Token \"<=>\" 139\n\ntype AnonymousLAngleRAngle = AST.Token.Token \"<>\" 132\n\ntype AnonymousEqual = AST.Token.Token \"=\" 9\n\ntype AnonymousEqualEqual = AST.Token.Token \"==\" 130\n\ntype AnonymousEqualEqualEqual = AST.Token.Token \"===\" 133\n\ntype AnonymousEqualRAngle = AST.Token.Token \"=>\" 75\n\ntype AnonymousRAngle = AST.Token.Token \">\" 136\n\ntype AnonymousRAngleEqual = AST.Token.Token \">=\" 138\n\ntype AnonymousRAngleRAngle = AST.Token.Token \">>\" 141\n\ntype AnonymousRAngleRAngleEqual = AST.Token.Token \">>=\" 105\n\ntype AnonymousQuestion = AST.Token.Token \"?\" 35\n\ntype AnonymousQuestionRAngle = AST.Token.Token \"?>\" 3\n\ntype AnonymousQuestionQuestion = AST.Token.Token \"??\" 122\n\ntype AnonymousAt = AST.Token.Token \"@\" 84\n\ntype AnonymousLBracket = AST.Token.Token \"[\" 113\n\ntype AnonymousBackslash = AST.Token.Token \"\\\\\" 13\n\ntype AnonymousRBracket = AST.Token.Token \"]\" 114\n\ntype AnonymousCaret = AST.Token.Token \"^\" 129\n\ntype AnonymousCaretEqual = AST.Token.Token \"^=\" 107\n\ntype AnonymousAbstract = AST.Token.Token \"abstract\" 23\n\ntype AnonymousAnd = AST.Token.Token \"and\" 123\n\ntype AnonymousArray = AST.Token.Token \"array\" 36\n\ntype AnonymousAs = AST.Token.Token \"as\" 16\n\ntype AnonymousBinary = AST.Token.Token \"binary\" 44\n\ntype AnonymousBool = AST.Token.Token \"bool\" 39\n\ndata Boolean a = Boolean {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_998.\n      AST.Traversable1.Class.Traversable1 a_998\n    )\n\ninstance AST.Unmarshal.SymbolMatching Boolean where\n  matchedSymbols _ = [116]\n  showFailure _ node_999 =\n    \"expected \"\n      GHC.Base.<> ( \"boolean\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_999 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_999) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1000 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1001 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1002 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1003 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1000\n        c1_1001 = TreeSitter.Node.nodeStartPoint node_999\n      TreeSitter.Node.TSPoint\n        r2_1002\n        c2_1003 = TreeSitter.Node.nodeEndPoint node_999\n\nderiving instance GHC.Classes.Eq a_1004 => GHC.Classes.Eq (Boolean a_1004)\n\nderiving instance GHC.Classes.Ord a_1005 => GHC.Classes.Ord (Boolean a_1005)\n\nderiving instance GHC.Show.Show a_1006 => GHC.Show.Show (Boolean a_1006)\n\ninstance AST.Unmarshal.Unmarshal Boolean\n\ninstance Data.Foldable.Foldable Boolean where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Boolean where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Boolean where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousBoolean = AST.Token.Token \"boolean\" 45\n\ntype AnonymousBreak = AST.Token.Token \"break\" 64\n\ntype AnonymousCallable = AST.Token.Token \"callable\" 37\n\ntype AnonymousCase = AST.Token.Token \"case\" 82\n\ntype AnonymousCatch = AST.Token.Token \"catch\" 60\n\ntype AnonymousClass = AST.Token.Token \"class\" 22\n\ntype AnonymousClone = AST.Token.Token \"clone\" 90\n\ntype AnonymousConst = AST.Token.Token \"const\" 15\n\ntype AnonymousContinue = AST.Token.Token \"continue\" 63\n\ntype AnonymousDeclare = AST.Token.Token \"declare\" 53\n\ntype AnonymousDefault = AST.Token.Token \"default\" 83\n\ntype AnonymousDo = AST.Token.Token \"do\" 70\n\ntype AnonymousDouble = AST.Token.Token \"double\" 46\n\ntype AnonymousEcho = AST.Token.Token \"echo\" 52\n\ntype AnonymousElse = AST.Token.Token \"else\" 79\n\ntype AnonymousElseif = AST.Token.Token \"elseif\" 78\n\ntype AnonymousEncoding = AST.Token.Token \"encoding\" 56\n\ntype AnonymousEnddeclare = AST.Token.Token \"enddeclare\" 54\n\ntype AnonymousEndfor = AST.Token.Token \"endfor\" 72\n\ntype AnonymousEndforeach = AST.Token.Token \"endforeach\" 74\n\ntype AnonymousEndif = AST.Token.Token \"endif\" 77\n\ntype AnonymousEndswitch = AST.Token.Token \"endswitch\" 81\n\ntype AnonymousEndwhile = AST.Token.Token \"endwhile\" 69\n\ntype AnonymousExtends = AST.Token.Token \"extends\" 21\n\ntype AnonymousFinal = AST.Token.Token \"final\" 24\n\ntype AnonymousFinally = AST.Token.Token \"finally\" 61\n\ntype AnonymousFloat = AST.Token.Token \"float\" 40\n\ndata Float a = Float {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1007.\n      AST.Traversable1.Class.Traversable1 a_1007\n    )\n\ninstance AST.Unmarshal.SymbolMatching Float where\n  matchedSymbols _ = [58]\n  showFailure _ node_1008 =\n    \"expected \"\n      GHC.Base.<> ( \"float\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1008 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1008) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1009 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1010 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1011 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1012 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1009\n        c1_1010 = TreeSitter.Node.nodeStartPoint node_1008\n      TreeSitter.Node.TSPoint\n        r2_1011\n        c2_1012 = TreeSitter.Node.nodeEndPoint node_1008\n\nderiving instance GHC.Classes.Eq a_1013 => GHC.Classes.Eq (Float a_1013)\n\nderiving instance GHC.Classes.Ord a_1014 => GHC.Classes.Ord (Float a_1014)\n\nderiving instance GHC.Show.Show a_1015 => GHC.Show.Show (Float a_1015)\n\ninstance AST.Unmarshal.Unmarshal Float\n\ninstance Data.Foldable.Foldable Float where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Float where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Float where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousFor = AST.Token.Token \"for\" 71\n\ntype AnonymousForeach = AST.Token.Token \"foreach\" 73\n\ntype AnonymousFrom = AST.Token.Token \"from\" 120\n\ntype AnonymousFunction = AST.Token.Token \"function\" 14\n\ntype AnonymousGlobal = AST.Token.Token \"global\" 10\n\ntype AnonymousGoto = AST.Token.Token \"goto\" 62\n\ndata Heredoc a = Heredoc {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1016.\n      AST.Traversable1.Class.Traversable1 a_1016\n    )\n\ninstance AST.Unmarshal.SymbolMatching Heredoc where\n  matchedSymbols _ = [152]\n  showFailure _ node_1017 =\n    \"expected \"\n      GHC.Base.<> ( \"heredoc\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1017 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1017) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1018 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1019 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1020 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1021 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1018\n        c1_1019 = TreeSitter.Node.nodeStartPoint node_1017\n      TreeSitter.Node.TSPoint\n        r2_1020\n        c2_1021 = TreeSitter.Node.nodeEndPoint node_1017\n\nderiving instance GHC.Classes.Eq a_1022 => GHC.Classes.Eq (Heredoc a_1022)\n\nderiving instance GHC.Classes.Ord a_1023 => GHC.Classes.Ord (Heredoc a_1023)\n\nderiving instance GHC.Show.Show a_1024 => GHC.Show.Show (Heredoc a_1024)\n\ninstance AST.Unmarshal.Unmarshal Heredoc\n\ninstance Data.Foldable.Foldable Heredoc where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Heredoc where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Heredoc where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousIf = AST.Token.Token \"if\" 76\n\ntype AnonymousImplements = AST.Token.Token \"implements\" 25\n\ntype AnonymousInclude = AST.Token.Token \"include\" 146\n\ntype AnonymousIncludeOnce = AST.Token.Token \"include_once\" 147\n\ntype AnonymousInstanceof = AST.Token.Token \"instanceof\" 121\n\ntype AnonymousInsteadof = AST.Token.Token \"insteadof\" 27\n\ntype AnonymousInt = AST.Token.Token \"int\" 41\n\ntype AnonymousInteger = AST.Token.Token \"integer\" 47\n\ndata Integer a = Integer {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1025.\n      AST.Traversable1.Class.Traversable1 a_1025\n    )\n\ninstance AST.Unmarshal.SymbolMatching Integer where\n  matchedSymbols _ = [65]\n  showFailure _ node_1026 =\n    \"expected \"\n      GHC.Base.<> ( \"integer\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1026 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1026) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1027 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1028 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1029 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1030 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1027\n        c1_1028 = TreeSitter.Node.nodeStartPoint node_1026\n      TreeSitter.Node.TSPoint\n        r2_1029\n        c2_1030 = TreeSitter.Node.nodeEndPoint node_1026\n\nderiving instance GHC.Classes.Eq a_1031 => GHC.Classes.Eq (Integer a_1031)\n\nderiving instance GHC.Classes.Ord a_1032 => GHC.Classes.Ord (Integer a_1032)\n\nderiving instance GHC.Show.Show a_1033 => GHC.Show.Show (Integer a_1033)\n\ninstance AST.Unmarshal.Unmarshal Integer\n\ninstance Data.Foldable.Foldable Integer where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Integer where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Integer where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousInterface = AST.Token.Token \"interface\" 20\n\ntype AnonymousIterable = AST.Token.Token \"iterable\" 38\n\ntype AnonymousList = AST.Token.Token \"list\" 110\n\ntype AnonymousNamespace = AST.Token.Token \"namespace\" 11\n\ntype AnonymousNew = AST.Token.Token \"new\" 93\n\ndata Null a = Null {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1034.\n      AST.Traversable1.Class.Traversable1 a_1034\n    )\n\ninstance AST.Unmarshal.SymbolMatching Null where\n  matchedSymbols _ = [117]\n  showFailure _ node_1035 =\n    \"expected \"\n      GHC.Base.<> ( \"null\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1035 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1035) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1036 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1037 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1038 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1039 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1036\n        c1_1037 = TreeSitter.Node.nodeStartPoint node_1035\n      TreeSitter.Node.TSPoint\n        r2_1038\n        c2_1039 = TreeSitter.Node.nodeEndPoint node_1035\n\nderiving instance GHC.Classes.Eq a_1040 => GHC.Classes.Eq (Null a_1040)\n\nderiving instance GHC.Classes.Ord a_1041 => GHC.Classes.Ord (Null a_1041)\n\nderiving instance GHC.Show.Show a_1042 => GHC.Show.Show (Null a_1042)\n\ninstance AST.Unmarshal.Unmarshal Null\n\ninstance Data.Foldable.Foldable Null where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Null where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Null where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousObject = AST.Token.Token \"object\" 48\n\ntype AnonymousOr = AST.Token.Token \"or\" 124\n\ntype AnonymousParent = AST.Token.Token \"parent\" 112\n\ndata PhpTag a = PhpTag {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1043.\n      AST.Traversable1.Class.Traversable1 a_1043\n    )\n\ninstance AST.Unmarshal.SymbolMatching PhpTag where\n  matchedSymbols _ = [2]\n  showFailure _ node_1044 =\n    \"expected \"\n      GHC.Base.<> ( \"php_tag\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1044 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1044) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1045 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1046 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1047 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1048 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1045\n        c1_1046 = TreeSitter.Node.nodeStartPoint node_1044\n      TreeSitter.Node.TSPoint\n        r2_1047\n        c2_1048 = TreeSitter.Node.nodeEndPoint node_1044\n\nderiving instance GHC.Classes.Eq a_1049 => GHC.Classes.Eq (PhpTag a_1049)\n\nderiving instance GHC.Classes.Ord a_1050 => GHC.Classes.Ord (PhpTag a_1050)\n\nderiving instance GHC.Show.Show a_1051 => GHC.Show.Show (PhpTag a_1051)\n\ninstance AST.Unmarshal.Unmarshal PhpTag\n\ninstance Data.Foldable.Foldable PhpTag where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PhpTag where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PhpTag where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousPrint = AST.Token.Token \"print\" 92\n\ntype AnonymousPrivate = AST.Token.Token \"private\" 30\n\ntype AnonymousProtected = AST.Token.Token \"protected\" 29\n\ntype AnonymousPublic = AST.Token.Token \"public\" 28\n\ntype AnonymousReal = AST.Token.Token \"real\" 49\n\ntype AnonymousRequire = AST.Token.Token \"require\" 148\n\ntype AnonymousRequireOnce = AST.Token.Token \"require_once\" 149\n\ntype AnonymousReturn = AST.Token.Token \"return\" 66\n\ntype AnonymousSelf = AST.Token.Token \"self\" 111\n\ndata ShellCommandExpression a = ShellCommandExpression\n  { ann :: a,\n    text :: Data.Text.Internal.Text\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1052.\n      AST.Traversable1.Class.Traversable1 a_1052\n    )\n\ninstance AST.Unmarshal.SymbolMatching ShellCommandExpression where\n  matchedSymbols _ = [96]\n  showFailure _ node_1053 =\n    \"expected \"\n      GHC.Base.<> ( \"shell_command_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1053 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1053) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1054 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1055 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1056 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1057 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1054\n        c1_1055 = TreeSitter.Node.nodeStartPoint node_1053\n      TreeSitter.Node.TSPoint\n        r2_1056\n        c2_1057 = TreeSitter.Node.nodeEndPoint node_1053\n\nderiving instance GHC.Classes.Eq a_1058 => GHC.Classes.Eq (ShellCommandExpression a_1058)\n\nderiving instance GHC.Classes.Ord a_1059 => GHC.Classes.Ord (ShellCommandExpression a_1059)\n\nderiving instance GHC.Show.Show a_1060 => GHC.Show.Show (ShellCommandExpression a_1060)\n\ninstance AST.Unmarshal.Unmarshal ShellCommandExpression\n\ninstance Data.Foldable.Foldable ShellCommandExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ShellCommandExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ShellCommandExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousStatic = AST.Token.Token \"static\" 7\n\ntype AnonymousStrictTypes = AST.Token.Token \"strict_types\" 57\n\ntype AnonymousString = AST.Token.Token \"string\" 42\n\ndata String a = String {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1061.\n      AST.Traversable1.Class.Traversable1 a_1061\n    )\n\ninstance AST.Unmarshal.SymbolMatching String where\n  matchedSymbols _ = [115]\n  showFailure _ node_1062 =\n    \"expected \"\n      GHC.Base.<> ( \"string\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1062 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1062) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1063 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1064 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1065 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1066 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1063\n        c1_1064 = TreeSitter.Node.nodeStartPoint node_1062\n      TreeSitter.Node.TSPoint\n        r2_1065\n        c2_1066 = TreeSitter.Node.nodeEndPoint node_1062\n\nderiving instance GHC.Classes.Eq a_1067 => GHC.Classes.Eq (String a_1067)\n\nderiving instance GHC.Classes.Ord a_1068 => GHC.Classes.Ord (String a_1068)\n\nderiving instance GHC.Show.Show a_1069 => GHC.Show.Show (String a_1069)\n\ninstance AST.Unmarshal.Unmarshal String\n\ninstance Data.Foldable.Foldable String where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor String where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable String where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousSwitch = AST.Token.Token \"switch\" 80\n\ntype AnonymousThrow = AST.Token.Token \"throw\" 67\n\ntype AnonymousTicks = AST.Token.Token \"ticks\" 55\n\ntype AnonymousTrait = AST.Token.Token \"trait\" 19\n\ntype AnonymousTry = AST.Token.Token \"try\" 59\n\ntype AnonymousUnset = AST.Token.Token \"unset\" 50\n\ntype AnonymousUse = AST.Token.Token \"use\" 12\n\ndata VarModifier a = VarModifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1070.\n      AST.Traversable1.Class.Traversable1 a_1070\n    )\n\ninstance AST.Unmarshal.SymbolMatching VarModifier where\n  matchedSymbols _ = [26]\n  showFailure _ node_1071 =\n    \"expected \"\n      GHC.Base.<> ( \"var_modifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1071 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1071) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1072 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1073 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1074 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1075 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1072\n        c1_1073 = TreeSitter.Node.nodeStartPoint node_1071\n      TreeSitter.Node.TSPoint\n        r2_1074\n        c2_1075 = TreeSitter.Node.nodeEndPoint node_1071\n\nderiving instance GHC.Classes.Eq a_1076 => GHC.Classes.Eq (VarModifier a_1076)\n\nderiving instance GHC.Classes.Ord a_1077 => GHC.Classes.Ord (VarModifier a_1077)\n\nderiving instance GHC.Show.Show a_1078 => GHC.Show.Show (VarModifier a_1078)\n\ninstance AST.Unmarshal.Unmarshal VarModifier\n\ninstance Data.Foldable.Foldable VarModifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor VarModifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable VarModifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousVoid = AST.Token.Token \"void\" 43\n\ntype AnonymousWhile = AST.Token.Token \"while\" 68\n\ntype AnonymousXor = AST.Token.Token \"xor\" 125\n\ntype AnonymousYield = AST.Token.Token \"yield\" 119\n\ntype AnonymousLBrace = AST.Token.Token \"{\" 17\n\ntype AnonymousPipe = AST.Token.Token \"|\" 128\n\ntype AnonymousPipeEqual = AST.Token.Token \"|=\" 108\n\ntype AnonymousPipePipe = AST.Token.Token \"||\" 126\n\ntype AnonymousRBrace = AST.Token.Token \"}\" 18\n\ntype AnonymousTilde = AST.Token.Token \"~\" 87\n"
  },
  {
    "path": "semantic-php/src/Language/PHP/Grammar.hs",
    "content": "{-# LANGUAGE TemplateHaskell #-}\nmodule Language.PHP.Grammar\n( tree_sitter_php\n, Grammar(..)\n) where\n\nimport AST.Grammar.TH\nimport Language.Haskell.TH\nimport TreeSitter.PHP (tree_sitter_php)\n\n-- | Statically-known rules corresponding to symbols in the grammar.\nmkStaticallyKnownRuleGrammarData (mkName \"Grammar\") tree_sitter_php\n"
  },
  {
    "path": "semantic-php/src/Language/PHP/Tags.hs",
    "content": "{-# LANGUAGE DefaultSignatures #-}\n{-# LANGUAGE DisambiguateRecordFields #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE NamedFieldPuns #-}\n{-# LANGUAGE OverloadedLists #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n\nmodule Language.PHP.Tags\n  ( tags,\n  )\nwhere\n\nimport AST.Element\nimport qualified AST.Parse as Parse\nimport AST.Token\nimport AST.Traversable1\nimport Control.Effect.Reader\nimport Control.Effect.Writer\nimport Control.Effect.State\nimport qualified Language.PHP.AST as PHP\nimport Proto.Semantic as P\nimport Source.Loc\nimport Source.Source as Source\nimport qualified Tags.Tagging.Precise as Tags\n\nclass ToTags t where\n  tags ::\n    ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n      Has (Writer Tags.Tags) sig m\n    ) =>\n    t Loc ->\n    m ()\n  default tags ::\n    ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n      Has (Writer Tags.Tags) sig m,\n      Traversable1 ToTags t\n    ) =>\n    t Loc ->\n    m ()\n  tags = gtags\n\ninstance ToTags (Token sym n) where tags _ = pure ()\n\ninstance (ToTags l, ToTags r) => ToTags (l :+: r) where\n  tags (L1 l) = tags l\n  tags (R1 r) = tags r\n\ngtags ::\n  ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n    Has (Writer Tags.Tags) sig m,\n    Traversable1 ToTags t\n  ) =>\n  t Loc ->\n  m ()\ngtags = traverse1_ @ToTags (const (pure ())) tags\n\ninstance ToTags PHP.FunctionDefinition where\n  tags\n    t@PHP.FunctionDefinition\n      { PHP.ann = Loc {byteRange},\n        PHP.name = Parse.Success (PHP.Name {text, ann})\n      } = Tags.yield text P.METHOD P.DEFINITION ann byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags PHP.MethodDeclaration where\n  tags\n    t@PHP.MethodDeclaration\n      { PHP.ann = Loc {byteRange},\n        PHP.name = Parse.Success (PHP.Name {text, ann})\n      } = Tags.yield text P.FUNCTION P.DEFINITION ann byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags PHP.FunctionCallExpression where\n  tags\n    t@PHP.FunctionCallExpression\n      { PHP.ann = Loc {byteRange},\n        PHP.function = func\n      } = match func\n      where\n        yield name loc = Tags.yield name P.CALL P.REFERENCE loc byteRange >> gtags t\n        match expr = case expr of\n          EPrj PHP.VariableName {extraChildren = Parse.Success (PHP.Name {text, ann})} -> yield text ann *> gtags t\n          EPrj PHP.QualifiedName {extraChildren = [EPrj PHP.Name {text, ann}]} -> yield text ann *> gtags t\n          _ -> gtags t\n\n\ninstance ToTags PHP.MemberCallExpression where\n  tags\n    t@PHP.MemberCallExpression\n      { PHP.ann = Loc {byteRange},\n        PHP.name = Parse.Success (Prj PHP.Name {text, ann})\n      } = Tags.yield text P.CALL P.REFERENCE ann byteRange >> gtags t\n  tags t = gtags t\n\n\n\ninstance ToTags PHP.AnonymousFunctionCreationExpression\ninstance ToTags PHP.AnonymousFunctionUseClause\ninstance ToTags PHP.Arguments\ninstance ToTags PHP.ArrayCreationExpression\ninstance ToTags PHP.ArrayElementInitializer\ninstance ToTags PHP.AssignmentExpression\ninstance ToTags PHP.AugmentedAssignmentExpression\ninstance ToTags PHP.BinaryExpression\ninstance ToTags PHP.Boolean\ninstance ToTags PHP.BreakStatement\ninstance ToTags PHP.CaseStatement\ninstance ToTags PHP.CastExpression\ninstance ToTags PHP.CastType\ninstance ToTags PHP.CatchClause\ninstance ToTags PHP.ClassBaseClause\ninstance ToTags PHP.ClassConstantAccessExpression\ninstance ToTags PHP.ClassDeclaration\ninstance ToTags PHP.ClassInterfaceClause\ninstance ToTags PHP.ClassModifier\ninstance ToTags PHP.CloneExpression\ninstance ToTags PHP.ColonBlock\ninstance ToTags PHP.CompoundStatement\ninstance ToTags PHP.ConditionalExpression\ninstance ToTags PHP.ConstDeclaration\ninstance ToTags PHP.ConstElement\ninstance ToTags PHP.ContinueStatement\ninstance ToTags PHP.DeclarationList\ninstance ToTags PHP.DeclareDirective\ninstance ToTags PHP.DeclareStatement\ninstance ToTags PHP.DefaultStatement\ninstance ToTags PHP.DoStatement\ninstance ToTags PHP.DynamicVariableName\ninstance ToTags PHP.EchoStatement\ninstance ToTags PHP.ElseClause\ninstance ToTags PHP.ElseIfClause\ninstance ToTags PHP.EmptyStatement\ninstance ToTags PHP.ExponentiationExpression\ninstance ToTags PHP.Expression\ninstance ToTags PHP.ExpressionStatement\ninstance ToTags PHP.FinallyClause\ninstance ToTags PHP.Float\ninstance ToTags PHP.ForStatement\ninstance ToTags PHP.ForeachStatement\ninstance ToTags PHP.FormalParameters\ninstance ToTags PHP.FunctionStaticDeclaration\ninstance ToTags PHP.GlobalDeclaration\ninstance ToTags PHP.GotoStatement\ninstance ToTags PHP.Heredoc\ninstance ToTags PHP.IfStatement\ninstance ToTags PHP.IncludeExpression\ninstance ToTags PHP.IncludeOnceExpression\ninstance ToTags PHP.InterfaceBaseClause\ninstance ToTags PHP.InterfaceDeclaration\ninstance ToTags PHP.ListLiteral\ninstance ToTags PHP.Literal\ninstance ToTags PHP.MemberAccessExpression\ninstance ToTags PHP.Name\ninstance ToTags PHP.NamedLabelStatement\ninstance ToTags PHP.NamespaceAliasingClause\ninstance ToTags PHP.NamespaceDefinition\ninstance ToTags PHP.NamespaceFunctionOrConst\ninstance ToTags PHP.NamespaceName\ninstance ToTags PHP.NamespaceNameAsPrefix\ninstance ToTags PHP.NamespaceUseClause\ninstance ToTags PHP.NamespaceUseDeclaration\ninstance ToTags PHP.NamespaceUseGroup\ninstance ToTags PHP.NamespaceUseGroupClause\ninstance ToTags PHP.Null\ninstance ToTags PHP.ObjectCreationExpression\ninstance ToTags PHP.OptionalType\ninstance ToTags PHP.Pair\ninstance ToTags PHP.ParenthesizedExpression\ninstance ToTags PHP.PhpTag\ninstance ToTags PHP.PrimaryExpression\ninstance ToTags PHP.PrimitiveType\ninstance ToTags PHP.PrintIntrinsic\ninstance ToTags PHP.Program\ninstance ToTags PHP.PropertyDeclaration\ninstance ToTags PHP.PropertyElement\ninstance ToTags PHP.PropertyInitializer\ninstance ToTags PHP.QualifiedName\ninstance ToTags PHP.RelativeScope\ninstance ToTags PHP.RequireExpression\ninstance ToTags PHP.RequireOnceExpression\ninstance ToTags PHP.ReturnStatement\ninstance ToTags PHP.ScopedCallExpression\ninstance ToTags PHP.ScopedPropertyAccessExpression\ninstance ToTags PHP.SequenceExpression\ninstance ToTags PHP.ShellCommandExpression\ninstance ToTags PHP.SimpleParameter\ninstance ToTags PHP.Statement\ninstance ToTags PHP.StaticModifier\ninstance ToTags PHP.StaticVariableDeclaration\ninstance ToTags PHP.String\ninstance ToTags PHP.SubscriptExpression\ninstance ToTags PHP.SwitchBlock\ninstance ToTags PHP.SwitchStatement\ninstance ToTags PHP.Text\ninstance ToTags PHP.ThrowStatement\ninstance ToTags PHP.TraitDeclaration\ninstance ToTags PHP.TryStatement\ninstance ToTags PHP.Type\ninstance ToTags PHP.TypeName\ninstance ToTags PHP.UnaryOpExpression\ninstance ToTags PHP.UnsetStatement\ninstance ToTags PHP.UpdateExpression\ninstance ToTags PHP.UseAsClause\ninstance ToTags PHP.UseDeclaration\ninstance ToTags PHP.UseInsteadOfClause\ninstance ToTags PHP.UseList\ninstance ToTags PHP.VarModifier\ninstance ToTags PHP.VariableName\ninstance ToTags PHP.VariadicParameter\ninstance ToTags PHP.VariadicUnpacking\ninstance ToTags PHP.VisibilityModifier\ninstance ToTags PHP.WhileStatement\ninstance ToTags PHP.YieldExpression\ninstance ToTags PHP.Integer\n"
  },
  {
    "path": "semantic-php/src/Language/PHP.hs",
    "content": "{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n-- | Semantic functionality for PHP programs.\nmodule Language.PHP\n( Term(..)\n, TreeSitter.PHP.tree_sitter_php\n) where\n\nimport           AST.Marshal.JSON\nimport qualified AST.Unmarshal as TS\nimport           Data.Proxy\nimport qualified Language.PHP.AST as PHP\nimport qualified Language.PHP.Tags as PHPTags\nimport qualified Tags.Tagging.Precise as Tags\nimport qualified TreeSitter.PHP (tree_sitter_php)\n\nnewtype Term a = Term { getTerm :: PHP.Program a }\n  deriving MarshalJSON\n\ninstance TS.SymbolMatching Term where\n  matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy PHP.Program)\n  showFailure _ = TS.showFailure (Proxy :: Proxy PHP.Program)\n\ninstance TS.Unmarshal Term where\n  matchers = fmap (fmap (TS.hoist Term)) TS.matchers\n\ninstance Tags.ToTags Term where\n  tags src = Tags.runTagging src . PHPTags.tags . getTerm\n"
  },
  {
    "path": "semantic-proto/BUILD.bazel",
    "content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\n    \"@rules_haskell//haskell:defs.bzl\",\n    \"haskell_binary\",\n    \"haskell_library\",\n)\nload(\n    \"@rules_haskell//haskell:cabal.bzl\",\n    \"haskell_cabal_binary\",\n    \"haskell_cabal_library\",\n)\n\nhaskell_library(\n    name = \"semantic-proto\",\n    srcs = glob([\"src/**/*.hs\"]),\n    compiler_flags = [\"-XOverloadedStrings\"],\n    deps = [\n        \"//:base\",\n        \"//:text\",\n        \"@stackage//:aeson\",\n        \"@stackage//:proto-lens\",\n        \"@stackage//:proto-lens-jsonpb\",\n        \"@stackage//:proto-lens-runtime\",\n    ],\n)\n"
  },
  {
    "path": "semantic-proto/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 GitHub\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "semantic-proto/README.md",
    "content": "# semantic-proto\n\nDatatypes generated from the protobuf schema\n\n\n## Development\n\nThis project consists of a Haskell package named `semantic-proto`. The library’s sources are in [`src`][].\n\nDevelopment of `semantic-proto` is typically done using `cabal v2-build`:\n\n```shell\ncabal v2-build # build the library\ncabal v2-repl  # load the package into ghci\ncabal v2-test  # build and run the doctests\n```\n\n[`src`]: https://github.com/github/semantic/tree/master/semantic-proto/src\n"
  },
  {
    "path": "semantic-proto/Setup.hs",
    "content": "import Distribution.Simple\nmain = defaultMain\n"
  },
  {
    "path": "semantic-proto/semantic-proto.cabal",
    "content": "cabal-version:       2.4\n\nname:                semantic-proto\nversion:             0.0.0.0\nsynopsis:            Datatypes generated from protobuf schema\ndescription:         Datatypes generated from protobuf schema\nhomepage:            https://github.com/github/semantic/tree/master/semantic-proto#readme\nbug-reports:         https://github.com/github/semantic/issues\nlicense:             MIT\nlicense-file:        LICENSE\nauthor:              The Semantic authors\nmaintainer:          opensource+semantic@github.com\ncopyright:           (c) 2019 GitHub, Inc.\ncategory:            Language\nbuild-type:          Simple\nstability:           alpha\nextra-source-files:  README.md\n\ntested-with:         GHC == 8.6.5\n\nlibrary\n  exposed-modules:\n      Proto.Semantic\n    , Proto.Semantic_Fields\n    , Proto.Semantic_JSON\n  build-depends:\n    , base                >= 4.13 && < 5\n    , aeson               >= 1.4.2.0 && < 3\n    , text               ^>= 1.2.3.1\n    , proto-lens          >= 0.5 && < 0.8\n    , proto-lens-jsonpb\n    , proto-lens-runtime  >= 0.5 && <0.8\n  hs-source-dirs:      src\n  default-language:    Haskell2010\n  default-extensions:  OverloadedStrings\n  ghc-options:\n    -Weverything\n    -Wno-missing-local-signatures\n    -Wno-missing-import-lists\n    -Wno-implicit-prelude\n    -Wno-safe\n    -Wno-unsafe\n    -Wno-name-shadowing\n    -Wno-monomorphism-restriction\n    -Wno-missing-export-lists\n    -Wno-missed-specialisations\n    -Wno-all-missed-specialisations\n    -Wno-star-is-type\n    -Wno-missing-export-lists\n  if (impl(ghc >= 8.8))\n    ghc-options: -Wno-missing-deriving-strategies\n  if (impl(ghc >= 8.10))\n    ghc-options:\n      -Wno-missing-safe-haskell-mode\n      -Wno-prepositive-qualified-module\n  if (impl(ghc >= 9.2))\n    ghc-options:\n      -Wno-missing-kind-signatures\n"
  },
  {
    "path": "semantic-proto/src/Proto/Semantic.hs",
    "content": "{- This file was auto-generated from semantic.proto by the proto-lens-protoc program. -}\n{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies, UndecidableInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude, DataKinds, BangPatterns, TypeApplications, OverloadedStrings, DerivingStrategies#-}\n{-# OPTIONS_GHC -Wno-unused-imports#-}\n{-# OPTIONS_GHC -Wno-duplicate-exports#-}\n{-# OPTIONS_GHC -Wno-dodgy-exports#-}\nmodule Proto.Semantic (\n        Blob(), ByteRange(), Docstring(), File(), NodeType(..), NodeType(),\n        NodeType'UnrecognizedValue, ParseError(), ParseTreeRequest(),\n        ParseTreeSymbolResponse(), PingRequest(), PingResponse(),\n        Position(), Span(), StackGraphFile(), StackGraphNode(),\n        StackGraphPath(), StackGraphRequest(), StackGraphResponse(),\n        Symbol(), SyntaxType(..), SyntaxType(),\n        SyntaxType'UnrecognizedValue\n    ) where\nimport qualified Data.ProtoLens.Runtime.Control.DeepSeq as Control.DeepSeq\nimport qualified Data.ProtoLens.Runtime.Data.ProtoLens.Prism as Data.ProtoLens.Prism\nimport qualified Data.ProtoLens.Runtime.Prelude as Prelude\nimport qualified Data.ProtoLens.Runtime.Data.Int as Data.Int\nimport qualified Data.ProtoLens.Runtime.Data.Monoid as Data.Monoid\nimport qualified Data.ProtoLens.Runtime.Data.Word as Data.Word\nimport qualified Data.ProtoLens.Runtime.Data.ProtoLens as Data.ProtoLens\nimport qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Bytes as Data.ProtoLens.Encoding.Bytes\nimport qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Growing as Data.ProtoLens.Encoding.Growing\nimport qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Parser.Unsafe as Data.ProtoLens.Encoding.Parser.Unsafe\nimport qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Wire as Data.ProtoLens.Encoding.Wire\nimport qualified Data.ProtoLens.Runtime.Data.ProtoLens.Field as Data.ProtoLens.Field\nimport qualified Data.ProtoLens.Runtime.Data.ProtoLens.Message.Enum as Data.ProtoLens.Message.Enum\nimport qualified Data.ProtoLens.Runtime.Data.ProtoLens.Service.Types as Data.ProtoLens.Service.Types\nimport qualified Data.ProtoLens.Runtime.Lens.Family2 as Lens.Family2\nimport qualified Data.ProtoLens.Runtime.Lens.Family2.Unchecked as Lens.Family2.Unchecked\nimport qualified Data.ProtoLens.Runtime.Data.Text as Data.Text\nimport qualified Data.ProtoLens.Runtime.Data.Map as Data.Map\nimport qualified Data.ProtoLens.Runtime.Data.ByteString as Data.ByteString\nimport qualified Data.ProtoLens.Runtime.Data.ByteString.Char8 as Data.ByteString.Char8\nimport qualified Data.ProtoLens.Runtime.Data.Text.Encoding as Data.Text.Encoding\nimport qualified Data.ProtoLens.Runtime.Data.Vector as Data.Vector\nimport qualified Data.ProtoLens.Runtime.Data.Vector.Generic as Data.Vector.Generic\nimport qualified Data.ProtoLens.Runtime.Data.Vector.Unboxed as Data.Vector.Unboxed\nimport qualified Data.ProtoLens.Runtime.Text.Read as Text.Read\n{- | Fields :\n     \n         * 'Proto.Semantic_Fields.content' @:: Lens' Blob Data.Text.Text@\n         * 'Proto.Semantic_Fields.path' @:: Lens' Blob Data.Text.Text@\n         * 'Proto.Semantic_Fields.language' @:: Lens' Blob Data.Text.Text@ -}\ndata Blob\n  = Blob'_constructor {_Blob'content :: !Data.Text.Text,\n                       _Blob'path :: !Data.Text.Text,\n                       _Blob'language :: !Data.Text.Text,\n                       _Blob'_unknownFields :: !Data.ProtoLens.FieldSet}\n  deriving stock (Prelude.Eq, Prelude.Ord)\ninstance Prelude.Show Blob where\n  showsPrec _ __x __s\n    = Prelude.showChar\n        '{'\n        (Prelude.showString\n           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))\ninstance Data.ProtoLens.Field.HasField Blob \"content\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Blob'content (\\ x__ y__ -> x__ {_Blob'content = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField Blob \"path\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Blob'path (\\ x__ y__ -> x__ {_Blob'path = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField Blob \"language\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Blob'language (\\ x__ y__ -> x__ {_Blob'language = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Message Blob where\n  messageName _ = Data.Text.pack \"github.semantic.Blob\"\n  packedMessageDescriptor _\n    = \"\\n\\\n      \\\\EOTBlob\\DC2\\CAN\\n\\\n      \\\\acontent\\CAN\\SOH \\SOH(\\tR\\acontent\\DC2\\DC2\\n\\\n      \\\\EOTpath\\CAN\\STX \\SOH(\\tR\\EOTpath\\DC2\\SUB\\n\\\n      \\\\blanguage\\CAN\\ETX \\SOH(\\tR\\blanguage\"\n  packedFileDescriptor _ = packedFileDescriptor\n  fieldsByTag\n    = let\n        content__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"content\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"content\")) ::\n              Data.ProtoLens.FieldDescriptor Blob\n        path__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"path\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"path\")) ::\n              Data.ProtoLens.FieldDescriptor Blob\n        language__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"language\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional\n                 (Data.ProtoLens.Field.field @\"language\")) ::\n              Data.ProtoLens.FieldDescriptor Blob\n      in\n        Data.Map.fromList\n          [(Data.ProtoLens.Tag 1, content__field_descriptor),\n           (Data.ProtoLens.Tag 2, path__field_descriptor),\n           (Data.ProtoLens.Tag 3, language__field_descriptor)]\n  unknownFields\n    = Lens.Family2.Unchecked.lens\n        _Blob'_unknownFields\n        (\\ x__ y__ -> x__ {_Blob'_unknownFields = y__})\n  defMessage\n    = Blob'_constructor\n        {_Blob'content = Data.ProtoLens.fieldDefault,\n         _Blob'path = Data.ProtoLens.fieldDefault,\n         _Blob'language = Data.ProtoLens.fieldDefault,\n         _Blob'_unknownFields = []}\n  parseMessage\n    = let\n        loop :: Blob -> Data.ProtoLens.Encoding.Bytes.Parser Blob\n        loop x\n          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd\n               if end then\n                   do (let missing = []\n                       in\n                         if Prelude.null missing then\n                             Prelude.return ()\n                         else\n                             Prelude.fail\n                               ((Prelude.++)\n                                  \"Missing required fields: \"\n                                  (Prelude.show (missing :: [Prelude.String]))))\n                      Prelude.return\n                        (Lens.Family2.over\n                           Data.ProtoLens.unknownFields (\\ !t -> Prelude.reverse t) x)\n               else\n                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                      case tag of\n                        10\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"content\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"content\") y x)\n                        18\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"path\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"path\") y x)\n                        26\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"language\"\n                                loop\n                                  (Lens.Family2.set (Data.ProtoLens.Field.field @\"language\") y x)\n                        wire\n                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire\n                                        wire\n                                loop\n                                  (Lens.Family2.over\n                                     Data.ProtoLens.unknownFields (\\ !t -> (:) y t) x)\n      in\n        (Data.ProtoLens.Encoding.Bytes.<?>)\n          (do loop Data.ProtoLens.defMessage) \"Blob\"\n  buildMessage\n    = \\ _x\n        -> (Data.Monoid.<>)\n             (let\n                _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"content\") _x\n              in\n                if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                    Data.Monoid.mempty\n                else\n                    (Data.Monoid.<>)\n                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)\n                      ((Prelude..)\n                         (\\ bs\n                            -> (Data.Monoid.<>)\n                                 (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                    (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                         Data.Text.Encoding.encodeUtf8\n                         _v))\n             ((Data.Monoid.<>)\n                (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"path\") _x\n                 in\n                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                       Data.Monoid.mempty\n                   else\n                       (Data.Monoid.<>)\n                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)\n                         ((Prelude..)\n                            (\\ bs\n                               -> (Data.Monoid.<>)\n                                    (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                       (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                            Data.Text.Encoding.encodeUtf8\n                            _v))\n                ((Data.Monoid.<>)\n                   (let\n                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"language\") _x\n                    in\n                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                          Data.Monoid.mempty\n                      else\n                          (Data.Monoid.<>)\n                            (Data.ProtoLens.Encoding.Bytes.putVarInt 26)\n                            ((Prelude..)\n                               (\\ bs\n                                  -> (Data.Monoid.<>)\n                                       (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                          (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                               Data.Text.Encoding.encodeUtf8\n                               _v))\n                   (Data.ProtoLens.Encoding.Wire.buildFieldSet\n                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))\ninstance Control.DeepSeq.NFData Blob where\n  rnf\n    = \\ x__\n        -> Control.DeepSeq.deepseq\n             (_Blob'_unknownFields x__)\n             (Control.DeepSeq.deepseq\n                (_Blob'content x__)\n                (Control.DeepSeq.deepseq\n                   (_Blob'path x__)\n                   (Control.DeepSeq.deepseq (_Blob'language x__) ())))\n{- | Fields :\n     \n         * 'Proto.Semantic_Fields.start' @:: Lens' ByteRange Data.Int.Int32@\n         * 'Proto.Semantic_Fields.end' @:: Lens' ByteRange Data.Int.Int32@ -}\ndata ByteRange\n  = ByteRange'_constructor {_ByteRange'start :: !Data.Int.Int32,\n                            _ByteRange'end :: !Data.Int.Int32,\n                            _ByteRange'_unknownFields :: !Data.ProtoLens.FieldSet}\n  deriving stock (Prelude.Eq, Prelude.Ord)\ninstance Prelude.Show ByteRange where\n  showsPrec _ __x __s\n    = Prelude.showChar\n        '{'\n        (Prelude.showString\n           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))\ninstance Data.ProtoLens.Field.HasField ByteRange \"start\" Data.Int.Int32 where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _ByteRange'start (\\ x__ y__ -> x__ {_ByteRange'start = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField ByteRange \"end\" Data.Int.Int32 where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _ByteRange'end (\\ x__ y__ -> x__ {_ByteRange'end = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Message ByteRange where\n  messageName _ = Data.Text.pack \"github.semantic.ByteRange\"\n  packedMessageDescriptor _\n    = \"\\n\\\n      \\\\tByteRange\\DC2\\DC4\\n\\\n      \\\\ENQstart\\CAN\\SOH \\SOH(\\ENQR\\ENQstart\\DC2\\DLE\\n\\\n      \\\\ETXend\\CAN\\STX \\SOH(\\ENQR\\ETXend\"\n  packedFileDescriptor _ = packedFileDescriptor\n  fieldsByTag\n    = let\n        start__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"start\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"start\")) ::\n              Data.ProtoLens.FieldDescriptor ByteRange\n        end__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"end\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"end\")) ::\n              Data.ProtoLens.FieldDescriptor ByteRange\n      in\n        Data.Map.fromList\n          [(Data.ProtoLens.Tag 1, start__field_descriptor),\n           (Data.ProtoLens.Tag 2, end__field_descriptor)]\n  unknownFields\n    = Lens.Family2.Unchecked.lens\n        _ByteRange'_unknownFields\n        (\\ x__ y__ -> x__ {_ByteRange'_unknownFields = y__})\n  defMessage\n    = ByteRange'_constructor\n        {_ByteRange'start = Data.ProtoLens.fieldDefault,\n         _ByteRange'end = Data.ProtoLens.fieldDefault,\n         _ByteRange'_unknownFields = []}\n  parseMessage\n    = let\n        loop :: ByteRange -> Data.ProtoLens.Encoding.Bytes.Parser ByteRange\n        loop x\n          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd\n               if end then\n                   do (let missing = []\n                       in\n                         if Prelude.null missing then\n                             Prelude.return ()\n                         else\n                             Prelude.fail\n                               ((Prelude.++)\n                                  \"Missing required fields: \"\n                                  (Prelude.show (missing :: [Prelude.String]))))\n                      Prelude.return\n                        (Lens.Family2.over\n                           Data.ProtoLens.unknownFields (\\ !t -> Prelude.reverse t) x)\n               else\n                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                      case tag of\n                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (Prelude.fmap\n                                          Prelude.fromIntegral\n                                          Data.ProtoLens.Encoding.Bytes.getVarInt)\n                                       \"start\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"start\") y x)\n                        16\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (Prelude.fmap\n                                          Prelude.fromIntegral\n                                          Data.ProtoLens.Encoding.Bytes.getVarInt)\n                                       \"end\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"end\") y x)\n                        wire\n                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire\n                                        wire\n                                loop\n                                  (Lens.Family2.over\n                                     Data.ProtoLens.unknownFields (\\ !t -> (:) y t) x)\n      in\n        (Data.ProtoLens.Encoding.Bytes.<?>)\n          (do loop Data.ProtoLens.defMessage) \"ByteRange\"\n  buildMessage\n    = \\ _x\n        -> (Data.Monoid.<>)\n             (let\n                _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"start\") _x\n              in\n                if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                    Data.Monoid.mempty\n                else\n                    (Data.Monoid.<>)\n                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)\n                      ((Prelude..)\n                         Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))\n             ((Data.Monoid.<>)\n                (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"end\") _x\n                 in\n                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                       Data.Monoid.mempty\n                   else\n                       (Data.Monoid.<>)\n                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)\n                         ((Prelude..)\n                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))\n                (Data.ProtoLens.Encoding.Wire.buildFieldSet\n                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))\ninstance Control.DeepSeq.NFData ByteRange where\n  rnf\n    = \\ x__\n        -> Control.DeepSeq.deepseq\n             (_ByteRange'_unknownFields x__)\n             (Control.DeepSeq.deepseq\n                (_ByteRange'start x__)\n                (Control.DeepSeq.deepseq (_ByteRange'end x__) ()))\n{- | Fields :\n     \n         * 'Proto.Semantic_Fields.docstring' @:: Lens' Docstring Data.Text.Text@ -}\ndata Docstring\n  = Docstring'_constructor {_Docstring'docstring :: !Data.Text.Text,\n                            _Docstring'_unknownFields :: !Data.ProtoLens.FieldSet}\n  deriving stock (Prelude.Eq, Prelude.Ord)\ninstance Prelude.Show Docstring where\n  showsPrec _ __x __s\n    = Prelude.showChar\n        '{'\n        (Prelude.showString\n           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))\ninstance Data.ProtoLens.Field.HasField Docstring \"docstring\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Docstring'docstring\n           (\\ x__ y__ -> x__ {_Docstring'docstring = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Message Docstring where\n  messageName _ = Data.Text.pack \"github.semantic.Docstring\"\n  packedMessageDescriptor _\n    = \"\\n\\\n      \\\\tDocstring\\DC2\\FS\\n\\\n      \\\\tdocstring\\CAN\\SOH \\SOH(\\tR\\tdocstring\"\n  packedFileDescriptor _ = packedFileDescriptor\n  fieldsByTag\n    = let\n        docstring__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"docstring\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional\n                 (Data.ProtoLens.Field.field @\"docstring\")) ::\n              Data.ProtoLens.FieldDescriptor Docstring\n      in\n        Data.Map.fromList\n          [(Data.ProtoLens.Tag 1, docstring__field_descriptor)]\n  unknownFields\n    = Lens.Family2.Unchecked.lens\n        _Docstring'_unknownFields\n        (\\ x__ y__ -> x__ {_Docstring'_unknownFields = y__})\n  defMessage\n    = Docstring'_constructor\n        {_Docstring'docstring = Data.ProtoLens.fieldDefault,\n         _Docstring'_unknownFields = []}\n  parseMessage\n    = let\n        loop :: Docstring -> Data.ProtoLens.Encoding.Bytes.Parser Docstring\n        loop x\n          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd\n               if end then\n                   do (let missing = []\n                       in\n                         if Prelude.null missing then\n                             Prelude.return ()\n                         else\n                             Prelude.fail\n                               ((Prelude.++)\n                                  \"Missing required fields: \"\n                                  (Prelude.show (missing :: [Prelude.String]))))\n                      Prelude.return\n                        (Lens.Family2.over\n                           Data.ProtoLens.unknownFields (\\ !t -> Prelude.reverse t) x)\n               else\n                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                      case tag of\n                        10\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"docstring\"\n                                loop\n                                  (Lens.Family2.set (Data.ProtoLens.Field.field @\"docstring\") y x)\n                        wire\n                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire\n                                        wire\n                                loop\n                                  (Lens.Family2.over\n                                     Data.ProtoLens.unknownFields (\\ !t -> (:) y t) x)\n      in\n        (Data.ProtoLens.Encoding.Bytes.<?>)\n          (do loop Data.ProtoLens.defMessage) \"Docstring\"\n  buildMessage\n    = \\ _x\n        -> (Data.Monoid.<>)\n             (let\n                _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"docstring\") _x\n              in\n                if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                    Data.Monoid.mempty\n                else\n                    (Data.Monoid.<>)\n                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)\n                      ((Prelude..)\n                         (\\ bs\n                            -> (Data.Monoid.<>)\n                                 (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                    (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                         Data.Text.Encoding.encodeUtf8\n                         _v))\n             (Data.ProtoLens.Encoding.Wire.buildFieldSet\n                (Lens.Family2.view Data.ProtoLens.unknownFields _x))\ninstance Control.DeepSeq.NFData Docstring where\n  rnf\n    = \\ x__\n        -> Control.DeepSeq.deepseq\n             (_Docstring'_unknownFields x__)\n             (Control.DeepSeq.deepseq (_Docstring'docstring x__) ())\n{- | Fields :\n     \n         * 'Proto.Semantic_Fields.path' @:: Lens' File Data.Text.Text@\n         * 'Proto.Semantic_Fields.language' @:: Lens' File Data.Text.Text@\n         * 'Proto.Semantic_Fields.symbols' @:: Lens' File [Symbol]@\n         * 'Proto.Semantic_Fields.vec'symbols' @:: Lens' File (Data.Vector.Vector Symbol)@\n         * 'Proto.Semantic_Fields.errors' @:: Lens' File [ParseError]@\n         * 'Proto.Semantic_Fields.vec'errors' @:: Lens' File (Data.Vector.Vector ParseError)@\n         * 'Proto.Semantic_Fields.blobOid' @:: Lens' File Data.Text.Text@ -}\ndata File\n  = File'_constructor {_File'path :: !Data.Text.Text,\n                       _File'language :: !Data.Text.Text,\n                       _File'symbols :: !(Data.Vector.Vector Symbol),\n                       _File'errors :: !(Data.Vector.Vector ParseError),\n                       _File'blobOid :: !Data.Text.Text,\n                       _File'_unknownFields :: !Data.ProtoLens.FieldSet}\n  deriving stock (Prelude.Eq, Prelude.Ord)\ninstance Prelude.Show File where\n  showsPrec _ __x __s\n    = Prelude.showChar\n        '{'\n        (Prelude.showString\n           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))\ninstance Data.ProtoLens.Field.HasField File \"path\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _File'path (\\ x__ y__ -> x__ {_File'path = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField File \"language\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _File'language (\\ x__ y__ -> x__ {_File'language = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField File \"symbols\" [Symbol] where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _File'symbols (\\ x__ y__ -> x__ {_File'symbols = y__}))\n        (Lens.Family2.Unchecked.lens\n           Data.Vector.Generic.toList\n           (\\ _ y__ -> Data.Vector.Generic.fromList y__))\ninstance Data.ProtoLens.Field.HasField File \"vec'symbols\" (Data.Vector.Vector Symbol) where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _File'symbols (\\ x__ y__ -> x__ {_File'symbols = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField File \"errors\" [ParseError] where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _File'errors (\\ x__ y__ -> x__ {_File'errors = y__}))\n        (Lens.Family2.Unchecked.lens\n           Data.Vector.Generic.toList\n           (\\ _ y__ -> Data.Vector.Generic.fromList y__))\ninstance Data.ProtoLens.Field.HasField File \"vec'errors\" (Data.Vector.Vector ParseError) where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _File'errors (\\ x__ y__ -> x__ {_File'errors = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField File \"blobOid\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _File'blobOid (\\ x__ y__ -> x__ {_File'blobOid = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Message File where\n  messageName _ = Data.Text.pack \"github.semantic.File\"\n  packedMessageDescriptor _\n    = \"\\n\\\n      \\\\EOTFile\\DC2\\DC2\\n\\\n      \\\\EOTpath\\CAN\\SOH \\SOH(\\tR\\EOTpath\\DC2\\SUB\\n\\\n      \\\\blanguage\\CAN\\STX \\SOH(\\tR\\blanguage\\DC21\\n\\\n      \\\\asymbols\\CAN\\ETX \\ETX(\\v2\\ETB.github.semantic.SymbolR\\asymbols\\DC23\\n\\\n      \\\\ACKerrors\\CAN\\EOT \\ETX(\\v2\\ESC.github.semantic.ParseErrorR\\ACKerrors\\DC2\\EM\\n\\\n      \\\\bblob_oid\\CAN\\ENQ \\SOH(\\tR\\ablobOid\"\n  packedFileDescriptor _ = packedFileDescriptor\n  fieldsByTag\n    = let\n        path__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"path\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"path\")) ::\n              Data.ProtoLens.FieldDescriptor File\n        language__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"language\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional\n                 (Data.ProtoLens.Field.field @\"language\")) ::\n              Data.ProtoLens.FieldDescriptor File\n        symbols__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"symbols\"\n              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::\n                 Data.ProtoLens.FieldTypeDescriptor Symbol)\n              (Data.ProtoLens.RepeatedField\n                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @\"symbols\")) ::\n              Data.ProtoLens.FieldDescriptor File\n        errors__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"errors\"\n              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::\n                 Data.ProtoLens.FieldTypeDescriptor ParseError)\n              (Data.ProtoLens.RepeatedField\n                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @\"errors\")) ::\n              Data.ProtoLens.FieldDescriptor File\n        blobOid__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"blob_oid\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"blobOid\")) ::\n              Data.ProtoLens.FieldDescriptor File\n      in\n        Data.Map.fromList\n          [(Data.ProtoLens.Tag 1, path__field_descriptor),\n           (Data.ProtoLens.Tag 2, language__field_descriptor),\n           (Data.ProtoLens.Tag 3, symbols__field_descriptor),\n           (Data.ProtoLens.Tag 4, errors__field_descriptor),\n           (Data.ProtoLens.Tag 5, blobOid__field_descriptor)]\n  unknownFields\n    = Lens.Family2.Unchecked.lens\n        _File'_unknownFields\n        (\\ x__ y__ -> x__ {_File'_unknownFields = y__})\n  defMessage\n    = File'_constructor\n        {_File'path = Data.ProtoLens.fieldDefault,\n         _File'language = Data.ProtoLens.fieldDefault,\n         _File'symbols = Data.Vector.Generic.empty,\n         _File'errors = Data.Vector.Generic.empty,\n         _File'blobOid = Data.ProtoLens.fieldDefault,\n         _File'_unknownFields = []}\n  parseMessage\n    = let\n        loop ::\n          File\n          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld ParseError\n             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Symbol\n                -> Data.ProtoLens.Encoding.Bytes.Parser File\n        loop x mutable'errors mutable'symbols\n          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd\n               if end then\n                   do frozen'errors <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                         (Data.ProtoLens.Encoding.Growing.unsafeFreeze\n                                            mutable'errors)\n                      frozen'symbols <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                          (Data.ProtoLens.Encoding.Growing.unsafeFreeze\n                                             mutable'symbols)\n                      (let missing = []\n                       in\n                         if Prelude.null missing then\n                             Prelude.return ()\n                         else\n                             Prelude.fail\n                               ((Prelude.++)\n                                  \"Missing required fields: \"\n                                  (Prelude.show (missing :: [Prelude.String]))))\n                      Prelude.return\n                        (Lens.Family2.over\n                           Data.ProtoLens.unknownFields\n                           (\\ !t -> Prelude.reverse t)\n                           (Lens.Family2.set\n                              (Data.ProtoLens.Field.field @\"vec'errors\")\n                              frozen'errors\n                              (Lens.Family2.set\n                                 (Data.ProtoLens.Field.field @\"vec'symbols\") frozen'symbols x)))\n               else\n                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                      case tag of\n                        10\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"path\"\n                                loop\n                                  (Lens.Family2.set (Data.ProtoLens.Field.field @\"path\") y x)\n                                  mutable'errors\n                                  mutable'symbols\n                        18\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"language\"\n                                loop\n                                  (Lens.Family2.set (Data.ProtoLens.Field.field @\"language\") y x)\n                                  mutable'errors\n                                  mutable'symbols\n                        26\n                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                            Data.ProtoLens.Encoding.Bytes.isolate\n                                              (Prelude.fromIntegral len)\n                                              Data.ProtoLens.parseMessage)\n                                        \"symbols\"\n                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                       (Data.ProtoLens.Encoding.Growing.append mutable'symbols y)\n                                loop x mutable'errors v\n                        34\n                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                            Data.ProtoLens.Encoding.Bytes.isolate\n                                              (Prelude.fromIntegral len)\n                                              Data.ProtoLens.parseMessage)\n                                        \"errors\"\n                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                       (Data.ProtoLens.Encoding.Growing.append mutable'errors y)\n                                loop x v mutable'symbols\n                        42\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"blob_oid\"\n                                loop\n                                  (Lens.Family2.set (Data.ProtoLens.Field.field @\"blobOid\") y x)\n                                  mutable'errors\n                                  mutable'symbols\n                        wire\n                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire\n                                        wire\n                                loop\n                                  (Lens.Family2.over\n                                     Data.ProtoLens.unknownFields (\\ !t -> (:) y t) x)\n                                  mutable'errors\n                                  mutable'symbols\n      in\n        (Data.ProtoLens.Encoding.Bytes.<?>)\n          (do mutable'errors <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                  Data.ProtoLens.Encoding.Growing.new\n              mutable'symbols <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                   Data.ProtoLens.Encoding.Growing.new\n              loop Data.ProtoLens.defMessage mutable'errors mutable'symbols)\n          \"File\"\n  buildMessage\n    = \\ _x\n        -> (Data.Monoid.<>)\n             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"path\") _x\n              in\n                if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                    Data.Monoid.mempty\n                else\n                    (Data.Monoid.<>)\n                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)\n                      ((Prelude..)\n                         (\\ bs\n                            -> (Data.Monoid.<>)\n                                 (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                    (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                         Data.Text.Encoding.encodeUtf8\n                         _v))\n             ((Data.Monoid.<>)\n                (let\n                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"language\") _x\n                 in\n                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                       Data.Monoid.mempty\n                   else\n                       (Data.Monoid.<>)\n                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)\n                         ((Prelude..)\n                            (\\ bs\n                               -> (Data.Monoid.<>)\n                                    (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                       (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                            Data.Text.Encoding.encodeUtf8\n                            _v))\n                ((Data.Monoid.<>)\n                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder\n                      (\\ _v\n                         -> (Data.Monoid.<>)\n                              (Data.ProtoLens.Encoding.Bytes.putVarInt 26)\n                              ((Prelude..)\n                                 (\\ bs\n                                    -> (Data.Monoid.<>)\n                                         (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                            (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                                 Data.ProtoLens.encodeMessage\n                                 _v))\n                      (Lens.Family2.view (Data.ProtoLens.Field.field @\"vec'symbols\") _x))\n                   ((Data.Monoid.<>)\n                      (Data.ProtoLens.Encoding.Bytes.foldMapBuilder\n                         (\\ _v\n                            -> (Data.Monoid.<>)\n                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 34)\n                                 ((Prelude..)\n                                    (\\ bs\n                                       -> (Data.Monoid.<>)\n                                            (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                               (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                            (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                                    Data.ProtoLens.encodeMessage\n                                    _v))\n                         (Lens.Family2.view (Data.ProtoLens.Field.field @\"vec'errors\") _x))\n                      ((Data.Monoid.<>)\n                         (let\n                            _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"blobOid\") _x\n                          in\n                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                                Data.Monoid.mempty\n                            else\n                                (Data.Monoid.<>)\n                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 42)\n                                  ((Prelude..)\n                                     (\\ bs\n                                        -> (Data.Monoid.<>)\n                                             (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                                (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                             (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                                     Data.Text.Encoding.encodeUtf8\n                                     _v))\n                         (Data.ProtoLens.Encoding.Wire.buildFieldSet\n                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))\ninstance Control.DeepSeq.NFData File where\n  rnf\n    = \\ x__\n        -> Control.DeepSeq.deepseq\n             (_File'_unknownFields x__)\n             (Control.DeepSeq.deepseq\n                (_File'path x__)\n                (Control.DeepSeq.deepseq\n                   (_File'language x__)\n                   (Control.DeepSeq.deepseq\n                      (_File'symbols x__)\n                      (Control.DeepSeq.deepseq\n                         (_File'errors x__)\n                         (Control.DeepSeq.deepseq (_File'blobOid x__) ())))))\nnewtype NodeType'UnrecognizedValue\n  = NodeType'UnrecognizedValue Data.Int.Int32\n  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)\ndata NodeType\n  = ROOT_SCOPE |\n    JUMP_TO_SCOPE |\n    EXPORTED_SCOPE |\n    DEFINITION |\n    REFERENCE |\n    NodeType'Unrecognized !NodeType'UnrecognizedValue\n  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)\ninstance Data.ProtoLens.MessageEnum NodeType where\n  maybeToEnum 0 = Prelude.Just ROOT_SCOPE\n  maybeToEnum 1 = Prelude.Just JUMP_TO_SCOPE\n  maybeToEnum 2 = Prelude.Just EXPORTED_SCOPE\n  maybeToEnum 3 = Prelude.Just DEFINITION\n  maybeToEnum 4 = Prelude.Just REFERENCE\n  maybeToEnum k\n    = Prelude.Just\n        (NodeType'Unrecognized\n           (NodeType'UnrecognizedValue (Prelude.fromIntegral k)))\n  showEnum ROOT_SCOPE = \"ROOT_SCOPE\"\n  showEnum JUMP_TO_SCOPE = \"JUMP_TO_SCOPE\"\n  showEnum EXPORTED_SCOPE = \"EXPORTED_SCOPE\"\n  showEnum DEFINITION = \"DEFINITION\"\n  showEnum REFERENCE = \"REFERENCE\"\n  showEnum (NodeType'Unrecognized (NodeType'UnrecognizedValue k))\n    = Prelude.show k\n  readEnum k\n    | (Prelude.==) k \"ROOT_SCOPE\" = Prelude.Just ROOT_SCOPE\n    | (Prelude.==) k \"JUMP_TO_SCOPE\" = Prelude.Just JUMP_TO_SCOPE\n    | (Prelude.==) k \"EXPORTED_SCOPE\" = Prelude.Just EXPORTED_SCOPE\n    | (Prelude.==) k \"DEFINITION\" = Prelude.Just DEFINITION\n    | (Prelude.==) k \"REFERENCE\" = Prelude.Just REFERENCE\n    | Prelude.otherwise\n    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum\ninstance Prelude.Bounded NodeType where\n  minBound = ROOT_SCOPE\n  maxBound = REFERENCE\ninstance Prelude.Enum NodeType where\n  toEnum k__\n    = Prelude.maybe\n        (Prelude.error\n           ((Prelude.++)\n              \"toEnum: unknown value for enum NodeType: \" (Prelude.show k__)))\n        Prelude.id\n        (Data.ProtoLens.maybeToEnum k__)\n  fromEnum ROOT_SCOPE = 0\n  fromEnum JUMP_TO_SCOPE = 1\n  fromEnum EXPORTED_SCOPE = 2\n  fromEnum DEFINITION = 3\n  fromEnum REFERENCE = 4\n  fromEnum (NodeType'Unrecognized (NodeType'UnrecognizedValue k))\n    = Prelude.fromIntegral k\n  succ REFERENCE\n    = Prelude.error\n        \"NodeType.succ: bad argument REFERENCE. This value would be out of bounds.\"\n  succ ROOT_SCOPE = JUMP_TO_SCOPE\n  succ JUMP_TO_SCOPE = EXPORTED_SCOPE\n  succ EXPORTED_SCOPE = DEFINITION\n  succ DEFINITION = REFERENCE\n  succ (NodeType'Unrecognized _)\n    = Prelude.error \"NodeType.succ: bad argument: unrecognized value\"\n  pred ROOT_SCOPE\n    = Prelude.error\n        \"NodeType.pred: bad argument ROOT_SCOPE. This value would be out of bounds.\"\n  pred JUMP_TO_SCOPE = ROOT_SCOPE\n  pred EXPORTED_SCOPE = JUMP_TO_SCOPE\n  pred DEFINITION = EXPORTED_SCOPE\n  pred REFERENCE = DEFINITION\n  pred (NodeType'Unrecognized _)\n    = Prelude.error \"NodeType.pred: bad argument: unrecognized value\"\n  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom\n  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo\n  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen\n  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo\ninstance Data.ProtoLens.FieldDefault NodeType where\n  fieldDefault = ROOT_SCOPE\ninstance Control.DeepSeq.NFData NodeType where\n  rnf x__ = Prelude.seq x__ ()\n{- | Fields :\n     \n         * 'Proto.Semantic_Fields.error' @:: Lens' ParseError Data.Text.Text@ -}\ndata ParseError\n  = ParseError'_constructor {_ParseError'error :: !Data.Text.Text,\n                             _ParseError'_unknownFields :: !Data.ProtoLens.FieldSet}\n  deriving stock (Prelude.Eq, Prelude.Ord)\ninstance Prelude.Show ParseError where\n  showsPrec _ __x __s\n    = Prelude.showChar\n        '{'\n        (Prelude.showString\n           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))\ninstance Data.ProtoLens.Field.HasField ParseError \"error\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _ParseError'error (\\ x__ y__ -> x__ {_ParseError'error = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Message ParseError where\n  messageName _ = Data.Text.pack \"github.semantic.ParseError\"\n  packedMessageDescriptor _\n    = \"\\n\\\n      \\\\n\\\n      \\ParseError\\DC2\\DC4\\n\\\n      \\\\ENQerror\\CAN\\SOH \\SOH(\\tR\\ENQerror\"\n  packedFileDescriptor _ = packedFileDescriptor\n  fieldsByTag\n    = let\n        error__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"error\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"error\")) ::\n              Data.ProtoLens.FieldDescriptor ParseError\n      in\n        Data.Map.fromList [(Data.ProtoLens.Tag 1, error__field_descriptor)]\n  unknownFields\n    = Lens.Family2.Unchecked.lens\n        _ParseError'_unknownFields\n        (\\ x__ y__ -> x__ {_ParseError'_unknownFields = y__})\n  defMessage\n    = ParseError'_constructor\n        {_ParseError'error = Data.ProtoLens.fieldDefault,\n         _ParseError'_unknownFields = []}\n  parseMessage\n    = let\n        loop ::\n          ParseError -> Data.ProtoLens.Encoding.Bytes.Parser ParseError\n        loop x\n          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd\n               if end then\n                   do (let missing = []\n                       in\n                         if Prelude.null missing then\n                             Prelude.return ()\n                         else\n                             Prelude.fail\n                               ((Prelude.++)\n                                  \"Missing required fields: \"\n                                  (Prelude.show (missing :: [Prelude.String]))))\n                      Prelude.return\n                        (Lens.Family2.over\n                           Data.ProtoLens.unknownFields (\\ !t -> Prelude.reverse t) x)\n               else\n                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                      case tag of\n                        10\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"error\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"error\") y x)\n                        wire\n                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire\n                                        wire\n                                loop\n                                  (Lens.Family2.over\n                                     Data.ProtoLens.unknownFields (\\ !t -> (:) y t) x)\n      in\n        (Data.ProtoLens.Encoding.Bytes.<?>)\n          (do loop Data.ProtoLens.defMessage) \"ParseError\"\n  buildMessage\n    = \\ _x\n        -> (Data.Monoid.<>)\n             (let\n                _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"error\") _x\n              in\n                if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                    Data.Monoid.mempty\n                else\n                    (Data.Monoid.<>)\n                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)\n                      ((Prelude..)\n                         (\\ bs\n                            -> (Data.Monoid.<>)\n                                 (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                    (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                         Data.Text.Encoding.encodeUtf8\n                         _v))\n             (Data.ProtoLens.Encoding.Wire.buildFieldSet\n                (Lens.Family2.view Data.ProtoLens.unknownFields _x))\ninstance Control.DeepSeq.NFData ParseError where\n  rnf\n    = \\ x__\n        -> Control.DeepSeq.deepseq\n             (_ParseError'_unknownFields x__)\n             (Control.DeepSeq.deepseq (_ParseError'error x__) ())\n{- | Fields :\n     \n         * 'Proto.Semantic_Fields.blobs' @:: Lens' ParseTreeRequest [Blob]@\n         * 'Proto.Semantic_Fields.vec'blobs' @:: Lens' ParseTreeRequest (Data.Vector.Vector Blob)@ -}\ndata ParseTreeRequest\n  = ParseTreeRequest'_constructor {_ParseTreeRequest'blobs :: !(Data.Vector.Vector Blob),\n                                   _ParseTreeRequest'_unknownFields :: !Data.ProtoLens.FieldSet}\n  deriving stock (Prelude.Eq, Prelude.Ord)\ninstance Prelude.Show ParseTreeRequest where\n  showsPrec _ __x __s\n    = Prelude.showChar\n        '{'\n        (Prelude.showString\n           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))\ninstance Data.ProtoLens.Field.HasField ParseTreeRequest \"blobs\" [Blob] where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _ParseTreeRequest'blobs\n           (\\ x__ y__ -> x__ {_ParseTreeRequest'blobs = y__}))\n        (Lens.Family2.Unchecked.lens\n           Data.Vector.Generic.toList\n           (\\ _ y__ -> Data.Vector.Generic.fromList y__))\ninstance Data.ProtoLens.Field.HasField ParseTreeRequest \"vec'blobs\" (Data.Vector.Vector Blob) where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _ParseTreeRequest'blobs\n           (\\ x__ y__ -> x__ {_ParseTreeRequest'blobs = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Message ParseTreeRequest where\n  messageName _ = Data.Text.pack \"github.semantic.ParseTreeRequest\"\n  packedMessageDescriptor _\n    = \"\\n\\\n      \\\\DLEParseTreeRequest\\DC2+\\n\\\n      \\\\ENQblobs\\CAN\\SOH \\ETX(\\v2\\NAK.github.semantic.BlobR\\ENQblobs\"\n  packedFileDescriptor _ = packedFileDescriptor\n  fieldsByTag\n    = let\n        blobs__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"blobs\"\n              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::\n                 Data.ProtoLens.FieldTypeDescriptor Blob)\n              (Data.ProtoLens.RepeatedField\n                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @\"blobs\")) ::\n              Data.ProtoLens.FieldDescriptor ParseTreeRequest\n      in\n        Data.Map.fromList [(Data.ProtoLens.Tag 1, blobs__field_descriptor)]\n  unknownFields\n    = Lens.Family2.Unchecked.lens\n        _ParseTreeRequest'_unknownFields\n        (\\ x__ y__ -> x__ {_ParseTreeRequest'_unknownFields = y__})\n  defMessage\n    = ParseTreeRequest'_constructor\n        {_ParseTreeRequest'blobs = Data.Vector.Generic.empty,\n         _ParseTreeRequest'_unknownFields = []}\n  parseMessage\n    = let\n        loop ::\n          ParseTreeRequest\n          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Blob\n             -> Data.ProtoLens.Encoding.Bytes.Parser ParseTreeRequest\n        loop x mutable'blobs\n          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd\n               if end then\n                   do frozen'blobs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'blobs)\n                      (let missing = []\n                       in\n                         if Prelude.null missing then\n                             Prelude.return ()\n                         else\n                             Prelude.fail\n                               ((Prelude.++)\n                                  \"Missing required fields: \"\n                                  (Prelude.show (missing :: [Prelude.String]))))\n                      Prelude.return\n                        (Lens.Family2.over\n                           Data.ProtoLens.unknownFields\n                           (\\ !t -> Prelude.reverse t)\n                           (Lens.Family2.set\n                              (Data.ProtoLens.Field.field @\"vec'blobs\") frozen'blobs x))\n               else\n                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                      case tag of\n                        10\n                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                            Data.ProtoLens.Encoding.Bytes.isolate\n                                              (Prelude.fromIntegral len)\n                                              Data.ProtoLens.parseMessage)\n                                        \"blobs\"\n                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                       (Data.ProtoLens.Encoding.Growing.append mutable'blobs y)\n                                loop x v\n                        wire\n                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire\n                                        wire\n                                loop\n                                  (Lens.Family2.over\n                                     Data.ProtoLens.unknownFields (\\ !t -> (:) y t) x)\n                                  mutable'blobs\n      in\n        (Data.ProtoLens.Encoding.Bytes.<?>)\n          (do mutable'blobs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                 Data.ProtoLens.Encoding.Growing.new\n              loop Data.ProtoLens.defMessage mutable'blobs)\n          \"ParseTreeRequest\"\n  buildMessage\n    = \\ _x\n        -> (Data.Monoid.<>)\n             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder\n                (\\ _v\n                   -> (Data.Monoid.<>)\n                        (Data.ProtoLens.Encoding.Bytes.putVarInt 10)\n                        ((Prelude..)\n                           (\\ bs\n                              -> (Data.Monoid.<>)\n                                   (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                      (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                           Data.ProtoLens.encodeMessage\n                           _v))\n                (Lens.Family2.view (Data.ProtoLens.Field.field @\"vec'blobs\") _x))\n             (Data.ProtoLens.Encoding.Wire.buildFieldSet\n                (Lens.Family2.view Data.ProtoLens.unknownFields _x))\ninstance Control.DeepSeq.NFData ParseTreeRequest where\n  rnf\n    = \\ x__\n        -> Control.DeepSeq.deepseq\n             (_ParseTreeRequest'_unknownFields x__)\n             (Control.DeepSeq.deepseq (_ParseTreeRequest'blobs x__) ())\n{- | Fields :\n     \n         * 'Proto.Semantic_Fields.files' @:: Lens' ParseTreeSymbolResponse [File]@\n         * 'Proto.Semantic_Fields.vec'files' @:: Lens' ParseTreeSymbolResponse (Data.Vector.Vector File)@ -}\ndata ParseTreeSymbolResponse\n  = ParseTreeSymbolResponse'_constructor {_ParseTreeSymbolResponse'files :: !(Data.Vector.Vector File),\n                                          _ParseTreeSymbolResponse'_unknownFields :: !Data.ProtoLens.FieldSet}\n  deriving stock (Prelude.Eq, Prelude.Ord)\ninstance Prelude.Show ParseTreeSymbolResponse where\n  showsPrec _ __x __s\n    = Prelude.showChar\n        '{'\n        (Prelude.showString\n           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))\ninstance Data.ProtoLens.Field.HasField ParseTreeSymbolResponse \"files\" [File] where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _ParseTreeSymbolResponse'files\n           (\\ x__ y__ -> x__ {_ParseTreeSymbolResponse'files = y__}))\n        (Lens.Family2.Unchecked.lens\n           Data.Vector.Generic.toList\n           (\\ _ y__ -> Data.Vector.Generic.fromList y__))\ninstance Data.ProtoLens.Field.HasField ParseTreeSymbolResponse \"vec'files\" (Data.Vector.Vector File) where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _ParseTreeSymbolResponse'files\n           (\\ x__ y__ -> x__ {_ParseTreeSymbolResponse'files = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Message ParseTreeSymbolResponse where\n  messageName _\n    = Data.Text.pack \"github.semantic.ParseTreeSymbolResponse\"\n  packedMessageDescriptor _\n    = \"\\n\\\n      \\\\ETBParseTreeSymbolResponse\\DC2+\\n\\\n      \\\\ENQfiles\\CAN\\SOH \\ETX(\\v2\\NAK.github.semantic.FileR\\ENQfiles\"\n  packedFileDescriptor _ = packedFileDescriptor\n  fieldsByTag\n    = let\n        files__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"files\"\n              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::\n                 Data.ProtoLens.FieldTypeDescriptor File)\n              (Data.ProtoLens.RepeatedField\n                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @\"files\")) ::\n              Data.ProtoLens.FieldDescriptor ParseTreeSymbolResponse\n      in\n        Data.Map.fromList [(Data.ProtoLens.Tag 1, files__field_descriptor)]\n  unknownFields\n    = Lens.Family2.Unchecked.lens\n        _ParseTreeSymbolResponse'_unknownFields\n        (\\ x__ y__ -> x__ {_ParseTreeSymbolResponse'_unknownFields = y__})\n  defMessage\n    = ParseTreeSymbolResponse'_constructor\n        {_ParseTreeSymbolResponse'files = Data.Vector.Generic.empty,\n         _ParseTreeSymbolResponse'_unknownFields = []}\n  parseMessage\n    = let\n        loop ::\n          ParseTreeSymbolResponse\n          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld File\n             -> Data.ProtoLens.Encoding.Bytes.Parser ParseTreeSymbolResponse\n        loop x mutable'files\n          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd\n               if end then\n                   do frozen'files <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'files)\n                      (let missing = []\n                       in\n                         if Prelude.null missing then\n                             Prelude.return ()\n                         else\n                             Prelude.fail\n                               ((Prelude.++)\n                                  \"Missing required fields: \"\n                                  (Prelude.show (missing :: [Prelude.String]))))\n                      Prelude.return\n                        (Lens.Family2.over\n                           Data.ProtoLens.unknownFields\n                           (\\ !t -> Prelude.reverse t)\n                           (Lens.Family2.set\n                              (Data.ProtoLens.Field.field @\"vec'files\") frozen'files x))\n               else\n                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                      case tag of\n                        10\n                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                            Data.ProtoLens.Encoding.Bytes.isolate\n                                              (Prelude.fromIntegral len)\n                                              Data.ProtoLens.parseMessage)\n                                        \"files\"\n                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                       (Data.ProtoLens.Encoding.Growing.append mutable'files y)\n                                loop x v\n                        wire\n                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire\n                                        wire\n                                loop\n                                  (Lens.Family2.over\n                                     Data.ProtoLens.unknownFields (\\ !t -> (:) y t) x)\n                                  mutable'files\n      in\n        (Data.ProtoLens.Encoding.Bytes.<?>)\n          (do mutable'files <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                 Data.ProtoLens.Encoding.Growing.new\n              loop Data.ProtoLens.defMessage mutable'files)\n          \"ParseTreeSymbolResponse\"\n  buildMessage\n    = \\ _x\n        -> (Data.Monoid.<>)\n             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder\n                (\\ _v\n                   -> (Data.Monoid.<>)\n                        (Data.ProtoLens.Encoding.Bytes.putVarInt 10)\n                        ((Prelude..)\n                           (\\ bs\n                              -> (Data.Monoid.<>)\n                                   (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                      (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                           Data.ProtoLens.encodeMessage\n                           _v))\n                (Lens.Family2.view (Data.ProtoLens.Field.field @\"vec'files\") _x))\n             (Data.ProtoLens.Encoding.Wire.buildFieldSet\n                (Lens.Family2.view Data.ProtoLens.unknownFields _x))\ninstance Control.DeepSeq.NFData ParseTreeSymbolResponse where\n  rnf\n    = \\ x__\n        -> Control.DeepSeq.deepseq\n             (_ParseTreeSymbolResponse'_unknownFields x__)\n             (Control.DeepSeq.deepseq (_ParseTreeSymbolResponse'files x__) ())\n{- | Fields :\n     \n         * 'Proto.Semantic_Fields.service' @:: Lens' PingRequest Data.Text.Text@ -}\ndata PingRequest\n  = PingRequest'_constructor {_PingRequest'service :: !Data.Text.Text,\n                              _PingRequest'_unknownFields :: !Data.ProtoLens.FieldSet}\n  deriving stock (Prelude.Eq, Prelude.Ord)\ninstance Prelude.Show PingRequest where\n  showsPrec _ __x __s\n    = Prelude.showChar\n        '{'\n        (Prelude.showString\n           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))\ninstance Data.ProtoLens.Field.HasField PingRequest \"service\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _PingRequest'service\n           (\\ x__ y__ -> x__ {_PingRequest'service = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Message PingRequest where\n  messageName _ = Data.Text.pack \"github.semantic.PingRequest\"\n  packedMessageDescriptor _\n    = \"\\n\\\n      \\\\vPingRequest\\DC2\\CAN\\n\\\n      \\\\aservice\\CAN\\SOH \\SOH(\\tR\\aservice\"\n  packedFileDescriptor _ = packedFileDescriptor\n  fieldsByTag\n    = let\n        service__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"service\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"service\")) ::\n              Data.ProtoLens.FieldDescriptor PingRequest\n      in\n        Data.Map.fromList\n          [(Data.ProtoLens.Tag 1, service__field_descriptor)]\n  unknownFields\n    = Lens.Family2.Unchecked.lens\n        _PingRequest'_unknownFields\n        (\\ x__ y__ -> x__ {_PingRequest'_unknownFields = y__})\n  defMessage\n    = PingRequest'_constructor\n        {_PingRequest'service = Data.ProtoLens.fieldDefault,\n         _PingRequest'_unknownFields = []}\n  parseMessage\n    = let\n        loop ::\n          PingRequest -> Data.ProtoLens.Encoding.Bytes.Parser PingRequest\n        loop x\n          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd\n               if end then\n                   do (let missing = []\n                       in\n                         if Prelude.null missing then\n                             Prelude.return ()\n                         else\n                             Prelude.fail\n                               ((Prelude.++)\n                                  \"Missing required fields: \"\n                                  (Prelude.show (missing :: [Prelude.String]))))\n                      Prelude.return\n                        (Lens.Family2.over\n                           Data.ProtoLens.unknownFields (\\ !t -> Prelude.reverse t) x)\n               else\n                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                      case tag of\n                        10\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"service\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"service\") y x)\n                        wire\n                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire\n                                        wire\n                                loop\n                                  (Lens.Family2.over\n                                     Data.ProtoLens.unknownFields (\\ !t -> (:) y t) x)\n      in\n        (Data.ProtoLens.Encoding.Bytes.<?>)\n          (do loop Data.ProtoLens.defMessage) \"PingRequest\"\n  buildMessage\n    = \\ _x\n        -> (Data.Monoid.<>)\n             (let\n                _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"service\") _x\n              in\n                if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                    Data.Monoid.mempty\n                else\n                    (Data.Monoid.<>)\n                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)\n                      ((Prelude..)\n                         (\\ bs\n                            -> (Data.Monoid.<>)\n                                 (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                    (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                         Data.Text.Encoding.encodeUtf8\n                         _v))\n             (Data.ProtoLens.Encoding.Wire.buildFieldSet\n                (Lens.Family2.view Data.ProtoLens.unknownFields _x))\ninstance Control.DeepSeq.NFData PingRequest where\n  rnf\n    = \\ x__\n        -> Control.DeepSeq.deepseq\n             (_PingRequest'_unknownFields x__)\n             (Control.DeepSeq.deepseq (_PingRequest'service x__) ())\n{- | Fields :\n     \n         * 'Proto.Semantic_Fields.status' @:: Lens' PingResponse Data.Text.Text@\n         * 'Proto.Semantic_Fields.hostname' @:: Lens' PingResponse Data.Text.Text@\n         * 'Proto.Semantic_Fields.timestamp' @:: Lens' PingResponse Data.Text.Text@\n         * 'Proto.Semantic_Fields.sha' @:: Lens' PingResponse Data.Text.Text@ -}\ndata PingResponse\n  = PingResponse'_constructor {_PingResponse'status :: !Data.Text.Text,\n                               _PingResponse'hostname :: !Data.Text.Text,\n                               _PingResponse'timestamp :: !Data.Text.Text,\n                               _PingResponse'sha :: !Data.Text.Text,\n                               _PingResponse'_unknownFields :: !Data.ProtoLens.FieldSet}\n  deriving stock (Prelude.Eq, Prelude.Ord)\ninstance Prelude.Show PingResponse where\n  showsPrec _ __x __s\n    = Prelude.showChar\n        '{'\n        (Prelude.showString\n           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))\ninstance Data.ProtoLens.Field.HasField PingResponse \"status\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _PingResponse'status\n           (\\ x__ y__ -> x__ {_PingResponse'status = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField PingResponse \"hostname\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _PingResponse'hostname\n           (\\ x__ y__ -> x__ {_PingResponse'hostname = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField PingResponse \"timestamp\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _PingResponse'timestamp\n           (\\ x__ y__ -> x__ {_PingResponse'timestamp = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField PingResponse \"sha\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _PingResponse'sha (\\ x__ y__ -> x__ {_PingResponse'sha = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Message PingResponse where\n  messageName _ = Data.Text.pack \"github.semantic.PingResponse\"\n  packedMessageDescriptor _\n    = \"\\n\\\n      \\\\fPingResponse\\DC2\\SYN\\n\\\n      \\\\ACKstatus\\CAN\\SOH \\SOH(\\tR\\ACKstatus\\DC2\\SUB\\n\\\n      \\\\bhostname\\CAN\\STX \\SOH(\\tR\\bhostname\\DC2\\FS\\n\\\n      \\\\ttimestamp\\CAN\\ETX \\SOH(\\tR\\ttimestamp\\DC2\\DLE\\n\\\n      \\\\ETXsha\\CAN\\EOT \\SOH(\\tR\\ETXsha\"\n  packedFileDescriptor _ = packedFileDescriptor\n  fieldsByTag\n    = let\n        status__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"status\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"status\")) ::\n              Data.ProtoLens.FieldDescriptor PingResponse\n        hostname__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"hostname\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional\n                 (Data.ProtoLens.Field.field @\"hostname\")) ::\n              Data.ProtoLens.FieldDescriptor PingResponse\n        timestamp__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"timestamp\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional\n                 (Data.ProtoLens.Field.field @\"timestamp\")) ::\n              Data.ProtoLens.FieldDescriptor PingResponse\n        sha__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"sha\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"sha\")) ::\n              Data.ProtoLens.FieldDescriptor PingResponse\n      in\n        Data.Map.fromList\n          [(Data.ProtoLens.Tag 1, status__field_descriptor),\n           (Data.ProtoLens.Tag 2, hostname__field_descriptor),\n           (Data.ProtoLens.Tag 3, timestamp__field_descriptor),\n           (Data.ProtoLens.Tag 4, sha__field_descriptor)]\n  unknownFields\n    = Lens.Family2.Unchecked.lens\n        _PingResponse'_unknownFields\n        (\\ x__ y__ -> x__ {_PingResponse'_unknownFields = y__})\n  defMessage\n    = PingResponse'_constructor\n        {_PingResponse'status = Data.ProtoLens.fieldDefault,\n         _PingResponse'hostname = Data.ProtoLens.fieldDefault,\n         _PingResponse'timestamp = Data.ProtoLens.fieldDefault,\n         _PingResponse'sha = Data.ProtoLens.fieldDefault,\n         _PingResponse'_unknownFields = []}\n  parseMessage\n    = let\n        loop ::\n          PingResponse -> Data.ProtoLens.Encoding.Bytes.Parser PingResponse\n        loop x\n          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd\n               if end then\n                   do (let missing = []\n                       in\n                         if Prelude.null missing then\n                             Prelude.return ()\n                         else\n                             Prelude.fail\n                               ((Prelude.++)\n                                  \"Missing required fields: \"\n                                  (Prelude.show (missing :: [Prelude.String]))))\n                      Prelude.return\n                        (Lens.Family2.over\n                           Data.ProtoLens.unknownFields (\\ !t -> Prelude.reverse t) x)\n               else\n                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                      case tag of\n                        10\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"status\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"status\") y x)\n                        18\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"hostname\"\n                                loop\n                                  (Lens.Family2.set (Data.ProtoLens.Field.field @\"hostname\") y x)\n                        26\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"timestamp\"\n                                loop\n                                  (Lens.Family2.set (Data.ProtoLens.Field.field @\"timestamp\") y x)\n                        34\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"sha\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"sha\") y x)\n                        wire\n                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire\n                                        wire\n                                loop\n                                  (Lens.Family2.over\n                                     Data.ProtoLens.unknownFields (\\ !t -> (:) y t) x)\n      in\n        (Data.ProtoLens.Encoding.Bytes.<?>)\n          (do loop Data.ProtoLens.defMessage) \"PingResponse\"\n  buildMessage\n    = \\ _x\n        -> (Data.Monoid.<>)\n             (let\n                _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"status\") _x\n              in\n                if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                    Data.Monoid.mempty\n                else\n                    (Data.Monoid.<>)\n                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)\n                      ((Prelude..)\n                         (\\ bs\n                            -> (Data.Monoid.<>)\n                                 (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                    (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                         Data.Text.Encoding.encodeUtf8\n                         _v))\n             ((Data.Monoid.<>)\n                (let\n                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"hostname\") _x\n                 in\n                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                       Data.Monoid.mempty\n                   else\n                       (Data.Monoid.<>)\n                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)\n                         ((Prelude..)\n                            (\\ bs\n                               -> (Data.Monoid.<>)\n                                    (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                       (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                            Data.Text.Encoding.encodeUtf8\n                            _v))\n                ((Data.Monoid.<>)\n                   (let\n                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"timestamp\") _x\n                    in\n                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                          Data.Monoid.mempty\n                      else\n                          (Data.Monoid.<>)\n                            (Data.ProtoLens.Encoding.Bytes.putVarInt 26)\n                            ((Prelude..)\n                               (\\ bs\n                                  -> (Data.Monoid.<>)\n                                       (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                          (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                               Data.Text.Encoding.encodeUtf8\n                               _v))\n                   ((Data.Monoid.<>)\n                      (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"sha\") _x\n                       in\n                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                             Data.Monoid.mempty\n                         else\n                             (Data.Monoid.<>)\n                               (Data.ProtoLens.Encoding.Bytes.putVarInt 34)\n                               ((Prelude..)\n                                  (\\ bs\n                                     -> (Data.Monoid.<>)\n                                          (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                             (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                          (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                                  Data.Text.Encoding.encodeUtf8\n                                  _v))\n                      (Data.ProtoLens.Encoding.Wire.buildFieldSet\n                         (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))\ninstance Control.DeepSeq.NFData PingResponse where\n  rnf\n    = \\ x__\n        -> Control.DeepSeq.deepseq\n             (_PingResponse'_unknownFields x__)\n             (Control.DeepSeq.deepseq\n                (_PingResponse'status x__)\n                (Control.DeepSeq.deepseq\n                   (_PingResponse'hostname x__)\n                   (Control.DeepSeq.deepseq\n                      (_PingResponse'timestamp x__)\n                      (Control.DeepSeq.deepseq (_PingResponse'sha x__) ()))))\n{- | Fields :\n     \n         * 'Proto.Semantic_Fields.line' @:: Lens' Position Data.Int.Int32@\n         * 'Proto.Semantic_Fields.column' @:: Lens' Position Data.Int.Int32@ -}\ndata Position\n  = Position'_constructor {_Position'line :: !Data.Int.Int32,\n                           _Position'column :: !Data.Int.Int32,\n                           _Position'_unknownFields :: !Data.ProtoLens.FieldSet}\n  deriving stock (Prelude.Eq, Prelude.Ord)\ninstance Prelude.Show Position where\n  showsPrec _ __x __s\n    = Prelude.showChar\n        '{'\n        (Prelude.showString\n           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))\ninstance Data.ProtoLens.Field.HasField Position \"line\" Data.Int.Int32 where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Position'line (\\ x__ y__ -> x__ {_Position'line = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField Position \"column\" Data.Int.Int32 where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Position'column (\\ x__ y__ -> x__ {_Position'column = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Message Position where\n  messageName _ = Data.Text.pack \"github.semantic.Position\"\n  packedMessageDescriptor _\n    = \"\\n\\\n      \\\\bPosition\\DC2\\DC2\\n\\\n      \\\\EOTline\\CAN\\SOH \\SOH(\\ENQR\\EOTline\\DC2\\SYN\\n\\\n      \\\\ACKcolumn\\CAN\\STX \\SOH(\\ENQR\\ACKcolumn\"\n  packedFileDescriptor _ = packedFileDescriptor\n  fieldsByTag\n    = let\n        line__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"line\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"line\")) ::\n              Data.ProtoLens.FieldDescriptor Position\n        column__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"column\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"column\")) ::\n              Data.ProtoLens.FieldDescriptor Position\n      in\n        Data.Map.fromList\n          [(Data.ProtoLens.Tag 1, line__field_descriptor),\n           (Data.ProtoLens.Tag 2, column__field_descriptor)]\n  unknownFields\n    = Lens.Family2.Unchecked.lens\n        _Position'_unknownFields\n        (\\ x__ y__ -> x__ {_Position'_unknownFields = y__})\n  defMessage\n    = Position'_constructor\n        {_Position'line = Data.ProtoLens.fieldDefault,\n         _Position'column = Data.ProtoLens.fieldDefault,\n         _Position'_unknownFields = []}\n  parseMessage\n    = let\n        loop :: Position -> Data.ProtoLens.Encoding.Bytes.Parser Position\n        loop x\n          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd\n               if end then\n                   do (let missing = []\n                       in\n                         if Prelude.null missing then\n                             Prelude.return ()\n                         else\n                             Prelude.fail\n                               ((Prelude.++)\n                                  \"Missing required fields: \"\n                                  (Prelude.show (missing :: [Prelude.String]))))\n                      Prelude.return\n                        (Lens.Family2.over\n                           Data.ProtoLens.unknownFields (\\ !t -> Prelude.reverse t) x)\n               else\n                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                      case tag of\n                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (Prelude.fmap\n                                          Prelude.fromIntegral\n                                          Data.ProtoLens.Encoding.Bytes.getVarInt)\n                                       \"line\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"line\") y x)\n                        16\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (Prelude.fmap\n                                          Prelude.fromIntegral\n                                          Data.ProtoLens.Encoding.Bytes.getVarInt)\n                                       \"column\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"column\") y x)\n                        wire\n                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire\n                                        wire\n                                loop\n                                  (Lens.Family2.over\n                                     Data.ProtoLens.unknownFields (\\ !t -> (:) y t) x)\n      in\n        (Data.ProtoLens.Encoding.Bytes.<?>)\n          (do loop Data.ProtoLens.defMessage) \"Position\"\n  buildMessage\n    = \\ _x\n        -> (Data.Monoid.<>)\n             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"line\") _x\n              in\n                if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                    Data.Monoid.mempty\n                else\n                    (Data.Monoid.<>)\n                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)\n                      ((Prelude..)\n                         Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))\n             ((Data.Monoid.<>)\n                (let\n                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"column\") _x\n                 in\n                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                       Data.Monoid.mempty\n                   else\n                       (Data.Monoid.<>)\n                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)\n                         ((Prelude..)\n                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))\n                (Data.ProtoLens.Encoding.Wire.buildFieldSet\n                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))\ninstance Control.DeepSeq.NFData Position where\n  rnf\n    = \\ x__\n        -> Control.DeepSeq.deepseq\n             (_Position'_unknownFields x__)\n             (Control.DeepSeq.deepseq\n                (_Position'line x__)\n                (Control.DeepSeq.deepseq (_Position'column x__) ()))\n{- | Fields :\n     \n         * 'Proto.Semantic_Fields.start' @:: Lens' Span Position@\n         * 'Proto.Semantic_Fields.maybe'start' @:: Lens' Span (Prelude.Maybe Position)@\n         * 'Proto.Semantic_Fields.end' @:: Lens' Span Position@\n         * 'Proto.Semantic_Fields.maybe'end' @:: Lens' Span (Prelude.Maybe Position)@ -}\ndata Span\n  = Span'_constructor {_Span'start :: !(Prelude.Maybe Position),\n                       _Span'end :: !(Prelude.Maybe Position),\n                       _Span'_unknownFields :: !Data.ProtoLens.FieldSet}\n  deriving stock (Prelude.Eq, Prelude.Ord)\ninstance Prelude.Show Span where\n  showsPrec _ __x __s\n    = Prelude.showChar\n        '{'\n        (Prelude.showString\n           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))\ninstance Data.ProtoLens.Field.HasField Span \"start\" Position where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Span'start (\\ x__ y__ -> x__ {_Span'start = y__}))\n        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)\ninstance Data.ProtoLens.Field.HasField Span \"maybe'start\" (Prelude.Maybe Position) where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Span'start (\\ x__ y__ -> x__ {_Span'start = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField Span \"end\" Position where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Span'end (\\ x__ y__ -> x__ {_Span'end = y__}))\n        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)\ninstance Data.ProtoLens.Field.HasField Span \"maybe'end\" (Prelude.Maybe Position) where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Span'end (\\ x__ y__ -> x__ {_Span'end = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Message Span where\n  messageName _ = Data.Text.pack \"github.semantic.Span\"\n  packedMessageDescriptor _\n    = \"\\n\\\n      \\\\EOTSpan\\DC2/\\n\\\n      \\\\ENQstart\\CAN\\SOH \\SOH(\\v2\\EM.github.semantic.PositionR\\ENQstart\\DC2+\\n\\\n      \\\\ETXend\\CAN\\STX \\SOH(\\v2\\EM.github.semantic.PositionR\\ETXend\"\n  packedFileDescriptor _ = packedFileDescriptor\n  fieldsByTag\n    = let\n        start__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"start\"\n              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::\n                 Data.ProtoLens.FieldTypeDescriptor Position)\n              (Data.ProtoLens.OptionalField\n                 (Data.ProtoLens.Field.field @\"maybe'start\")) ::\n              Data.ProtoLens.FieldDescriptor Span\n        end__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"end\"\n              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::\n                 Data.ProtoLens.FieldTypeDescriptor Position)\n              (Data.ProtoLens.OptionalField\n                 (Data.ProtoLens.Field.field @\"maybe'end\")) ::\n              Data.ProtoLens.FieldDescriptor Span\n      in\n        Data.Map.fromList\n          [(Data.ProtoLens.Tag 1, start__field_descriptor),\n           (Data.ProtoLens.Tag 2, end__field_descriptor)]\n  unknownFields\n    = Lens.Family2.Unchecked.lens\n        _Span'_unknownFields\n        (\\ x__ y__ -> x__ {_Span'_unknownFields = y__})\n  defMessage\n    = Span'_constructor\n        {_Span'start = Prelude.Nothing, _Span'end = Prelude.Nothing,\n         _Span'_unknownFields = []}\n  parseMessage\n    = let\n        loop :: Span -> Data.ProtoLens.Encoding.Bytes.Parser Span\n        loop x\n          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd\n               if end then\n                   do (let missing = []\n                       in\n                         if Prelude.null missing then\n                             Prelude.return ()\n                         else\n                             Prelude.fail\n                               ((Prelude.++)\n                                  \"Missing required fields: \"\n                                  (Prelude.show (missing :: [Prelude.String]))))\n                      Prelude.return\n                        (Lens.Family2.over\n                           Data.ProtoLens.unknownFields (\\ !t -> Prelude.reverse t) x)\n               else\n                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                      case tag of\n                        10\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                           Data.ProtoLens.Encoding.Bytes.isolate\n                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)\n                                       \"start\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"start\") y x)\n                        18\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                           Data.ProtoLens.Encoding.Bytes.isolate\n                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)\n                                       \"end\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"end\") y x)\n                        wire\n                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire\n                                        wire\n                                loop\n                                  (Lens.Family2.over\n                                     Data.ProtoLens.unknownFields (\\ !t -> (:) y t) x)\n      in\n        (Data.ProtoLens.Encoding.Bytes.<?>)\n          (do loop Data.ProtoLens.defMessage) \"Span\"\n  buildMessage\n    = \\ _x\n        -> (Data.Monoid.<>)\n             (case\n                  Lens.Family2.view (Data.ProtoLens.Field.field @\"maybe'start\") _x\n              of\n                Prelude.Nothing -> Data.Monoid.mempty\n                (Prelude.Just _v)\n                  -> (Data.Monoid.<>)\n                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)\n                       ((Prelude..)\n                          (\\ bs\n                             -> (Data.Monoid.<>)\n                                  (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                     (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                          Data.ProtoLens.encodeMessage\n                          _v))\n             ((Data.Monoid.<>)\n                (case\n                     Lens.Family2.view (Data.ProtoLens.Field.field @\"maybe'end\") _x\n                 of\n                   Prelude.Nothing -> Data.Monoid.mempty\n                   (Prelude.Just _v)\n                     -> (Data.Monoid.<>)\n                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)\n                          ((Prelude..)\n                             (\\ bs\n                                -> (Data.Monoid.<>)\n                                     (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                        (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                             Data.ProtoLens.encodeMessage\n                             _v))\n                (Data.ProtoLens.Encoding.Wire.buildFieldSet\n                   (Lens.Family2.view Data.ProtoLens.unknownFields _x)))\ninstance Control.DeepSeq.NFData Span where\n  rnf\n    = \\ x__\n        -> Control.DeepSeq.deepseq\n             (_Span'_unknownFields x__)\n             (Control.DeepSeq.deepseq\n                (_Span'start x__) (Control.DeepSeq.deepseq (_Span'end x__) ()))\n{- | Fields :\n     \n         * 'Proto.Semantic_Fields.path' @:: Lens' StackGraphFile Data.Text.Text@\n         * 'Proto.Semantic_Fields.language' @:: Lens' StackGraphFile Data.Text.Text@\n         * 'Proto.Semantic_Fields.nodes' @:: Lens' StackGraphFile [StackGraphNode]@\n         * 'Proto.Semantic_Fields.vec'nodes' @:: Lens' StackGraphFile (Data.Vector.Vector StackGraphNode)@\n         * 'Proto.Semantic_Fields.paths' @:: Lens' StackGraphFile [StackGraphPath]@\n         * 'Proto.Semantic_Fields.vec'paths' @:: Lens' StackGraphFile (Data.Vector.Vector StackGraphPath)@\n         * 'Proto.Semantic_Fields.errors' @:: Lens' StackGraphFile [ParseError]@\n         * 'Proto.Semantic_Fields.vec'errors' @:: Lens' StackGraphFile (Data.Vector.Vector ParseError)@ -}\ndata StackGraphFile\n  = StackGraphFile'_constructor {_StackGraphFile'path :: !Data.Text.Text,\n                                 _StackGraphFile'language :: !Data.Text.Text,\n                                 _StackGraphFile'nodes :: !(Data.Vector.Vector StackGraphNode),\n                                 _StackGraphFile'paths :: !(Data.Vector.Vector StackGraphPath),\n                                 _StackGraphFile'errors :: !(Data.Vector.Vector ParseError),\n                                 _StackGraphFile'_unknownFields :: !Data.ProtoLens.FieldSet}\n  deriving stock (Prelude.Eq, Prelude.Ord)\ninstance Prelude.Show StackGraphFile where\n  showsPrec _ __x __s\n    = Prelude.showChar\n        '{'\n        (Prelude.showString\n           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))\ninstance Data.ProtoLens.Field.HasField StackGraphFile \"path\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphFile'path\n           (\\ x__ y__ -> x__ {_StackGraphFile'path = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField StackGraphFile \"language\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphFile'language\n           (\\ x__ y__ -> x__ {_StackGraphFile'language = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField StackGraphFile \"nodes\" [StackGraphNode] where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphFile'nodes\n           (\\ x__ y__ -> x__ {_StackGraphFile'nodes = y__}))\n        (Lens.Family2.Unchecked.lens\n           Data.Vector.Generic.toList\n           (\\ _ y__ -> Data.Vector.Generic.fromList y__))\ninstance Data.ProtoLens.Field.HasField StackGraphFile \"vec'nodes\" (Data.Vector.Vector StackGraphNode) where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphFile'nodes\n           (\\ x__ y__ -> x__ {_StackGraphFile'nodes = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField StackGraphFile \"paths\" [StackGraphPath] where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphFile'paths\n           (\\ x__ y__ -> x__ {_StackGraphFile'paths = y__}))\n        (Lens.Family2.Unchecked.lens\n           Data.Vector.Generic.toList\n           (\\ _ y__ -> Data.Vector.Generic.fromList y__))\ninstance Data.ProtoLens.Field.HasField StackGraphFile \"vec'paths\" (Data.Vector.Vector StackGraphPath) where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphFile'paths\n           (\\ x__ y__ -> x__ {_StackGraphFile'paths = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField StackGraphFile \"errors\" [ParseError] where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphFile'errors\n           (\\ x__ y__ -> x__ {_StackGraphFile'errors = y__}))\n        (Lens.Family2.Unchecked.lens\n           Data.Vector.Generic.toList\n           (\\ _ y__ -> Data.Vector.Generic.fromList y__))\ninstance Data.ProtoLens.Field.HasField StackGraphFile \"vec'errors\" (Data.Vector.Vector ParseError) where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphFile'errors\n           (\\ x__ y__ -> x__ {_StackGraphFile'errors = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Message StackGraphFile where\n  messageName _ = Data.Text.pack \"github.semantic.StackGraphFile\"\n  packedMessageDescriptor _\n    = \"\\n\\\n      \\\\SOStackGraphFile\\DC2\\DC2\\n\\\n      \\\\EOTpath\\CAN\\SOH \\SOH(\\tR\\EOTpath\\DC2\\SUB\\n\\\n      \\\\blanguage\\CAN\\STX \\SOH(\\tR\\blanguage\\DC25\\n\\\n      \\\\ENQnodes\\CAN\\ETX \\ETX(\\v2\\US.github.semantic.StackGraphNodeR\\ENQnodes\\DC25\\n\\\n      \\\\ENQpaths\\CAN\\EOT \\ETX(\\v2\\US.github.semantic.StackGraphPathR\\ENQpaths\\DC23\\n\\\n      \\\\ACKerrors\\CAN\\ENQ \\ETX(\\v2\\ESC.github.semantic.ParseErrorR\\ACKerrors\"\n  packedFileDescriptor _ = packedFileDescriptor\n  fieldsByTag\n    = let\n        path__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"path\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"path\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphFile\n        language__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"language\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional\n                 (Data.ProtoLens.Field.field @\"language\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphFile\n        nodes__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"nodes\"\n              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::\n                 Data.ProtoLens.FieldTypeDescriptor StackGraphNode)\n              (Data.ProtoLens.RepeatedField\n                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @\"nodes\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphFile\n        paths__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"paths\"\n              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::\n                 Data.ProtoLens.FieldTypeDescriptor StackGraphPath)\n              (Data.ProtoLens.RepeatedField\n                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @\"paths\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphFile\n        errors__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"errors\"\n              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::\n                 Data.ProtoLens.FieldTypeDescriptor ParseError)\n              (Data.ProtoLens.RepeatedField\n                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @\"errors\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphFile\n      in\n        Data.Map.fromList\n          [(Data.ProtoLens.Tag 1, path__field_descriptor),\n           (Data.ProtoLens.Tag 2, language__field_descriptor),\n           (Data.ProtoLens.Tag 3, nodes__field_descriptor),\n           (Data.ProtoLens.Tag 4, paths__field_descriptor),\n           (Data.ProtoLens.Tag 5, errors__field_descriptor)]\n  unknownFields\n    = Lens.Family2.Unchecked.lens\n        _StackGraphFile'_unknownFields\n        (\\ x__ y__ -> x__ {_StackGraphFile'_unknownFields = y__})\n  defMessage\n    = StackGraphFile'_constructor\n        {_StackGraphFile'path = Data.ProtoLens.fieldDefault,\n         _StackGraphFile'language = Data.ProtoLens.fieldDefault,\n         _StackGraphFile'nodes = Data.Vector.Generic.empty,\n         _StackGraphFile'paths = Data.Vector.Generic.empty,\n         _StackGraphFile'errors = Data.Vector.Generic.empty,\n         _StackGraphFile'_unknownFields = []}\n  parseMessage\n    = let\n        loop ::\n          StackGraphFile\n          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld ParseError\n             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld StackGraphNode\n                -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld StackGraphPath\n                   -> Data.ProtoLens.Encoding.Bytes.Parser StackGraphFile\n        loop x mutable'errors mutable'nodes mutable'paths\n          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd\n               if end then\n                   do frozen'errors <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                         (Data.ProtoLens.Encoding.Growing.unsafeFreeze\n                                            mutable'errors)\n                      frozen'nodes <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'nodes)\n                      frozen'paths <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'paths)\n                      (let missing = []\n                       in\n                         if Prelude.null missing then\n                             Prelude.return ()\n                         else\n                             Prelude.fail\n                               ((Prelude.++)\n                                  \"Missing required fields: \"\n                                  (Prelude.show (missing :: [Prelude.String]))))\n                      Prelude.return\n                        (Lens.Family2.over\n                           Data.ProtoLens.unknownFields\n                           (\\ !t -> Prelude.reverse t)\n                           (Lens.Family2.set\n                              (Data.ProtoLens.Field.field @\"vec'errors\")\n                              frozen'errors\n                              (Lens.Family2.set\n                                 (Data.ProtoLens.Field.field @\"vec'nodes\")\n                                 frozen'nodes\n                                 (Lens.Family2.set\n                                    (Data.ProtoLens.Field.field @\"vec'paths\") frozen'paths x))))\n               else\n                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                      case tag of\n                        10\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"path\"\n                                loop\n                                  (Lens.Family2.set (Data.ProtoLens.Field.field @\"path\") y x)\n                                  mutable'errors\n                                  mutable'nodes\n                                  mutable'paths\n                        18\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"language\"\n                                loop\n                                  (Lens.Family2.set (Data.ProtoLens.Field.field @\"language\") y x)\n                                  mutable'errors\n                                  mutable'nodes\n                                  mutable'paths\n                        26\n                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                            Data.ProtoLens.Encoding.Bytes.isolate\n                                              (Prelude.fromIntegral len)\n                                              Data.ProtoLens.parseMessage)\n                                        \"nodes\"\n                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                       (Data.ProtoLens.Encoding.Growing.append mutable'nodes y)\n                                loop x mutable'errors v mutable'paths\n                        34\n                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                            Data.ProtoLens.Encoding.Bytes.isolate\n                                              (Prelude.fromIntegral len)\n                                              Data.ProtoLens.parseMessage)\n                                        \"paths\"\n                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                       (Data.ProtoLens.Encoding.Growing.append mutable'paths y)\n                                loop x mutable'errors mutable'nodes v\n                        42\n                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                            Data.ProtoLens.Encoding.Bytes.isolate\n                                              (Prelude.fromIntegral len)\n                                              Data.ProtoLens.parseMessage)\n                                        \"errors\"\n                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                       (Data.ProtoLens.Encoding.Growing.append mutable'errors y)\n                                loop x v mutable'nodes mutable'paths\n                        wire\n                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire\n                                        wire\n                                loop\n                                  (Lens.Family2.over\n                                     Data.ProtoLens.unknownFields (\\ !t -> (:) y t) x)\n                                  mutable'errors\n                                  mutable'nodes\n                                  mutable'paths\n      in\n        (Data.ProtoLens.Encoding.Bytes.<?>)\n          (do mutable'errors <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                  Data.ProtoLens.Encoding.Growing.new\n              mutable'nodes <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                 Data.ProtoLens.Encoding.Growing.new\n              mutable'paths <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                 Data.ProtoLens.Encoding.Growing.new\n              loop\n                Data.ProtoLens.defMessage\n                mutable'errors\n                mutable'nodes\n                mutable'paths)\n          \"StackGraphFile\"\n  buildMessage\n    = \\ _x\n        -> (Data.Monoid.<>)\n             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"path\") _x\n              in\n                if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                    Data.Monoid.mempty\n                else\n                    (Data.Monoid.<>)\n                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)\n                      ((Prelude..)\n                         (\\ bs\n                            -> (Data.Monoid.<>)\n                                 (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                    (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                         Data.Text.Encoding.encodeUtf8\n                         _v))\n             ((Data.Monoid.<>)\n                (let\n                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"language\") _x\n                 in\n                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                       Data.Monoid.mempty\n                   else\n                       (Data.Monoid.<>)\n                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)\n                         ((Prelude..)\n                            (\\ bs\n                               -> (Data.Monoid.<>)\n                                    (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                       (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                            Data.Text.Encoding.encodeUtf8\n                            _v))\n                ((Data.Monoid.<>)\n                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder\n                      (\\ _v\n                         -> (Data.Monoid.<>)\n                              (Data.ProtoLens.Encoding.Bytes.putVarInt 26)\n                              ((Prelude..)\n                                 (\\ bs\n                                    -> (Data.Monoid.<>)\n                                         (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                            (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                                 Data.ProtoLens.encodeMessage\n                                 _v))\n                      (Lens.Family2.view (Data.ProtoLens.Field.field @\"vec'nodes\") _x))\n                   ((Data.Monoid.<>)\n                      (Data.ProtoLens.Encoding.Bytes.foldMapBuilder\n                         (\\ _v\n                            -> (Data.Monoid.<>)\n                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 34)\n                                 ((Prelude..)\n                                    (\\ bs\n                                       -> (Data.Monoid.<>)\n                                            (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                               (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                            (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                                    Data.ProtoLens.encodeMessage\n                                    _v))\n                         (Lens.Family2.view (Data.ProtoLens.Field.field @\"vec'paths\") _x))\n                      ((Data.Monoid.<>)\n                         (Data.ProtoLens.Encoding.Bytes.foldMapBuilder\n                            (\\ _v\n                               -> (Data.Monoid.<>)\n                                    (Data.ProtoLens.Encoding.Bytes.putVarInt 42)\n                                    ((Prelude..)\n                                       (\\ bs\n                                          -> (Data.Monoid.<>)\n                                               (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                                  (Prelude.fromIntegral\n                                                     (Data.ByteString.length bs)))\n                                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                                       Data.ProtoLens.encodeMessage\n                                       _v))\n                            (Lens.Family2.view (Data.ProtoLens.Field.field @\"vec'errors\") _x))\n                         (Data.ProtoLens.Encoding.Wire.buildFieldSet\n                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))\ninstance Control.DeepSeq.NFData StackGraphFile where\n  rnf\n    = \\ x__\n        -> Control.DeepSeq.deepseq\n             (_StackGraphFile'_unknownFields x__)\n             (Control.DeepSeq.deepseq\n                (_StackGraphFile'path x__)\n                (Control.DeepSeq.deepseq\n                   (_StackGraphFile'language x__)\n                   (Control.DeepSeq.deepseq\n                      (_StackGraphFile'nodes x__)\n                      (Control.DeepSeq.deepseq\n                         (_StackGraphFile'paths x__)\n                         (Control.DeepSeq.deepseq (_StackGraphFile'errors x__) ())))))\n{- | Fields :\n     \n         * 'Proto.Semantic_Fields.id' @:: Lens' StackGraphNode Data.Int.Int64@\n         * 'Proto.Semantic_Fields.name' @:: Lens' StackGraphNode Data.Text.Text@\n         * 'Proto.Semantic_Fields.line' @:: Lens' StackGraphNode Data.Text.Text@\n         * 'Proto.Semantic_Fields.span' @:: Lens' StackGraphNode Span@\n         * 'Proto.Semantic_Fields.maybe'span' @:: Lens' StackGraphNode (Prelude.Maybe Span)@\n         * 'Proto.Semantic_Fields.syntaxType' @:: Lens' StackGraphNode SyntaxType@\n         * 'Proto.Semantic_Fields.nodeType' @:: Lens' StackGraphNode NodeType@ -}\ndata StackGraphNode\n  = StackGraphNode'_constructor {_StackGraphNode'id :: !Data.Int.Int64,\n                                 _StackGraphNode'name :: !Data.Text.Text,\n                                 _StackGraphNode'line :: !Data.Text.Text,\n                                 _StackGraphNode'span :: !(Prelude.Maybe Span),\n                                 _StackGraphNode'syntaxType :: !SyntaxType,\n                                 _StackGraphNode'nodeType :: !NodeType,\n                                 _StackGraphNode'_unknownFields :: !Data.ProtoLens.FieldSet}\n  deriving stock (Prelude.Eq, Prelude.Ord)\ninstance Prelude.Show StackGraphNode where\n  showsPrec _ __x __s\n    = Prelude.showChar\n        '{'\n        (Prelude.showString\n           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))\ninstance Data.ProtoLens.Field.HasField StackGraphNode \"id\" Data.Int.Int64 where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphNode'id (\\ x__ y__ -> x__ {_StackGraphNode'id = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField StackGraphNode \"name\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphNode'name\n           (\\ x__ y__ -> x__ {_StackGraphNode'name = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField StackGraphNode \"line\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphNode'line\n           (\\ x__ y__ -> x__ {_StackGraphNode'line = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField StackGraphNode \"span\" Span where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphNode'span\n           (\\ x__ y__ -> x__ {_StackGraphNode'span = y__}))\n        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)\ninstance Data.ProtoLens.Field.HasField StackGraphNode \"maybe'span\" (Prelude.Maybe Span) where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphNode'span\n           (\\ x__ y__ -> x__ {_StackGraphNode'span = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField StackGraphNode \"syntaxType\" SyntaxType where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphNode'syntaxType\n           (\\ x__ y__ -> x__ {_StackGraphNode'syntaxType = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField StackGraphNode \"nodeType\" NodeType where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphNode'nodeType\n           (\\ x__ y__ -> x__ {_StackGraphNode'nodeType = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Message StackGraphNode where\n  messageName _ = Data.Text.pack \"github.semantic.StackGraphNode\"\n  packedMessageDescriptor _\n    = \"\\n\\\n      \\\\SOStackGraphNode\\DC2\\SO\\n\\\n      \\\\STXid\\CAN\\SOH \\SOH(\\ETXR\\STXid\\DC2\\DC2\\n\\\n      \\\\EOTname\\CAN\\STX \\SOH(\\tR\\EOTname\\DC2\\DC2\\n\\\n      \\\\EOTline\\CAN\\ETX \\SOH(\\tR\\EOTline\\DC2)\\n\\\n      \\\\EOTspan\\CAN\\EOT \\SOH(\\v2\\NAK.github.semantic.SpanR\\EOTspan\\DC2<\\n\\\n      \\\\vsyntax_type\\CAN\\ENQ \\SOH(\\SO2\\ESC.github.semantic.SyntaxTypeR\\n\\\n      \\syntaxType\\DC26\\n\\\n      \\\\tnode_type\\CAN\\ACK \\SOH(\\SO2\\EM.github.semantic.NodeTypeR\\bnodeType\"\n  packedFileDescriptor _ = packedFileDescriptor\n  fieldsByTag\n    = let\n        id__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"id\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"id\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphNode\n        name__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"name\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"name\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphNode\n        line__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"line\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"line\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphNode\n        span__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"span\"\n              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::\n                 Data.ProtoLens.FieldTypeDescriptor Span)\n              (Data.ProtoLens.OptionalField\n                 (Data.ProtoLens.Field.field @\"maybe'span\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphNode\n        syntaxType__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"syntax_type\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::\n                 Data.ProtoLens.FieldTypeDescriptor SyntaxType)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional\n                 (Data.ProtoLens.Field.field @\"syntaxType\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphNode\n        nodeType__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"node_type\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::\n                 Data.ProtoLens.FieldTypeDescriptor NodeType)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional\n                 (Data.ProtoLens.Field.field @\"nodeType\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphNode\n      in\n        Data.Map.fromList\n          [(Data.ProtoLens.Tag 1, id__field_descriptor),\n           (Data.ProtoLens.Tag 2, name__field_descriptor),\n           (Data.ProtoLens.Tag 3, line__field_descriptor),\n           (Data.ProtoLens.Tag 4, span__field_descriptor),\n           (Data.ProtoLens.Tag 5, syntaxType__field_descriptor),\n           (Data.ProtoLens.Tag 6, nodeType__field_descriptor)]\n  unknownFields\n    = Lens.Family2.Unchecked.lens\n        _StackGraphNode'_unknownFields\n        (\\ x__ y__ -> x__ {_StackGraphNode'_unknownFields = y__})\n  defMessage\n    = StackGraphNode'_constructor\n        {_StackGraphNode'id = Data.ProtoLens.fieldDefault,\n         _StackGraphNode'name = Data.ProtoLens.fieldDefault,\n         _StackGraphNode'line = Data.ProtoLens.fieldDefault,\n         _StackGraphNode'span = Prelude.Nothing,\n         _StackGraphNode'syntaxType = Data.ProtoLens.fieldDefault,\n         _StackGraphNode'nodeType = Data.ProtoLens.fieldDefault,\n         _StackGraphNode'_unknownFields = []}\n  parseMessage\n    = let\n        loop ::\n          StackGraphNode\n          -> Data.ProtoLens.Encoding.Bytes.Parser StackGraphNode\n        loop x\n          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd\n               if end then\n                   do (let missing = []\n                       in\n                         if Prelude.null missing then\n                             Prelude.return ()\n                         else\n                             Prelude.fail\n                               ((Prelude.++)\n                                  \"Missing required fields: \"\n                                  (Prelude.show (missing :: [Prelude.String]))))\n                      Prelude.return\n                        (Lens.Family2.over\n                           Data.ProtoLens.unknownFields (\\ !t -> Prelude.reverse t) x)\n               else\n                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                      case tag of\n                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (Prelude.fmap\n                                          Prelude.fromIntegral\n                                          Data.ProtoLens.Encoding.Bytes.getVarInt)\n                                       \"id\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"id\") y x)\n                        18\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"name\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"name\") y x)\n                        26\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"line\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"line\") y x)\n                        34\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                           Data.ProtoLens.Encoding.Bytes.isolate\n                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)\n                                       \"span\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"span\") y x)\n                        40\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (Prelude.fmap\n                                          Prelude.toEnum\n                                          (Prelude.fmap\n                                             Prelude.fromIntegral\n                                             Data.ProtoLens.Encoding.Bytes.getVarInt))\n                                       \"syntax_type\"\n                                loop\n                                  (Lens.Family2.set (Data.ProtoLens.Field.field @\"syntaxType\") y x)\n                        48\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (Prelude.fmap\n                                          Prelude.toEnum\n                                          (Prelude.fmap\n                                             Prelude.fromIntegral\n                                             Data.ProtoLens.Encoding.Bytes.getVarInt))\n                                       \"node_type\"\n                                loop\n                                  (Lens.Family2.set (Data.ProtoLens.Field.field @\"nodeType\") y x)\n                        wire\n                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire\n                                        wire\n                                loop\n                                  (Lens.Family2.over\n                                     Data.ProtoLens.unknownFields (\\ !t -> (:) y t) x)\n      in\n        (Data.ProtoLens.Encoding.Bytes.<?>)\n          (do loop Data.ProtoLens.defMessage) \"StackGraphNode\"\n  buildMessage\n    = \\ _x\n        -> (Data.Monoid.<>)\n             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"id\") _x\n              in\n                if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                    Data.Monoid.mempty\n                else\n                    (Data.Monoid.<>)\n                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)\n                      ((Prelude..)\n                         Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))\n             ((Data.Monoid.<>)\n                (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"name\") _x\n                 in\n                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                       Data.Monoid.mempty\n                   else\n                       (Data.Monoid.<>)\n                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)\n                         ((Prelude..)\n                            (\\ bs\n                               -> (Data.Monoid.<>)\n                                    (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                       (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                            Data.Text.Encoding.encodeUtf8\n                            _v))\n                ((Data.Monoid.<>)\n                   (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"line\") _x\n                    in\n                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                          Data.Monoid.mempty\n                      else\n                          (Data.Monoid.<>)\n                            (Data.ProtoLens.Encoding.Bytes.putVarInt 26)\n                            ((Prelude..)\n                               (\\ bs\n                                  -> (Data.Monoid.<>)\n                                       (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                          (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                               Data.Text.Encoding.encodeUtf8\n                               _v))\n                   ((Data.Monoid.<>)\n                      (case\n                           Lens.Family2.view (Data.ProtoLens.Field.field @\"maybe'span\") _x\n                       of\n                         Prelude.Nothing -> Data.Monoid.mempty\n                         (Prelude.Just _v)\n                           -> (Data.Monoid.<>)\n                                (Data.ProtoLens.Encoding.Bytes.putVarInt 34)\n                                ((Prelude..)\n                                   (\\ bs\n                                      -> (Data.Monoid.<>)\n                                           (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                              (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                           (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                                   Data.ProtoLens.encodeMessage\n                                   _v))\n                      ((Data.Monoid.<>)\n                         (let\n                            _v\n                              = Lens.Family2.view (Data.ProtoLens.Field.field @\"syntaxType\") _x\n                          in\n                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                                Data.Monoid.mempty\n                            else\n                                (Data.Monoid.<>)\n                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 40)\n                                  ((Prelude..)\n                                     ((Prelude..)\n                                        Data.ProtoLens.Encoding.Bytes.putVarInt\n                                        Prelude.fromIntegral)\n                                     Prelude.fromEnum\n                                     _v))\n                         ((Data.Monoid.<>)\n                            (let\n                               _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"nodeType\") _x\n                             in\n                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                                   Data.Monoid.mempty\n                               else\n                                   (Data.Monoid.<>)\n                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 48)\n                                     ((Prelude..)\n                                        ((Prelude..)\n                                           Data.ProtoLens.Encoding.Bytes.putVarInt\n                                           Prelude.fromIntegral)\n                                        Prelude.fromEnum\n                                        _v))\n                            (Data.ProtoLens.Encoding.Wire.buildFieldSet\n                               (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))\ninstance Control.DeepSeq.NFData StackGraphNode where\n  rnf\n    = \\ x__\n        -> Control.DeepSeq.deepseq\n             (_StackGraphNode'_unknownFields x__)\n             (Control.DeepSeq.deepseq\n                (_StackGraphNode'id x__)\n                (Control.DeepSeq.deepseq\n                   (_StackGraphNode'name x__)\n                   (Control.DeepSeq.deepseq\n                      (_StackGraphNode'line x__)\n                      (Control.DeepSeq.deepseq\n                         (_StackGraphNode'span x__)\n                         (Control.DeepSeq.deepseq\n                            (_StackGraphNode'syntaxType x__)\n                            (Control.DeepSeq.deepseq (_StackGraphNode'nodeType x__) ()))))))\n{- | Fields :\n     \n         * 'Proto.Semantic_Fields.startingSymbolStack' @:: Lens' StackGraphPath [Data.Text.Text]@\n         * 'Proto.Semantic_Fields.vec'startingSymbolStack' @:: Lens' StackGraphPath (Data.Vector.Vector Data.Text.Text)@\n         * 'Proto.Semantic_Fields.startingScopeStackSize' @:: Lens' StackGraphPath Data.Int.Int64@\n         * 'Proto.Semantic_Fields.from' @:: Lens' StackGraphPath Data.Int.Int64@\n         * 'Proto.Semantic_Fields.edges' @:: Lens' StackGraphPath Data.Text.Text@\n         * 'Proto.Semantic_Fields.to' @:: Lens' StackGraphPath Data.Int.Int64@\n         * 'Proto.Semantic_Fields.endingScopeStack' @:: Lens' StackGraphPath [Data.Int.Int64]@\n         * 'Proto.Semantic_Fields.vec'endingScopeStack' @:: Lens' StackGraphPath (Data.Vector.Unboxed.Vector Data.Int.Int64)@\n         * 'Proto.Semantic_Fields.endingSymbolStack' @:: Lens' StackGraphPath [Data.Text.Text]@\n         * 'Proto.Semantic_Fields.vec'endingSymbolStack' @:: Lens' StackGraphPath (Data.Vector.Vector Data.Text.Text)@ -}\ndata StackGraphPath\n  = StackGraphPath'_constructor {_StackGraphPath'startingSymbolStack :: !(Data.Vector.Vector Data.Text.Text),\n                                 _StackGraphPath'startingScopeStackSize :: !Data.Int.Int64,\n                                 _StackGraphPath'from :: !Data.Int.Int64,\n                                 _StackGraphPath'edges :: !Data.Text.Text,\n                                 _StackGraphPath'to :: !Data.Int.Int64,\n                                 _StackGraphPath'endingScopeStack :: !(Data.Vector.Unboxed.Vector Data.Int.Int64),\n                                 _StackGraphPath'endingSymbolStack :: !(Data.Vector.Vector Data.Text.Text),\n                                 _StackGraphPath'_unknownFields :: !Data.ProtoLens.FieldSet}\n  deriving stock (Prelude.Eq, Prelude.Ord)\ninstance Prelude.Show StackGraphPath where\n  showsPrec _ __x __s\n    = Prelude.showChar\n        '{'\n        (Prelude.showString\n           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))\ninstance Data.ProtoLens.Field.HasField StackGraphPath \"startingSymbolStack\" [Data.Text.Text] where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphPath'startingSymbolStack\n           (\\ x__ y__ -> x__ {_StackGraphPath'startingSymbolStack = y__}))\n        (Lens.Family2.Unchecked.lens\n           Data.Vector.Generic.toList\n           (\\ _ y__ -> Data.Vector.Generic.fromList y__))\ninstance Data.ProtoLens.Field.HasField StackGraphPath \"vec'startingSymbolStack\" (Data.Vector.Vector Data.Text.Text) where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphPath'startingSymbolStack\n           (\\ x__ y__ -> x__ {_StackGraphPath'startingSymbolStack = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField StackGraphPath \"startingScopeStackSize\" Data.Int.Int64 where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphPath'startingScopeStackSize\n           (\\ x__ y__ -> x__ {_StackGraphPath'startingScopeStackSize = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField StackGraphPath \"from\" Data.Int.Int64 where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphPath'from\n           (\\ x__ y__ -> x__ {_StackGraphPath'from = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField StackGraphPath \"edges\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphPath'edges\n           (\\ x__ y__ -> x__ {_StackGraphPath'edges = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField StackGraphPath \"to\" Data.Int.Int64 where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphPath'to (\\ x__ y__ -> x__ {_StackGraphPath'to = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField StackGraphPath \"endingScopeStack\" [Data.Int.Int64] where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphPath'endingScopeStack\n           (\\ x__ y__ -> x__ {_StackGraphPath'endingScopeStack = y__}))\n        (Lens.Family2.Unchecked.lens\n           Data.Vector.Generic.toList\n           (\\ _ y__ -> Data.Vector.Generic.fromList y__))\ninstance Data.ProtoLens.Field.HasField StackGraphPath \"vec'endingScopeStack\" (Data.Vector.Unboxed.Vector Data.Int.Int64) where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphPath'endingScopeStack\n           (\\ x__ y__ -> x__ {_StackGraphPath'endingScopeStack = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField StackGraphPath \"endingSymbolStack\" [Data.Text.Text] where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphPath'endingSymbolStack\n           (\\ x__ y__ -> x__ {_StackGraphPath'endingSymbolStack = y__}))\n        (Lens.Family2.Unchecked.lens\n           Data.Vector.Generic.toList\n           (\\ _ y__ -> Data.Vector.Generic.fromList y__))\ninstance Data.ProtoLens.Field.HasField StackGraphPath \"vec'endingSymbolStack\" (Data.Vector.Vector Data.Text.Text) where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphPath'endingSymbolStack\n           (\\ x__ y__ -> x__ {_StackGraphPath'endingSymbolStack = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Message StackGraphPath where\n  messageName _ = Data.Text.pack \"github.semantic.StackGraphPath\"\n  packedMessageDescriptor _\n    = \"\\n\\\n      \\\\SOStackGraphPath\\DC22\\n\\\n      \\\\NAKstarting_symbol_stack\\CAN\\SOH \\ETX(\\tR\\DC3startingSymbolStack\\DC29\\n\\\n      \\\\EMstarting_scope_stack_size\\CAN\\STX \\SOH(\\ETXR\\SYNstartingScopeStackSize\\DC2\\DC2\\n\\\n      \\\\EOTfrom\\CAN\\ETX \\SOH(\\ETXR\\EOTfrom\\DC2\\DC4\\n\\\n      \\\\ENQedges\\CAN\\EOT \\SOH(\\tR\\ENQedges\\DC2\\SO\\n\\\n      \\\\STXto\\CAN\\ENQ \\SOH(\\ETXR\\STXto\\DC2,\\n\\\n      \\\\DC2ending_scope_stack\\CAN\\ACK \\ETX(\\ETXR\\DLEendingScopeStack\\DC2.\\n\\\n      \\\\DC3ending_symbol_stack\\CAN\\a \\ETX(\\tR\\DC1endingSymbolStack\"\n  packedFileDescriptor _ = packedFileDescriptor\n  fieldsByTag\n    = let\n        startingSymbolStack__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"starting_symbol_stack\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.RepeatedField\n                 Data.ProtoLens.Unpacked\n                 (Data.ProtoLens.Field.field @\"startingSymbolStack\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphPath\n        startingScopeStackSize__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"starting_scope_stack_size\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional\n                 (Data.ProtoLens.Field.field @\"startingScopeStackSize\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphPath\n        from__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"from\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"from\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphPath\n        edges__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"edges\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"edges\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphPath\n        to__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"to\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"to\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphPath\n        endingScopeStack__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"ending_scope_stack\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)\n              (Data.ProtoLens.RepeatedField\n                 Data.ProtoLens.Packed\n                 (Data.ProtoLens.Field.field @\"endingScopeStack\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphPath\n        endingSymbolStack__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"ending_symbol_stack\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.RepeatedField\n                 Data.ProtoLens.Unpacked\n                 (Data.ProtoLens.Field.field @\"endingSymbolStack\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphPath\n      in\n        Data.Map.fromList\n          [(Data.ProtoLens.Tag 1, startingSymbolStack__field_descriptor),\n           (Data.ProtoLens.Tag 2, startingScopeStackSize__field_descriptor),\n           (Data.ProtoLens.Tag 3, from__field_descriptor),\n           (Data.ProtoLens.Tag 4, edges__field_descriptor),\n           (Data.ProtoLens.Tag 5, to__field_descriptor),\n           (Data.ProtoLens.Tag 6, endingScopeStack__field_descriptor),\n           (Data.ProtoLens.Tag 7, endingSymbolStack__field_descriptor)]\n  unknownFields\n    = Lens.Family2.Unchecked.lens\n        _StackGraphPath'_unknownFields\n        (\\ x__ y__ -> x__ {_StackGraphPath'_unknownFields = y__})\n  defMessage\n    = StackGraphPath'_constructor\n        {_StackGraphPath'startingSymbolStack = Data.Vector.Generic.empty,\n         _StackGraphPath'startingScopeStackSize = Data.ProtoLens.fieldDefault,\n         _StackGraphPath'from = Data.ProtoLens.fieldDefault,\n         _StackGraphPath'edges = Data.ProtoLens.fieldDefault,\n         _StackGraphPath'to = Data.ProtoLens.fieldDefault,\n         _StackGraphPath'endingScopeStack = Data.Vector.Generic.empty,\n         _StackGraphPath'endingSymbolStack = Data.Vector.Generic.empty,\n         _StackGraphPath'_unknownFields = []}\n  parseMessage\n    = let\n        loop ::\n          StackGraphPath\n          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Unboxed.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Int.Int64\n             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text\n                -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text\n                   -> Data.ProtoLens.Encoding.Bytes.Parser StackGraphPath\n        loop\n          x\n          mutable'endingScopeStack\n          mutable'endingSymbolStack\n          mutable'startingSymbolStack\n          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd\n               if end then\n                   do frozen'endingScopeStack <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                                   (Data.ProtoLens.Encoding.Growing.unsafeFreeze\n                                                      mutable'endingScopeStack)\n                      frozen'endingSymbolStack <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                                    (Data.ProtoLens.Encoding.Growing.unsafeFreeze\n                                                       mutable'endingSymbolStack)\n                      frozen'startingSymbolStack <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze\n                                                         mutable'startingSymbolStack)\n                      (let missing = []\n                       in\n                         if Prelude.null missing then\n                             Prelude.return ()\n                         else\n                             Prelude.fail\n                               ((Prelude.++)\n                                  \"Missing required fields: \"\n                                  (Prelude.show (missing :: [Prelude.String]))))\n                      Prelude.return\n                        (Lens.Family2.over\n                           Data.ProtoLens.unknownFields\n                           (\\ !t -> Prelude.reverse t)\n                           (Lens.Family2.set\n                              (Data.ProtoLens.Field.field @\"vec'endingScopeStack\")\n                              frozen'endingScopeStack\n                              (Lens.Family2.set\n                                 (Data.ProtoLens.Field.field @\"vec'endingSymbolStack\")\n                                 frozen'endingSymbolStack\n                                 (Lens.Family2.set\n                                    (Data.ProtoLens.Field.field @\"vec'startingSymbolStack\")\n                                    frozen'startingSymbolStack\n                                    x))))\n               else\n                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                      case tag of\n                        10\n                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                        (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                        Data.ProtoLens.Encoding.Bytes.getBytes\n                                                          (Prelude.fromIntegral len)\n                                            Data.ProtoLens.Encoding.Bytes.runEither\n                                              (case Data.Text.Encoding.decodeUtf8' value of\n                                                 (Prelude.Left err)\n                                                   -> Prelude.Left (Prelude.show err)\n                                                 (Prelude.Right r) -> Prelude.Right r))\n                                        \"starting_symbol_stack\"\n                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                       (Data.ProtoLens.Encoding.Growing.append\n                                          mutable'startingSymbolStack y)\n                                loop x mutable'endingScopeStack mutable'endingSymbolStack v\n                        16\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (Prelude.fmap\n                                          Prelude.fromIntegral\n                                          Data.ProtoLens.Encoding.Bytes.getVarInt)\n                                       \"starting_scope_stack_size\"\n                                loop\n                                  (Lens.Family2.set\n                                     (Data.ProtoLens.Field.field @\"startingScopeStackSize\") y x)\n                                  mutable'endingScopeStack\n                                  mutable'endingSymbolStack\n                                  mutable'startingSymbolStack\n                        24\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (Prelude.fmap\n                                          Prelude.fromIntegral\n                                          Data.ProtoLens.Encoding.Bytes.getVarInt)\n                                       \"from\"\n                                loop\n                                  (Lens.Family2.set (Data.ProtoLens.Field.field @\"from\") y x)\n                                  mutable'endingScopeStack\n                                  mutable'endingSymbolStack\n                                  mutable'startingSymbolStack\n                        34\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"edges\"\n                                loop\n                                  (Lens.Family2.set (Data.ProtoLens.Field.field @\"edges\") y x)\n                                  mutable'endingScopeStack\n                                  mutable'endingSymbolStack\n                                  mutable'startingSymbolStack\n                        40\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (Prelude.fmap\n                                          Prelude.fromIntegral\n                                          Data.ProtoLens.Encoding.Bytes.getVarInt)\n                                       \"to\"\n                                loop\n                                  (Lens.Family2.set (Data.ProtoLens.Field.field @\"to\") y x)\n                                  mutable'endingScopeStack\n                                  mutable'endingSymbolStack\n                                  mutable'startingSymbolStack\n                        48\n                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                        (Prelude.fmap\n                                           Prelude.fromIntegral\n                                           Data.ProtoLens.Encoding.Bytes.getVarInt)\n                                        \"ending_scope_stack\"\n                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                       (Data.ProtoLens.Encoding.Growing.append\n                                          mutable'endingScopeStack y)\n                                loop x v mutable'endingSymbolStack mutable'startingSymbolStack\n                        50\n                          -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                        Data.ProtoLens.Encoding.Bytes.isolate\n                                          (Prelude.fromIntegral len)\n                                          ((let\n                                              ploop qs\n                                                = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd\n                                                     if packedEnd then\n                                                         Prelude.return qs\n                                                     else\n                                                         do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                                                    (Prelude.fmap\n                                                                       Prelude.fromIntegral\n                                                                       Data.ProtoLens.Encoding.Bytes.getVarInt)\n                                                                    \"ending_scope_stack\"\n                                                            qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                                                     (Data.ProtoLens.Encoding.Growing.append\n                                                                        qs q)\n                                                            ploop qs'\n                                            in ploop)\n                                             mutable'endingScopeStack)\n                                loop x y mutable'endingSymbolStack mutable'startingSymbolStack\n                        58\n                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                        (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                        Data.ProtoLens.Encoding.Bytes.getBytes\n                                                          (Prelude.fromIntegral len)\n                                            Data.ProtoLens.Encoding.Bytes.runEither\n                                              (case Data.Text.Encoding.decodeUtf8' value of\n                                                 (Prelude.Left err)\n                                                   -> Prelude.Left (Prelude.show err)\n                                                 (Prelude.Right r) -> Prelude.Right r))\n                                        \"ending_symbol_stack\"\n                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                       (Data.ProtoLens.Encoding.Growing.append\n                                          mutable'endingSymbolStack y)\n                                loop x mutable'endingScopeStack v mutable'startingSymbolStack\n                        wire\n                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire\n                                        wire\n                                loop\n                                  (Lens.Family2.over\n                                     Data.ProtoLens.unknownFields (\\ !t -> (:) y t) x)\n                                  mutable'endingScopeStack\n                                  mutable'endingSymbolStack\n                                  mutable'startingSymbolStack\n      in\n        (Data.ProtoLens.Encoding.Bytes.<?>)\n          (do mutable'endingScopeStack <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                            Data.ProtoLens.Encoding.Growing.new\n              mutable'endingSymbolStack <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                             Data.ProtoLens.Encoding.Growing.new\n              mutable'startingSymbolStack <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                               Data.ProtoLens.Encoding.Growing.new\n              loop\n                Data.ProtoLens.defMessage\n                mutable'endingScopeStack\n                mutable'endingSymbolStack\n                mutable'startingSymbolStack)\n          \"StackGraphPath\"\n  buildMessage\n    = \\ _x\n        -> (Data.Monoid.<>)\n             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder\n                (\\ _v\n                   -> (Data.Monoid.<>)\n                        (Data.ProtoLens.Encoding.Bytes.putVarInt 10)\n                        ((Prelude..)\n                           (\\ bs\n                              -> (Data.Monoid.<>)\n                                   (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                      (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                           Data.Text.Encoding.encodeUtf8\n                           _v))\n                (Lens.Family2.view\n                   (Data.ProtoLens.Field.field @\"vec'startingSymbolStack\") _x))\n             ((Data.Monoid.<>)\n                (let\n                   _v\n                     = Lens.Family2.view\n                         (Data.ProtoLens.Field.field @\"startingScopeStackSize\") _x\n                 in\n                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                       Data.Monoid.mempty\n                   else\n                       (Data.Monoid.<>)\n                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)\n                         ((Prelude..)\n                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))\n                ((Data.Monoid.<>)\n                   (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"from\") _x\n                    in\n                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                          Data.Monoid.mempty\n                      else\n                          (Data.Monoid.<>)\n                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)\n                            ((Prelude..)\n                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))\n                   ((Data.Monoid.<>)\n                      (let\n                         _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"edges\") _x\n                       in\n                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                             Data.Monoid.mempty\n                         else\n                             (Data.Monoid.<>)\n                               (Data.ProtoLens.Encoding.Bytes.putVarInt 34)\n                               ((Prelude..)\n                                  (\\ bs\n                                     -> (Data.Monoid.<>)\n                                          (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                             (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                          (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                                  Data.Text.Encoding.encodeUtf8\n                                  _v))\n                      ((Data.Monoid.<>)\n                         (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"to\") _x\n                          in\n                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                                Data.Monoid.mempty\n                            else\n                                (Data.Monoid.<>)\n                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 40)\n                                  ((Prelude..)\n                                     Data.ProtoLens.Encoding.Bytes.putVarInt\n                                     Prelude.fromIntegral\n                                     _v))\n                         ((Data.Monoid.<>)\n                            (let\n                               p = Lens.Family2.view\n                                     (Data.ProtoLens.Field.field @\"vec'endingScopeStack\") _x\n                             in\n                               if Data.Vector.Generic.null p then\n                                   Data.Monoid.mempty\n                               else\n                                   (Data.Monoid.<>)\n                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 50)\n                                     ((\\ bs\n                                         -> (Data.Monoid.<>)\n                                              (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                                 (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                              (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                                        (Data.ProtoLens.Encoding.Bytes.runBuilder\n                                           (Data.ProtoLens.Encoding.Bytes.foldMapBuilder\n                                              ((Prelude..)\n                                                 Data.ProtoLens.Encoding.Bytes.putVarInt\n                                                 Prelude.fromIntegral)\n                                              p))))\n                            ((Data.Monoid.<>)\n                               (Data.ProtoLens.Encoding.Bytes.foldMapBuilder\n                                  (\\ _v\n                                     -> (Data.Monoid.<>)\n                                          (Data.ProtoLens.Encoding.Bytes.putVarInt 58)\n                                          ((Prelude..)\n                                             (\\ bs\n                                                -> (Data.Monoid.<>)\n                                                     (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                                        (Prelude.fromIntegral\n                                                           (Data.ByteString.length bs)))\n                                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                                             Data.Text.Encoding.encodeUtf8\n                                             _v))\n                                  (Lens.Family2.view\n                                     (Data.ProtoLens.Field.field @\"vec'endingSymbolStack\") _x))\n                               (Data.ProtoLens.Encoding.Wire.buildFieldSet\n                                  (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))))\ninstance Control.DeepSeq.NFData StackGraphPath where\n  rnf\n    = \\ x__\n        -> Control.DeepSeq.deepseq\n             (_StackGraphPath'_unknownFields x__)\n             (Control.DeepSeq.deepseq\n                (_StackGraphPath'startingSymbolStack x__)\n                (Control.DeepSeq.deepseq\n                   (_StackGraphPath'startingScopeStackSize x__)\n                   (Control.DeepSeq.deepseq\n                      (_StackGraphPath'from x__)\n                      (Control.DeepSeq.deepseq\n                         (_StackGraphPath'edges x__)\n                         (Control.DeepSeq.deepseq\n                            (_StackGraphPath'to x__)\n                            (Control.DeepSeq.deepseq\n                               (_StackGraphPath'endingScopeStack x__)\n                               (Control.DeepSeq.deepseq\n                                  (_StackGraphPath'endingSymbolStack x__) ())))))))\n{- | Fields :\n     \n         * 'Proto.Semantic_Fields.blobs' @:: Lens' StackGraphRequest [Blob]@\n         * 'Proto.Semantic_Fields.vec'blobs' @:: Lens' StackGraphRequest (Data.Vector.Vector Blob)@ -}\ndata StackGraphRequest\n  = StackGraphRequest'_constructor {_StackGraphRequest'blobs :: !(Data.Vector.Vector Blob),\n                                    _StackGraphRequest'_unknownFields :: !Data.ProtoLens.FieldSet}\n  deriving stock (Prelude.Eq, Prelude.Ord)\ninstance Prelude.Show StackGraphRequest where\n  showsPrec _ __x __s\n    = Prelude.showChar\n        '{'\n        (Prelude.showString\n           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))\ninstance Data.ProtoLens.Field.HasField StackGraphRequest \"blobs\" [Blob] where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphRequest'blobs\n           (\\ x__ y__ -> x__ {_StackGraphRequest'blobs = y__}))\n        (Lens.Family2.Unchecked.lens\n           Data.Vector.Generic.toList\n           (\\ _ y__ -> Data.Vector.Generic.fromList y__))\ninstance Data.ProtoLens.Field.HasField StackGraphRequest \"vec'blobs\" (Data.Vector.Vector Blob) where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphRequest'blobs\n           (\\ x__ y__ -> x__ {_StackGraphRequest'blobs = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Message StackGraphRequest where\n  messageName _ = Data.Text.pack \"github.semantic.StackGraphRequest\"\n  packedMessageDescriptor _\n    = \"\\n\\\n      \\\\DC1StackGraphRequest\\DC2+\\n\\\n      \\\\ENQblobs\\CAN\\SOH \\ETX(\\v2\\NAK.github.semantic.BlobR\\ENQblobs\"\n  packedFileDescriptor _ = packedFileDescriptor\n  fieldsByTag\n    = let\n        blobs__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"blobs\"\n              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::\n                 Data.ProtoLens.FieldTypeDescriptor Blob)\n              (Data.ProtoLens.RepeatedField\n                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @\"blobs\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphRequest\n      in\n        Data.Map.fromList [(Data.ProtoLens.Tag 1, blobs__field_descriptor)]\n  unknownFields\n    = Lens.Family2.Unchecked.lens\n        _StackGraphRequest'_unknownFields\n        (\\ x__ y__ -> x__ {_StackGraphRequest'_unknownFields = y__})\n  defMessage\n    = StackGraphRequest'_constructor\n        {_StackGraphRequest'blobs = Data.Vector.Generic.empty,\n         _StackGraphRequest'_unknownFields = []}\n  parseMessage\n    = let\n        loop ::\n          StackGraphRequest\n          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Blob\n             -> Data.ProtoLens.Encoding.Bytes.Parser StackGraphRequest\n        loop x mutable'blobs\n          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd\n               if end then\n                   do frozen'blobs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'blobs)\n                      (let missing = []\n                       in\n                         if Prelude.null missing then\n                             Prelude.return ()\n                         else\n                             Prelude.fail\n                               ((Prelude.++)\n                                  \"Missing required fields: \"\n                                  (Prelude.show (missing :: [Prelude.String]))))\n                      Prelude.return\n                        (Lens.Family2.over\n                           Data.ProtoLens.unknownFields\n                           (\\ !t -> Prelude.reverse t)\n                           (Lens.Family2.set\n                              (Data.ProtoLens.Field.field @\"vec'blobs\") frozen'blobs x))\n               else\n                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                      case tag of\n                        10\n                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                            Data.ProtoLens.Encoding.Bytes.isolate\n                                              (Prelude.fromIntegral len)\n                                              Data.ProtoLens.parseMessage)\n                                        \"blobs\"\n                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                       (Data.ProtoLens.Encoding.Growing.append mutable'blobs y)\n                                loop x v\n                        wire\n                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire\n                                        wire\n                                loop\n                                  (Lens.Family2.over\n                                     Data.ProtoLens.unknownFields (\\ !t -> (:) y t) x)\n                                  mutable'blobs\n      in\n        (Data.ProtoLens.Encoding.Bytes.<?>)\n          (do mutable'blobs <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                 Data.ProtoLens.Encoding.Growing.new\n              loop Data.ProtoLens.defMessage mutable'blobs)\n          \"StackGraphRequest\"\n  buildMessage\n    = \\ _x\n        -> (Data.Monoid.<>)\n             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder\n                (\\ _v\n                   -> (Data.Monoid.<>)\n                        (Data.ProtoLens.Encoding.Bytes.putVarInt 10)\n                        ((Prelude..)\n                           (\\ bs\n                              -> (Data.Monoid.<>)\n                                   (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                      (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                           Data.ProtoLens.encodeMessage\n                           _v))\n                (Lens.Family2.view (Data.ProtoLens.Field.field @\"vec'blobs\") _x))\n             (Data.ProtoLens.Encoding.Wire.buildFieldSet\n                (Lens.Family2.view Data.ProtoLens.unknownFields _x))\ninstance Control.DeepSeq.NFData StackGraphRequest where\n  rnf\n    = \\ x__\n        -> Control.DeepSeq.deepseq\n             (_StackGraphRequest'_unknownFields x__)\n             (Control.DeepSeq.deepseq (_StackGraphRequest'blobs x__) ())\n{- | Fields :\n     \n         * 'Proto.Semantic_Fields.files' @:: Lens' StackGraphResponse [StackGraphFile]@\n         * 'Proto.Semantic_Fields.vec'files' @:: Lens' StackGraphResponse (Data.Vector.Vector StackGraphFile)@ -}\ndata StackGraphResponse\n  = StackGraphResponse'_constructor {_StackGraphResponse'files :: !(Data.Vector.Vector StackGraphFile),\n                                     _StackGraphResponse'_unknownFields :: !Data.ProtoLens.FieldSet}\n  deriving stock (Prelude.Eq, Prelude.Ord)\ninstance Prelude.Show StackGraphResponse where\n  showsPrec _ __x __s\n    = Prelude.showChar\n        '{'\n        (Prelude.showString\n           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))\ninstance Data.ProtoLens.Field.HasField StackGraphResponse \"files\" [StackGraphFile] where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphResponse'files\n           (\\ x__ y__ -> x__ {_StackGraphResponse'files = y__}))\n        (Lens.Family2.Unchecked.lens\n           Data.Vector.Generic.toList\n           (\\ _ y__ -> Data.Vector.Generic.fromList y__))\ninstance Data.ProtoLens.Field.HasField StackGraphResponse \"vec'files\" (Data.Vector.Vector StackGraphFile) where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _StackGraphResponse'files\n           (\\ x__ y__ -> x__ {_StackGraphResponse'files = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Message StackGraphResponse where\n  messageName _ = Data.Text.pack \"github.semantic.StackGraphResponse\"\n  packedMessageDescriptor _\n    = \"\\n\\\n      \\\\DC2StackGraphResponse\\DC25\\n\\\n      \\\\ENQfiles\\CAN\\SOH \\ETX(\\v2\\US.github.semantic.StackGraphFileR\\ENQfiles\"\n  packedFileDescriptor _ = packedFileDescriptor\n  fieldsByTag\n    = let\n        files__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"files\"\n              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::\n                 Data.ProtoLens.FieldTypeDescriptor StackGraphFile)\n              (Data.ProtoLens.RepeatedField\n                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @\"files\")) ::\n              Data.ProtoLens.FieldDescriptor StackGraphResponse\n      in\n        Data.Map.fromList [(Data.ProtoLens.Tag 1, files__field_descriptor)]\n  unknownFields\n    = Lens.Family2.Unchecked.lens\n        _StackGraphResponse'_unknownFields\n        (\\ x__ y__ -> x__ {_StackGraphResponse'_unknownFields = y__})\n  defMessage\n    = StackGraphResponse'_constructor\n        {_StackGraphResponse'files = Data.Vector.Generic.empty,\n         _StackGraphResponse'_unknownFields = []}\n  parseMessage\n    = let\n        loop ::\n          StackGraphResponse\n          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld StackGraphFile\n             -> Data.ProtoLens.Encoding.Bytes.Parser StackGraphResponse\n        loop x mutable'files\n          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd\n               if end then\n                   do frozen'files <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'files)\n                      (let missing = []\n                       in\n                         if Prelude.null missing then\n                             Prelude.return ()\n                         else\n                             Prelude.fail\n                               ((Prelude.++)\n                                  \"Missing required fields: \"\n                                  (Prelude.show (missing :: [Prelude.String]))))\n                      Prelude.return\n                        (Lens.Family2.over\n                           Data.ProtoLens.unknownFields\n                           (\\ !t -> Prelude.reverse t)\n                           (Lens.Family2.set\n                              (Data.ProtoLens.Field.field @\"vec'files\") frozen'files x))\n               else\n                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                      case tag of\n                        10\n                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                            Data.ProtoLens.Encoding.Bytes.isolate\n                                              (Prelude.fromIntegral len)\n                                              Data.ProtoLens.parseMessage)\n                                        \"files\"\n                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                       (Data.ProtoLens.Encoding.Growing.append mutable'files y)\n                                loop x v\n                        wire\n                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire\n                                        wire\n                                loop\n                                  (Lens.Family2.over\n                                     Data.ProtoLens.unknownFields (\\ !t -> (:) y t) x)\n                                  mutable'files\n      in\n        (Data.ProtoLens.Encoding.Bytes.<?>)\n          (do mutable'files <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO\n                                 Data.ProtoLens.Encoding.Growing.new\n              loop Data.ProtoLens.defMessage mutable'files)\n          \"StackGraphResponse\"\n  buildMessage\n    = \\ _x\n        -> (Data.Monoid.<>)\n             (Data.ProtoLens.Encoding.Bytes.foldMapBuilder\n                (\\ _v\n                   -> (Data.Monoid.<>)\n                        (Data.ProtoLens.Encoding.Bytes.putVarInt 10)\n                        ((Prelude..)\n                           (\\ bs\n                              -> (Data.Monoid.<>)\n                                   (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                      (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                           Data.ProtoLens.encodeMessage\n                           _v))\n                (Lens.Family2.view (Data.ProtoLens.Field.field @\"vec'files\") _x))\n             (Data.ProtoLens.Encoding.Wire.buildFieldSet\n                (Lens.Family2.view Data.ProtoLens.unknownFields _x))\ninstance Control.DeepSeq.NFData StackGraphResponse where\n  rnf\n    = \\ x__\n        -> Control.DeepSeq.deepseq\n             (_StackGraphResponse'_unknownFields x__)\n             (Control.DeepSeq.deepseq (_StackGraphResponse'files x__) ())\n{- | Fields :\n     \n         * 'Proto.Semantic_Fields.symbol' @:: Lens' Symbol Data.Text.Text@\n         * 'Proto.Semantic_Fields.kind' @:: Lens' Symbol Data.Text.Text@\n         * 'Proto.Semantic_Fields.line' @:: Lens' Symbol Data.Text.Text@\n         * 'Proto.Semantic_Fields.span' @:: Lens' Symbol Span@\n         * 'Proto.Semantic_Fields.maybe'span' @:: Lens' Symbol (Prelude.Maybe Span)@\n         * 'Proto.Semantic_Fields.docs' @:: Lens' Symbol Docstring@\n         * 'Proto.Semantic_Fields.maybe'docs' @:: Lens' Symbol (Prelude.Maybe Docstring)@\n         * 'Proto.Semantic_Fields.nodeType' @:: Lens' Symbol NodeType@\n         * 'Proto.Semantic_Fields.syntaxType' @:: Lens' Symbol SyntaxType@\n         * 'Proto.Semantic_Fields.utf16CodeUnitSpan' @:: Lens' Symbol Span@\n         * 'Proto.Semantic_Fields.maybe'utf16CodeUnitSpan' @:: Lens' Symbol (Prelude.Maybe Span)@\n         * 'Proto.Semantic_Fields.byteRange' @:: Lens' Symbol ByteRange@\n         * 'Proto.Semantic_Fields.maybe'byteRange' @:: Lens' Symbol (Prelude.Maybe ByteRange)@ -}\ndata Symbol\n  = Symbol'_constructor {_Symbol'symbol :: !Data.Text.Text,\n                         _Symbol'kind :: !Data.Text.Text,\n                         _Symbol'line :: !Data.Text.Text,\n                         _Symbol'span :: !(Prelude.Maybe Span),\n                         _Symbol'docs :: !(Prelude.Maybe Docstring),\n                         _Symbol'nodeType :: !NodeType,\n                         _Symbol'syntaxType :: !SyntaxType,\n                         _Symbol'utf16CodeUnitSpan :: !(Prelude.Maybe Span),\n                         _Symbol'byteRange :: !(Prelude.Maybe ByteRange),\n                         _Symbol'_unknownFields :: !Data.ProtoLens.FieldSet}\n  deriving stock (Prelude.Eq, Prelude.Ord)\ninstance Prelude.Show Symbol where\n  showsPrec _ __x __s\n    = Prelude.showChar\n        '{'\n        (Prelude.showString\n           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))\ninstance Data.ProtoLens.Field.HasField Symbol \"symbol\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Symbol'symbol (\\ x__ y__ -> x__ {_Symbol'symbol = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField Symbol \"kind\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Symbol'kind (\\ x__ y__ -> x__ {_Symbol'kind = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField Symbol \"line\" Data.Text.Text where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Symbol'line (\\ x__ y__ -> x__ {_Symbol'line = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField Symbol \"span\" Span where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Symbol'span (\\ x__ y__ -> x__ {_Symbol'span = y__}))\n        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)\ninstance Data.ProtoLens.Field.HasField Symbol \"maybe'span\" (Prelude.Maybe Span) where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Symbol'span (\\ x__ y__ -> x__ {_Symbol'span = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField Symbol \"docs\" Docstring where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Symbol'docs (\\ x__ y__ -> x__ {_Symbol'docs = y__}))\n        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)\ninstance Data.ProtoLens.Field.HasField Symbol \"maybe'docs\" (Prelude.Maybe Docstring) where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Symbol'docs (\\ x__ y__ -> x__ {_Symbol'docs = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField Symbol \"nodeType\" NodeType where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Symbol'nodeType (\\ x__ y__ -> x__ {_Symbol'nodeType = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField Symbol \"syntaxType\" SyntaxType where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Symbol'syntaxType (\\ x__ y__ -> x__ {_Symbol'syntaxType = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField Symbol \"utf16CodeUnitSpan\" Span where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Symbol'utf16CodeUnitSpan\n           (\\ x__ y__ -> x__ {_Symbol'utf16CodeUnitSpan = y__}))\n        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)\ninstance Data.ProtoLens.Field.HasField Symbol \"maybe'utf16CodeUnitSpan\" (Prelude.Maybe Span) where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Symbol'utf16CodeUnitSpan\n           (\\ x__ y__ -> x__ {_Symbol'utf16CodeUnitSpan = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Field.HasField Symbol \"byteRange\" ByteRange where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Symbol'byteRange (\\ x__ y__ -> x__ {_Symbol'byteRange = y__}))\n        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)\ninstance Data.ProtoLens.Field.HasField Symbol \"maybe'byteRange\" (Prelude.Maybe ByteRange) where\n  fieldOf _\n    = (Prelude..)\n        (Lens.Family2.Unchecked.lens\n           _Symbol'byteRange (\\ x__ y__ -> x__ {_Symbol'byteRange = y__}))\n        Prelude.id\ninstance Data.ProtoLens.Message Symbol where\n  messageName _ = Data.Text.pack \"github.semantic.Symbol\"\n  packedMessageDescriptor _\n    = \"\\n\\\n      \\\\ACKSymbol\\DC2\\SYN\\n\\\n      \\\\ACKsymbol\\CAN\\SOH \\SOH(\\tR\\ACKsymbol\\DC2\\DC2\\n\\\n      \\\\EOTkind\\CAN\\STX \\SOH(\\tR\\EOTkind\\DC2\\DC2\\n\\\n      \\\\EOTline\\CAN\\ETX \\SOH(\\tR\\EOTline\\DC2)\\n\\\n      \\\\EOTspan\\CAN\\EOT \\SOH(\\v2\\NAK.github.semantic.SpanR\\EOTspan\\DC2.\\n\\\n      \\\\EOTdocs\\CAN\\ENQ \\SOH(\\v2\\SUB.github.semantic.DocstringR\\EOTdocs\\DC26\\n\\\n      \\\\tnode_type\\CAN\\ACK \\SOH(\\SO2\\EM.github.semantic.NodeTypeR\\bnodeType\\DC2<\\n\\\n      \\\\vsyntax_type\\CAN\\a \\SOH(\\SO2\\ESC.github.semantic.SyntaxTypeR\\n\\\n      \\syntaxType\\DC2F\\n\\\n      \\\\DC4utf16_code_unit_span\\CAN\\b \\SOH(\\v2\\NAK.github.semantic.SpanR\\DC1utf16CodeUnitSpan\\DC29\\n\\\n      \\\\n\\\n      \\byte_range\\CAN\\t \\SOH(\\v2\\SUB.github.semantic.ByteRangeR\\tbyteRange\"\n  packedFileDescriptor _ = packedFileDescriptor\n  fieldsByTag\n    = let\n        symbol__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"symbol\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"symbol\")) ::\n              Data.ProtoLens.FieldDescriptor Symbol\n        kind__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"kind\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"kind\")) ::\n              Data.ProtoLens.FieldDescriptor Symbol\n        line__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"line\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::\n                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @\"line\")) ::\n              Data.ProtoLens.FieldDescriptor Symbol\n        span__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"span\"\n              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::\n                 Data.ProtoLens.FieldTypeDescriptor Span)\n              (Data.ProtoLens.OptionalField\n                 (Data.ProtoLens.Field.field @\"maybe'span\")) ::\n              Data.ProtoLens.FieldDescriptor Symbol\n        docs__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"docs\"\n              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::\n                 Data.ProtoLens.FieldTypeDescriptor Docstring)\n              (Data.ProtoLens.OptionalField\n                 (Data.ProtoLens.Field.field @\"maybe'docs\")) ::\n              Data.ProtoLens.FieldDescriptor Symbol\n        nodeType__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"node_type\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::\n                 Data.ProtoLens.FieldTypeDescriptor NodeType)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional\n                 (Data.ProtoLens.Field.field @\"nodeType\")) ::\n              Data.ProtoLens.FieldDescriptor Symbol\n        syntaxType__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"syntax_type\"\n              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::\n                 Data.ProtoLens.FieldTypeDescriptor SyntaxType)\n              (Data.ProtoLens.PlainField\n                 Data.ProtoLens.Optional\n                 (Data.ProtoLens.Field.field @\"syntaxType\")) ::\n              Data.ProtoLens.FieldDescriptor Symbol\n        utf16CodeUnitSpan__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"utf16_code_unit_span\"\n              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::\n                 Data.ProtoLens.FieldTypeDescriptor Span)\n              (Data.ProtoLens.OptionalField\n                 (Data.ProtoLens.Field.field @\"maybe'utf16CodeUnitSpan\")) ::\n              Data.ProtoLens.FieldDescriptor Symbol\n        byteRange__field_descriptor\n          = Data.ProtoLens.FieldDescriptor\n              \"byte_range\"\n              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::\n                 Data.ProtoLens.FieldTypeDescriptor ByteRange)\n              (Data.ProtoLens.OptionalField\n                 (Data.ProtoLens.Field.field @\"maybe'byteRange\")) ::\n              Data.ProtoLens.FieldDescriptor Symbol\n      in\n        Data.Map.fromList\n          [(Data.ProtoLens.Tag 1, symbol__field_descriptor),\n           (Data.ProtoLens.Tag 2, kind__field_descriptor),\n           (Data.ProtoLens.Tag 3, line__field_descriptor),\n           (Data.ProtoLens.Tag 4, span__field_descriptor),\n           (Data.ProtoLens.Tag 5, docs__field_descriptor),\n           (Data.ProtoLens.Tag 6, nodeType__field_descriptor),\n           (Data.ProtoLens.Tag 7, syntaxType__field_descriptor),\n           (Data.ProtoLens.Tag 8, utf16CodeUnitSpan__field_descriptor),\n           (Data.ProtoLens.Tag 9, byteRange__field_descriptor)]\n  unknownFields\n    = Lens.Family2.Unchecked.lens\n        _Symbol'_unknownFields\n        (\\ x__ y__ -> x__ {_Symbol'_unknownFields = y__})\n  defMessage\n    = Symbol'_constructor\n        {_Symbol'symbol = Data.ProtoLens.fieldDefault,\n         _Symbol'kind = Data.ProtoLens.fieldDefault,\n         _Symbol'line = Data.ProtoLens.fieldDefault,\n         _Symbol'span = Prelude.Nothing, _Symbol'docs = Prelude.Nothing,\n         _Symbol'nodeType = Data.ProtoLens.fieldDefault,\n         _Symbol'syntaxType = Data.ProtoLens.fieldDefault,\n         _Symbol'utf16CodeUnitSpan = Prelude.Nothing,\n         _Symbol'byteRange = Prelude.Nothing, _Symbol'_unknownFields = []}\n  parseMessage\n    = let\n        loop :: Symbol -> Data.ProtoLens.Encoding.Bytes.Parser Symbol\n        loop x\n          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd\n               if end then\n                   do (let missing = []\n                       in\n                         if Prelude.null missing then\n                             Prelude.return ()\n                         else\n                             Prelude.fail\n                               ((Prelude.++)\n                                  \"Missing required fields: \"\n                                  (Prelude.show (missing :: [Prelude.String]))))\n                      Prelude.return\n                        (Lens.Family2.over\n                           Data.ProtoLens.unknownFields (\\ !t -> Prelude.reverse t) x)\n               else\n                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                      case tag of\n                        10\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"symbol\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"symbol\") y x)\n                        18\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"kind\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"kind\") y x)\n                        26\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                                       Data.ProtoLens.Encoding.Bytes.getBytes\n                                                         (Prelude.fromIntegral len)\n                                           Data.ProtoLens.Encoding.Bytes.runEither\n                                             (case Data.Text.Encoding.decodeUtf8' value of\n                                                (Prelude.Left err)\n                                                  -> Prelude.Left (Prelude.show err)\n                                                (Prelude.Right r) -> Prelude.Right r))\n                                       \"line\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"line\") y x)\n                        34\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                           Data.ProtoLens.Encoding.Bytes.isolate\n                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)\n                                       \"span\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"span\") y x)\n                        42\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                           Data.ProtoLens.Encoding.Bytes.isolate\n                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)\n                                       \"docs\"\n                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @\"docs\") y x)\n                        48\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (Prelude.fmap\n                                          Prelude.toEnum\n                                          (Prelude.fmap\n                                             Prelude.fromIntegral\n                                             Data.ProtoLens.Encoding.Bytes.getVarInt))\n                                       \"node_type\"\n                                loop\n                                  (Lens.Family2.set (Data.ProtoLens.Field.field @\"nodeType\") y x)\n                        56\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (Prelude.fmap\n                                          Prelude.toEnum\n                                          (Prelude.fmap\n                                             Prelude.fromIntegral\n                                             Data.ProtoLens.Encoding.Bytes.getVarInt))\n                                       \"syntax_type\"\n                                loop\n                                  (Lens.Family2.set (Data.ProtoLens.Field.field @\"syntaxType\") y x)\n                        66\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                           Data.ProtoLens.Encoding.Bytes.isolate\n                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)\n                                       \"utf16_code_unit_span\"\n                                loop\n                                  (Lens.Family2.set\n                                     (Data.ProtoLens.Field.field @\"utf16CodeUnitSpan\") y x)\n                        74\n                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)\n                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt\n                                           Data.ProtoLens.Encoding.Bytes.isolate\n                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)\n                                       \"byte_range\"\n                                loop\n                                  (Lens.Family2.set (Data.ProtoLens.Field.field @\"byteRange\") y x)\n                        wire\n                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire\n                                        wire\n                                loop\n                                  (Lens.Family2.over\n                                     Data.ProtoLens.unknownFields (\\ !t -> (:) y t) x)\n      in\n        (Data.ProtoLens.Encoding.Bytes.<?>)\n          (do loop Data.ProtoLens.defMessage) \"Symbol\"\n  buildMessage\n    = \\ _x\n        -> (Data.Monoid.<>)\n             (let\n                _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"symbol\") _x\n              in\n                if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                    Data.Monoid.mempty\n                else\n                    (Data.Monoid.<>)\n                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)\n                      ((Prelude..)\n                         (\\ bs\n                            -> (Data.Monoid.<>)\n                                 (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                    (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                         Data.Text.Encoding.encodeUtf8\n                         _v))\n             ((Data.Monoid.<>)\n                (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"kind\") _x\n                 in\n                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                       Data.Monoid.mempty\n                   else\n                       (Data.Monoid.<>)\n                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)\n                         ((Prelude..)\n                            (\\ bs\n                               -> (Data.Monoid.<>)\n                                    (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                       (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                            Data.Text.Encoding.encodeUtf8\n                            _v))\n                ((Data.Monoid.<>)\n                   (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"line\") _x\n                    in\n                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                          Data.Monoid.mempty\n                      else\n                          (Data.Monoid.<>)\n                            (Data.ProtoLens.Encoding.Bytes.putVarInt 26)\n                            ((Prelude..)\n                               (\\ bs\n                                  -> (Data.Monoid.<>)\n                                       (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                          (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                               Data.Text.Encoding.encodeUtf8\n                               _v))\n                   ((Data.Monoid.<>)\n                      (case\n                           Lens.Family2.view (Data.ProtoLens.Field.field @\"maybe'span\") _x\n                       of\n                         Prelude.Nothing -> Data.Monoid.mempty\n                         (Prelude.Just _v)\n                           -> (Data.Monoid.<>)\n                                (Data.ProtoLens.Encoding.Bytes.putVarInt 34)\n                                ((Prelude..)\n                                   (\\ bs\n                                      -> (Data.Monoid.<>)\n                                           (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                              (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                           (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                                   Data.ProtoLens.encodeMessage\n                                   _v))\n                      ((Data.Monoid.<>)\n                         (case\n                              Lens.Family2.view (Data.ProtoLens.Field.field @\"maybe'docs\") _x\n                          of\n                            Prelude.Nothing -> Data.Monoid.mempty\n                            (Prelude.Just _v)\n                              -> (Data.Monoid.<>)\n                                   (Data.ProtoLens.Encoding.Bytes.putVarInt 42)\n                                   ((Prelude..)\n                                      (\\ bs\n                                         -> (Data.Monoid.<>)\n                                              (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                                 (Prelude.fromIntegral (Data.ByteString.length bs)))\n                                              (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                                      Data.ProtoLens.encodeMessage\n                                      _v))\n                         ((Data.Monoid.<>)\n                            (let\n                               _v = Lens.Family2.view (Data.ProtoLens.Field.field @\"nodeType\") _x\n                             in\n                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                                   Data.Monoid.mempty\n                               else\n                                   (Data.Monoid.<>)\n                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 48)\n                                     ((Prelude..)\n                                        ((Prelude..)\n                                           Data.ProtoLens.Encoding.Bytes.putVarInt\n                                           Prelude.fromIntegral)\n                                        Prelude.fromEnum\n                                        _v))\n                            ((Data.Monoid.<>)\n                               (let\n                                  _v\n                                    = Lens.Family2.view\n                                        (Data.ProtoLens.Field.field @\"syntaxType\") _x\n                                in\n                                  if (Prelude.==) _v Data.ProtoLens.fieldDefault then\n                                      Data.Monoid.mempty\n                                  else\n                                      (Data.Monoid.<>)\n                                        (Data.ProtoLens.Encoding.Bytes.putVarInt 56)\n                                        ((Prelude..)\n                                           ((Prelude..)\n                                              Data.ProtoLens.Encoding.Bytes.putVarInt\n                                              Prelude.fromIntegral)\n                                           Prelude.fromEnum\n                                           _v))\n                               ((Data.Monoid.<>)\n                                  (case\n                                       Lens.Family2.view\n                                         (Data.ProtoLens.Field.field @\"maybe'utf16CodeUnitSpan\") _x\n                                   of\n                                     Prelude.Nothing -> Data.Monoid.mempty\n                                     (Prelude.Just _v)\n                                       -> (Data.Monoid.<>)\n                                            (Data.ProtoLens.Encoding.Bytes.putVarInt 66)\n                                            ((Prelude..)\n                                               (\\ bs\n                                                  -> (Data.Monoid.<>)\n                                                       (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                                          (Prelude.fromIntegral\n                                                             (Data.ByteString.length bs)))\n                                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))\n                                               Data.ProtoLens.encodeMessage\n                                               _v))\n                                  ((Data.Monoid.<>)\n                                     (case\n                                          Lens.Family2.view\n                                            (Data.ProtoLens.Field.field @\"maybe'byteRange\") _x\n                                      of\n                                        Prelude.Nothing -> Data.Monoid.mempty\n                                        (Prelude.Just _v)\n                                          -> (Data.Monoid.<>)\n                                               (Data.ProtoLens.Encoding.Bytes.putVarInt 74)\n                                               ((Prelude..)\n                                                  (\\ bs\n                                                     -> (Data.Monoid.<>)\n                                                          (Data.ProtoLens.Encoding.Bytes.putVarInt\n                                                             (Prelude.fromIntegral\n                                                                (Data.ByteString.length bs)))\n                                                          (Data.ProtoLens.Encoding.Bytes.putBytes\n                                                             bs))\n                                                  Data.ProtoLens.encodeMessage\n                                                  _v))\n                                     (Data.ProtoLens.Encoding.Wire.buildFieldSet\n                                        (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))))))\ninstance Control.DeepSeq.NFData Symbol where\n  rnf\n    = \\ x__\n        -> Control.DeepSeq.deepseq\n             (_Symbol'_unknownFields x__)\n             (Control.DeepSeq.deepseq\n                (_Symbol'symbol x__)\n                (Control.DeepSeq.deepseq\n                   (_Symbol'kind x__)\n                   (Control.DeepSeq.deepseq\n                      (_Symbol'line x__)\n                      (Control.DeepSeq.deepseq\n                         (_Symbol'span x__)\n                         (Control.DeepSeq.deepseq\n                            (_Symbol'docs x__)\n                            (Control.DeepSeq.deepseq\n                               (_Symbol'nodeType x__)\n                               (Control.DeepSeq.deepseq\n                                  (_Symbol'syntaxType x__)\n                                  (Control.DeepSeq.deepseq\n                                     (_Symbol'utf16CodeUnitSpan x__)\n                                     (Control.DeepSeq.deepseq (_Symbol'byteRange x__) ())))))))))\nnewtype SyntaxType'UnrecognizedValue\n  = SyntaxType'UnrecognizedValue Data.Int.Int32\n  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)\ndata SyntaxType\n  = FUNCTION |\n    METHOD |\n    CLASS |\n    MODULE |\n    CALL |\n    TYPE |\n    INTERFACE |\n    IMPLEMENTATION |\n    SyntaxType'Unrecognized !SyntaxType'UnrecognizedValue\n  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)\ninstance Data.ProtoLens.MessageEnum SyntaxType where\n  maybeToEnum 0 = Prelude.Just FUNCTION\n  maybeToEnum 1 = Prelude.Just METHOD\n  maybeToEnum 2 = Prelude.Just CLASS\n  maybeToEnum 3 = Prelude.Just MODULE\n  maybeToEnum 4 = Prelude.Just CALL\n  maybeToEnum 5 = Prelude.Just TYPE\n  maybeToEnum 6 = Prelude.Just INTERFACE\n  maybeToEnum 7 = Prelude.Just IMPLEMENTATION\n  maybeToEnum k\n    = Prelude.Just\n        (SyntaxType'Unrecognized\n           (SyntaxType'UnrecognizedValue (Prelude.fromIntegral k)))\n  showEnum FUNCTION = \"FUNCTION\"\n  showEnum METHOD = \"METHOD\"\n  showEnum CLASS = \"CLASS\"\n  showEnum MODULE = \"MODULE\"\n  showEnum CALL = \"CALL\"\n  showEnum TYPE = \"TYPE\"\n  showEnum INTERFACE = \"INTERFACE\"\n  showEnum IMPLEMENTATION = \"IMPLEMENTATION\"\n  showEnum (SyntaxType'Unrecognized (SyntaxType'UnrecognizedValue k))\n    = Prelude.show k\n  readEnum k\n    | (Prelude.==) k \"FUNCTION\" = Prelude.Just FUNCTION\n    | (Prelude.==) k \"METHOD\" = Prelude.Just METHOD\n    | (Prelude.==) k \"CLASS\" = Prelude.Just CLASS\n    | (Prelude.==) k \"MODULE\" = Prelude.Just MODULE\n    | (Prelude.==) k \"CALL\" = Prelude.Just CALL\n    | (Prelude.==) k \"TYPE\" = Prelude.Just TYPE\n    | (Prelude.==) k \"INTERFACE\" = Prelude.Just INTERFACE\n    | (Prelude.==) k \"IMPLEMENTATION\" = Prelude.Just IMPLEMENTATION\n    | Prelude.otherwise\n    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum\ninstance Prelude.Bounded SyntaxType where\n  minBound = FUNCTION\n  maxBound = IMPLEMENTATION\ninstance Prelude.Enum SyntaxType where\n  toEnum k__\n    = Prelude.maybe\n        (Prelude.error\n           ((Prelude.++)\n              \"toEnum: unknown value for enum SyntaxType: \" (Prelude.show k__)))\n        Prelude.id\n        (Data.ProtoLens.maybeToEnum k__)\n  fromEnum FUNCTION = 0\n  fromEnum METHOD = 1\n  fromEnum CLASS = 2\n  fromEnum MODULE = 3\n  fromEnum CALL = 4\n  fromEnum TYPE = 5\n  fromEnum INTERFACE = 6\n  fromEnum IMPLEMENTATION = 7\n  fromEnum (SyntaxType'Unrecognized (SyntaxType'UnrecognizedValue k))\n    = Prelude.fromIntegral k\n  succ IMPLEMENTATION\n    = Prelude.error\n        \"SyntaxType.succ: bad argument IMPLEMENTATION. This value would be out of bounds.\"\n  succ FUNCTION = METHOD\n  succ METHOD = CLASS\n  succ CLASS = MODULE\n  succ MODULE = CALL\n  succ CALL = TYPE\n  succ TYPE = INTERFACE\n  succ INTERFACE = IMPLEMENTATION\n  succ (SyntaxType'Unrecognized _)\n    = Prelude.error \"SyntaxType.succ: bad argument: unrecognized value\"\n  pred FUNCTION\n    = Prelude.error\n        \"SyntaxType.pred: bad argument FUNCTION. This value would be out of bounds.\"\n  pred METHOD = FUNCTION\n  pred CLASS = METHOD\n  pred MODULE = CLASS\n  pred CALL = MODULE\n  pred TYPE = CALL\n  pred INTERFACE = TYPE\n  pred IMPLEMENTATION = INTERFACE\n  pred (SyntaxType'Unrecognized _)\n    = Prelude.error \"SyntaxType.pred: bad argument: unrecognized value\"\n  enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom\n  enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo\n  enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen\n  enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo\ninstance Data.ProtoLens.FieldDefault SyntaxType where\n  fieldDefault = FUNCTION\ninstance Control.DeepSeq.NFData SyntaxType where\n  rnf x__ = Prelude.seq x__ ()\npackedFileDescriptor :: Data.ByteString.ByteString\npackedFileDescriptor\n  = \"\\n\\\n    \\\\SOsemantic.proto\\DC2\\SIgithub.semantic\\\"'\\n\\\n    \\\\vPingRequest\\DC2\\CAN\\n\\\n    \\\\aservice\\CAN\\SOH \\SOH(\\tR\\aservice\\\"r\\n\\\n    \\\\fPingResponse\\DC2\\SYN\\n\\\n    \\\\ACKstatus\\CAN\\SOH \\SOH(\\tR\\ACKstatus\\DC2\\SUB\\n\\\n    \\\\bhostname\\CAN\\STX \\SOH(\\tR\\bhostname\\DC2\\FS\\n\\\n    \\\\ttimestamp\\CAN\\ETX \\SOH(\\tR\\ttimestamp\\DC2\\DLE\\n\\\n    \\\\ETXsha\\CAN\\EOT \\SOH(\\tR\\ETXsha\\\"?\\n\\\n    \\\\DLEParseTreeRequest\\DC2+\\n\\\n    \\\\ENQblobs\\CAN\\SOH \\ETX(\\v2\\NAK.github.semantic.BlobR\\ENQblobs\\\"F\\n\\\n    \\\\ETBParseTreeSymbolResponse\\DC2+\\n\\\n    \\\\ENQfiles\\CAN\\SOH \\ETX(\\v2\\NAK.github.semantic.FileR\\ENQfiles\\\"@\\n\\\n    \\\\DC1StackGraphRequest\\DC2+\\n\\\n    \\\\ENQblobs\\CAN\\SOH \\ETX(\\v2\\NAK.github.semantic.BlobR\\ENQblobs\\\"K\\n\\\n    \\\\DC2StackGraphResponse\\DC25\\n\\\n    \\\\ENQfiles\\CAN\\SOH \\ETX(\\v2\\US.github.semantic.StackGraphFileR\\ENQfiles\\\"\\\"\\n\\\n    \\\\n\\\n    \\ParseError\\DC2\\DC4\\n\\\n    \\\\ENQerror\\CAN\\SOH \\SOH(\\tR\\ENQerror\\\"P\\n\\\n    \\\\EOTBlob\\DC2\\CAN\\n\\\n    \\\\acontent\\CAN\\SOH \\SOH(\\tR\\acontent\\DC2\\DC2\\n\\\n    \\\\EOTpath\\CAN\\STX \\SOH(\\tR\\EOTpath\\DC2\\SUB\\n\\\n    \\\\blanguage\\CAN\\ETX \\SOH(\\tR\\blanguage\\\"\\185\\SOH\\n\\\n    \\\\EOTFile\\DC2\\DC2\\n\\\n    \\\\EOTpath\\CAN\\SOH \\SOH(\\tR\\EOTpath\\DC2\\SUB\\n\\\n    \\\\blanguage\\CAN\\STX \\SOH(\\tR\\blanguage\\DC21\\n\\\n    \\\\asymbols\\CAN\\ETX \\ETX(\\v2\\ETB.github.semantic.SymbolR\\asymbols\\DC23\\n\\\n    \\\\ACKerrors\\CAN\\EOT \\ETX(\\v2\\ESC.github.semantic.ParseErrorR\\ACKerrors\\DC2\\EM\\n\\\n    \\\\bblob_oid\\CAN\\ENQ \\SOH(\\tR\\ablobOid\\\"\\156\\ETX\\n\\\n    \\\\ACKSymbol\\DC2\\SYN\\n\\\n    \\\\ACKsymbol\\CAN\\SOH \\SOH(\\tR\\ACKsymbol\\DC2\\DC2\\n\\\n    \\\\EOTkind\\CAN\\STX \\SOH(\\tR\\EOTkind\\DC2\\DC2\\n\\\n    \\\\EOTline\\CAN\\ETX \\SOH(\\tR\\EOTline\\DC2)\\n\\\n    \\\\EOTspan\\CAN\\EOT \\SOH(\\v2\\NAK.github.semantic.SpanR\\EOTspan\\DC2.\\n\\\n    \\\\EOTdocs\\CAN\\ENQ \\SOH(\\v2\\SUB.github.semantic.DocstringR\\EOTdocs\\DC26\\n\\\n    \\\\tnode_type\\CAN\\ACK \\SOH(\\SO2\\EM.github.semantic.NodeTypeR\\bnodeType\\DC2<\\n\\\n    \\\\vsyntax_type\\CAN\\a \\SOH(\\SO2\\ESC.github.semantic.SyntaxTypeR\\n\\\n    \\syntaxType\\DC2F\\n\\\n    \\\\DC4utf16_code_unit_span\\CAN\\b \\SOH(\\v2\\NAK.github.semantic.SpanR\\DC1utf16CodeUnitSpan\\DC29\\n\\\n    \\\\n\\\n    \\byte_range\\CAN\\t \\SOH(\\v2\\SUB.github.semantic.ByteRangeR\\tbyteRange\\\")\\n\\\n    \\\\tDocstring\\DC2\\FS\\n\\\n    \\\\tdocstring\\CAN\\SOH \\SOH(\\tR\\tdocstring\\\"6\\n\\\n    \\\\bPosition\\DC2\\DC2\\n\\\n    \\\\EOTline\\CAN\\SOH \\SOH(\\ENQR\\EOTline\\DC2\\SYN\\n\\\n    \\\\ACKcolumn\\CAN\\STX \\SOH(\\ENQR\\ACKcolumn\\\"d\\n\\\n    \\\\EOTSpan\\DC2/\\n\\\n    \\\\ENQstart\\CAN\\SOH \\SOH(\\v2\\EM.github.semantic.PositionR\\ENQstart\\DC2+\\n\\\n    \\\\ETXend\\CAN\\STX \\SOH(\\v2\\EM.github.semantic.PositionR\\ETXend\\\"3\\n\\\n    \\\\tByteRange\\DC2\\DC4\\n\\\n    \\\\ENQstart\\CAN\\SOH \\SOH(\\ENQR\\ENQstart\\DC2\\DLE\\n\\\n    \\\\ETXend\\CAN\\STX \\SOH(\\ENQR\\ETXend\\\"\\227\\SOH\\n\\\n    \\\\SOStackGraphFile\\DC2\\DC2\\n\\\n    \\\\EOTpath\\CAN\\SOH \\SOH(\\tR\\EOTpath\\DC2\\SUB\\n\\\n    \\\\blanguage\\CAN\\STX \\SOH(\\tR\\blanguage\\DC25\\n\\\n    \\\\ENQnodes\\CAN\\ETX \\ETX(\\v2\\US.github.semantic.StackGraphNodeR\\ENQnodes\\DC25\\n\\\n    \\\\ENQpaths\\CAN\\EOT \\ETX(\\v2\\US.github.semantic.StackGraphPathR\\ENQpaths\\DC23\\n\\\n    \\\\ACKerrors\\CAN\\ENQ \\ETX(\\v2\\ESC.github.semantic.ParseErrorR\\ACKerrors\\\"\\233\\SOH\\n\\\n    \\\\SOStackGraphNode\\DC2\\SO\\n\\\n    \\\\STXid\\CAN\\SOH \\SOH(\\ETXR\\STXid\\DC2\\DC2\\n\\\n    \\\\EOTname\\CAN\\STX \\SOH(\\tR\\EOTname\\DC2\\DC2\\n\\\n    \\\\EOTline\\CAN\\ETX \\SOH(\\tR\\EOTline\\DC2)\\n\\\n    \\\\EOTspan\\CAN\\EOT \\SOH(\\v2\\NAK.github.semantic.SpanR\\EOTspan\\DC2<\\n\\\n    \\\\vsyntax_type\\CAN\\ENQ \\SOH(\\SO2\\ESC.github.semantic.SyntaxTypeR\\n\\\n    \\syntaxType\\DC26\\n\\\n    \\\\tnode_type\\CAN\\ACK \\SOH(\\SO2\\EM.github.semantic.NodeTypeR\\bnodeType\\\"\\151\\STX\\n\\\n    \\\\SOStackGraphPath\\DC22\\n\\\n    \\\\NAKstarting_symbol_stack\\CAN\\SOH \\ETX(\\tR\\DC3startingSymbolStack\\DC29\\n\\\n    \\\\EMstarting_scope_stack_size\\CAN\\STX \\SOH(\\ETXR\\SYNstartingScopeStackSize\\DC2\\DC2\\n\\\n    \\\\EOTfrom\\CAN\\ETX \\SOH(\\ETXR\\EOTfrom\\DC2\\DC4\\n\\\n    \\\\ENQedges\\CAN\\EOT \\SOH(\\tR\\ENQedges\\DC2\\SO\\n\\\n    \\\\STXto\\CAN\\ENQ \\SOH(\\ETXR\\STXto\\DC2,\\n\\\n    \\\\DC2ending_scope_stack\\CAN\\ACK \\ETX(\\ETXR\\DLEendingScopeStack\\DC2.\\n\\\n    \\\\DC3ending_symbol_stack\\CAN\\a \\ETX(\\tR\\DC1endingSymbolStack*`\\n\\\n    \\\\bNodeType\\DC2\\SO\\n\\\n    \\\\n\\\n    \\ROOT_SCOPE\\DLE\\NUL\\DC2\\DC1\\n\\\n    \\\\rJUMP_TO_SCOPE\\DLE\\SOH\\DC2\\DC2\\n\\\n    \\\\SOEXPORTED_SCOPE\\DLE\\STX\\DC2\\SO\\n\\\n    \\\\n\\\n    \\DEFINITION\\DLE\\ETX\\DC2\\r\\n\\\n    \\\\tREFERENCE\\DLE\\EOT*t\\n\\\n    \\\\n\\\n    \\SyntaxType\\DC2\\f\\n\\\n    \\\\bFUNCTION\\DLE\\NUL\\DC2\\n\\\n    \\\\n\\\n    \\\\ACKMETHOD\\DLE\\SOH\\DC2\\t\\n\\\n    \\\\ENQCLASS\\DLE\\STX\\DC2\\n\\\n    \\\\n\\\n    \\\\ACKMODULE\\DLE\\ETX\\DC2\\b\\n\\\n    \\\\EOTCALL\\DLE\\EOT\\DC2\\b\\n\\\n    \\\\EOTTYPE\\DLE\\ENQ\\DC2\\r\\n\\\n    \\\\tINTERFACE\\DLE\\ACK\\DC2\\DC2\\n\\\n    \\\\SOIMPLEMENTATION\\DLE\\aB\\DC2\\234\\STX\\SISemantic::ProtoJ\\186$\\n\\\n    \\\\ACK\\DC2\\EOT\\NUL\\NUL~\\SOH\\n\\\n    \\\\b\\n\\\n    \\\\SOH\\f\\DC2\\ETX\\NUL\\NUL\\DC2\\n\\\n    \\\\b\\n\\\n    \\\\SOH\\STX\\DC2\\ETX\\STX\\NUL\\CAN\\n\\\n    \\\\b\\n\\\n    \\\\SOH\\b\\DC2\\ETX\\EOT\\NUL(\\n\\\n    \\\\t\\n\\\n    \\\\STX\\b-\\DC2\\ETX\\EOT\\NUL(\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\STX\\EOT\\NUL\\DC2\\EOT\\ACK\\NUL\\b\\SOH\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\ETX\\EOT\\NUL\\SOH\\DC2\\ETX\\ACK\\b\\DC3\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\NUL\\STX\\NUL\\DC2\\ETX\\a\\STX\\NAK\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\NUL\\STX\\NUL\\EOT\\DC2\\EOT\\a\\STX\\ACK\\NAK\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\NUL\\STX\\NUL\\ENQ\\DC2\\ETX\\a\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\NUL\\STX\\NUL\\SOH\\DC2\\ETX\\a\\t\\DLE\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\NUL\\STX\\NUL\\ETX\\DC2\\ETX\\a\\DC3\\DC4\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\STX\\EOT\\SOH\\DC2\\EOT\\n\\\n    \\\\NUL\\SI\\SOH\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\ETX\\EOT\\SOH\\SOH\\DC2\\ETX\\n\\\n    \\\\b\\DC4\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\SOH\\STX\\NUL\\DC2\\ETX\\v\\STX\\DC4\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\SOH\\STX\\NUL\\EOT\\DC2\\EOT\\v\\STX\\n\\\n    \\\\SYN\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SOH\\STX\\NUL\\ENQ\\DC2\\ETX\\v\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SOH\\STX\\NUL\\SOH\\DC2\\ETX\\v\\t\\SI\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SOH\\STX\\NUL\\ETX\\DC2\\ETX\\v\\DC2\\DC3\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\SOH\\STX\\SOH\\DC2\\ETX\\f\\STX\\SYN\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\SOH\\STX\\SOH\\EOT\\DC2\\EOT\\f\\STX\\v\\DC4\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SOH\\STX\\SOH\\ENQ\\DC2\\ETX\\f\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SOH\\STX\\SOH\\SOH\\DC2\\ETX\\f\\t\\DC1\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SOH\\STX\\SOH\\ETX\\DC2\\ETX\\f\\DC4\\NAK\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\SOH\\STX\\STX\\DC2\\ETX\\r\\STX\\ETB\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\SOH\\STX\\STX\\EOT\\DC2\\EOT\\r\\STX\\f\\SYN\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SOH\\STX\\STX\\ENQ\\DC2\\ETX\\r\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SOH\\STX\\STX\\SOH\\DC2\\ETX\\r\\t\\DC2\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SOH\\STX\\STX\\ETX\\DC2\\ETX\\r\\NAK\\SYN\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\SOH\\STX\\ETX\\DC2\\ETX\\SO\\STX\\DC1\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\SOH\\STX\\ETX\\EOT\\DC2\\EOT\\SO\\STX\\r\\ETB\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SOH\\STX\\ETX\\ENQ\\DC2\\ETX\\SO\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SOH\\STX\\ETX\\SOH\\DC2\\ETX\\SO\\t\\f\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SOH\\STX\\ETX\\ETX\\DC2\\ETX\\SO\\SI\\DLE\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\STX\\EOT\\STX\\DC2\\EOT\\DC1\\NUL\\DC3\\SOH\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\ETX\\EOT\\STX\\SOH\\DC2\\ETX\\DC1\\b\\CAN\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\STX\\STX\\NUL\\DC2\\ETX\\DC2\\STX\\SUB\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\STX\\STX\\NUL\\EOT\\DC2\\ETX\\DC2\\STX\\n\\\n    \\\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\STX\\STX\\NUL\\ACK\\DC2\\ETX\\DC2\\v\\SI\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\STX\\STX\\NUL\\SOH\\DC2\\ETX\\DC2\\DLE\\NAK\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\STX\\STX\\NUL\\ETX\\DC2\\ETX\\DC2\\CAN\\EM\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\STX\\EOT\\ETX\\DC2\\EOT\\NAK\\NUL\\ETB\\SOH\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\ETX\\EOT\\ETX\\SOH\\DC2\\ETX\\NAK\\b\\US\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\ETX\\STX\\NUL\\DC2\\ETX\\SYN\\STX\\SUB\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\ETX\\STX\\NUL\\EOT\\DC2\\ETX\\SYN\\STX\\n\\\n    \\\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\ETX\\STX\\NUL\\ACK\\DC2\\ETX\\SYN\\v\\SI\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\ETX\\STX\\NUL\\SOH\\DC2\\ETX\\SYN\\DLE\\NAK\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\ETX\\STX\\NUL\\ETX\\DC2\\ETX\\SYN\\CAN\\EM\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\STX\\EOT\\EOT\\DC2\\EOT\\EM\\NUL\\ESC\\SOH\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\ETX\\EOT\\EOT\\SOH\\DC2\\ETX\\EM\\b\\EM\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\EOT\\STX\\NUL\\DC2\\ETX\\SUB\\STX\\SUB\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\EOT\\STX\\NUL\\EOT\\DC2\\ETX\\SUB\\STX\\n\\\n    \\\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\EOT\\STX\\NUL\\ACK\\DC2\\ETX\\SUB\\v\\SI\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\EOT\\STX\\NUL\\SOH\\DC2\\ETX\\SUB\\DLE\\NAK\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\EOT\\STX\\NUL\\ETX\\DC2\\ETX\\SUB\\CAN\\EM\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\STX\\EOT\\ENQ\\DC2\\EOT\\GS\\NUL\\US\\SOH\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\ETX\\EOT\\ENQ\\SOH\\DC2\\ETX\\GS\\b\\SUB\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\ENQ\\STX\\NUL\\DC2\\ETX\\RS\\STX$\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\ENQ\\STX\\NUL\\EOT\\DC2\\ETX\\RS\\STX\\n\\\n    \\\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\ENQ\\STX\\NUL\\ACK\\DC2\\ETX\\RS\\v\\EM\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\ENQ\\STX\\NUL\\SOH\\DC2\\ETX\\RS\\SUB\\US\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\ENQ\\STX\\NUL\\ETX\\DC2\\ETX\\RS\\\"#\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\STX\\EOT\\ACK\\DC2\\EOT!\\NUL#\\SOH\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\ETX\\EOT\\ACK\\SOH\\DC2\\ETX!\\b\\DC2\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\ACK\\STX\\NUL\\DC2\\ETX\\\"\\STX\\DC3\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\ACK\\STX\\NUL\\EOT\\DC2\\EOT\\\"\\STX!\\DC4\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\ACK\\STX\\NUL\\ENQ\\DC2\\ETX\\\"\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\ACK\\STX\\NUL\\SOH\\DC2\\ETX\\\"\\t\\SO\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\ACK\\STX\\NUL\\ETX\\DC2\\ETX\\\"\\DC1\\DC2\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\STX\\EOT\\a\\DC2\\EOT%\\NUL)\\SOH\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\ETX\\EOT\\a\\SOH\\DC2\\ETX%\\b\\f\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\a\\STX\\NUL\\DC2\\ETX&\\STX\\NAK\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\a\\STX\\NUL\\EOT\\DC2\\EOT&\\STX%\\SO\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\a\\STX\\NUL\\ENQ\\DC2\\ETX&\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\a\\STX\\NUL\\SOH\\DC2\\ETX&\\t\\DLE\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\a\\STX\\NUL\\ETX\\DC2\\ETX&\\DC3\\DC4\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\a\\STX\\SOH\\DC2\\ETX'\\STX\\DC2\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\a\\STX\\SOH\\EOT\\DC2\\EOT'\\STX&\\NAK\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\a\\STX\\SOH\\ENQ\\DC2\\ETX'\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\a\\STX\\SOH\\SOH\\DC2\\ETX'\\t\\r\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\a\\STX\\SOH\\ETX\\DC2\\ETX'\\DLE\\DC1\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\a\\STX\\STX\\DC2\\ETX(\\STX\\SYN\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\a\\STX\\STX\\EOT\\DC2\\EOT(\\STX'\\DC2\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\a\\STX\\STX\\ENQ\\DC2\\ETX(\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\a\\STX\\STX\\SOH\\DC2\\ETX(\\t\\DC1\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\a\\STX\\STX\\ETX\\DC2\\ETX(\\DC4\\NAK\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\STX\\EOT\\b\\DC2\\EOT+\\NUL1\\SOH\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\ETX\\EOT\\b\\SOH\\DC2\\ETX+\\b\\f\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\b\\STX\\NUL\\DC2\\ETX,\\STX\\DC2\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\NUL\\EOT\\DC2\\EOT,\\STX+\\SO\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\NUL\\ENQ\\DC2\\ETX,\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\NUL\\SOH\\DC2\\ETX,\\t\\r\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\NUL\\ETX\\DC2\\ETX,\\DLE\\DC1\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\b\\STX\\SOH\\DC2\\ETX-\\STX\\SYN\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\SOH\\EOT\\DC2\\EOT-\\STX,\\DC2\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\SOH\\ENQ\\DC2\\ETX-\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\SOH\\SOH\\DC2\\ETX-\\t\\DC1\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\SOH\\ETX\\DC2\\ETX-\\DC4\\NAK\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\b\\STX\\STX\\DC2\\ETX.\\STX\\RS\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\STX\\EOT\\DC2\\ETX.\\STX\\n\\\n    \\\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\STX\\ACK\\DC2\\ETX.\\v\\DC1\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\STX\\SOH\\DC2\\ETX.\\DC2\\EM\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\STX\\ETX\\DC2\\ETX.\\FS\\GS\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\b\\STX\\ETX\\DC2\\ETX/\\STX!\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\ETX\\EOT\\DC2\\ETX/\\STX\\n\\\n    \\\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\ETX\\ACK\\DC2\\ETX/\\v\\NAK\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\ETX\\SOH\\DC2\\ETX/\\SYN\\FS\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\ETX\\ETX\\DC2\\ETX/\\US \\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\b\\STX\\EOT\\DC2\\ETX0\\STX\\SYN\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\EOT\\EOT\\DC2\\EOT0\\STX/!\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\EOT\\ENQ\\DC2\\ETX0\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\EOT\\SOH\\DC2\\ETX0\\t\\DC1\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\b\\STX\\EOT\\ETX\\DC2\\ETX0\\DC4\\NAK\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\STX\\EOT\\t\\DC2\\EOT3\\NUL=\\SOH\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\ETX\\EOT\\t\\SOH\\DC2\\ETX3\\b\\SO\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\t\\STX\\NUL\\DC2\\ETX4\\STX\\DC4\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\NUL\\EOT\\DC2\\EOT4\\STX3\\DLE\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\NUL\\ENQ\\DC2\\ETX4\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\NUL\\SOH\\DC2\\ETX4\\t\\SI\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\NUL\\ETX\\DC2\\ETX4\\DC2\\DC3\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\t\\STX\\SOH\\DC2\\ETX5\\STX\\DC2\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\SOH\\EOT\\DC2\\EOT5\\STX4\\DC4\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\SOH\\ENQ\\DC2\\ETX5\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\SOH\\SOH\\DC2\\ETX5\\t\\r\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\SOH\\ETX\\DC2\\ETX5\\DLE\\DC1\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\t\\STX\\STX\\DC2\\ETX6\\STX\\DC2\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\STX\\EOT\\DC2\\EOT6\\STX5\\DC2\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\STX\\ENQ\\DC2\\ETX6\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\STX\\SOH\\DC2\\ETX6\\t\\r\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\STX\\ETX\\DC2\\ETX6\\DLE\\DC1\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\t\\STX\\ETX\\DC2\\ETX7\\STX\\DLE\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\ETX\\EOT\\DC2\\EOT7\\STX6\\DC2\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\ETX\\ACK\\DC2\\ETX7\\STX\\ACK\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\ETX\\SOH\\DC2\\ETX7\\a\\v\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\ETX\\ETX\\DC2\\ETX7\\SO\\SI\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\t\\STX\\EOT\\DC2\\ETX8\\STX\\NAK\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\EOT\\EOT\\DC2\\EOT8\\STX7\\DLE\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\EOT\\ACK\\DC2\\ETX8\\STX\\v\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\EOT\\SOH\\DC2\\ETX8\\f\\DLE\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\EOT\\ETX\\DC2\\ETX8\\DC3\\DC4\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\t\\STX\\ENQ\\DC2\\ETX9\\STX\\EM\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\ENQ\\EOT\\DC2\\EOT9\\STX8\\NAK\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\ENQ\\ACK\\DC2\\ETX9\\STX\\n\\\n    \\\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\ENQ\\SOH\\DC2\\ETX9\\v\\DC4\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\ENQ\\ETX\\DC2\\ETX9\\ETB\\CAN\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\t\\STX\\ACK\\DC2\\ETX:\\STX\\GS\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\ACK\\EOT\\DC2\\EOT:\\STX9\\EM\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\ACK\\ACK\\DC2\\ETX:\\STX\\f\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\ACK\\SOH\\DC2\\ETX:\\r\\CAN\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\ACK\\ETX\\DC2\\ETX:\\ESC\\FS\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\t\\STX\\a\\DC2\\ETX;\\STX \\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\a\\EOT\\DC2\\EOT;\\STX:\\GS\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\a\\ACK\\DC2\\ETX;\\STX\\ACK\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\a\\SOH\\DC2\\ETX;\\a\\ESC\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\a\\ETX\\DC2\\ETX;\\RS\\US\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\t\\STX\\b\\DC2\\ETX<\\STX\\ESC\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\b\\EOT\\DC2\\EOT<\\STX; \\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\b\\ACK\\DC2\\ETX<\\STX\\v\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\b\\SOH\\DC2\\ETX<\\f\\SYN\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\t\\STX\\b\\ETX\\DC2\\ETX<\\EM\\SUB\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\STX\\EOT\\n\\\n    \\\\DC2\\EOT?\\NULA\\SOH\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\ETX\\EOT\\n\\\n    \\\\SOH\\DC2\\ETX?\\b\\DC1\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\n\\\n    \\\\STX\\NUL\\DC2\\ETX@\\STX\\ETB\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\n\\\n    \\\\STX\\NUL\\EOT\\DC2\\EOT@\\STX?\\DC3\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\n\\\n    \\\\STX\\NUL\\ENQ\\DC2\\ETX@\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\n\\\n    \\\\STX\\NUL\\SOH\\DC2\\ETX@\\t\\DC2\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\n\\\n    \\\\STX\\NUL\\ETX\\DC2\\ETX@\\NAK\\SYN\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\STX\\EOT\\v\\DC2\\EOTC\\NULF\\SOH\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\ETX\\EOT\\v\\SOH\\DC2\\ETXC\\b\\DLE\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\v\\STX\\NUL\\DC2\\ETXD\\STX\\DC1\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\v\\STX\\NUL\\EOT\\DC2\\EOTD\\STXC\\DC2\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\v\\STX\\NUL\\ENQ\\DC2\\ETXD\\STX\\a\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\v\\STX\\NUL\\SOH\\DC2\\ETXD\\b\\f\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\v\\STX\\NUL\\ETX\\DC2\\ETXD\\SI\\DLE\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\v\\STX\\SOH\\DC2\\ETXE\\STX\\DC3\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\v\\STX\\SOH\\EOT\\DC2\\EOTE\\STXD\\DC1\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\v\\STX\\SOH\\ENQ\\DC2\\ETXE\\STX\\a\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\v\\STX\\SOH\\SOH\\DC2\\ETXE\\b\\SO\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\v\\STX\\SOH\\ETX\\DC2\\ETXE\\DC1\\DC2\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\STX\\EOT\\f\\DC2\\EOTH\\NULK\\SOH\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\ETX\\EOT\\f\\SOH\\DC2\\ETXH\\b\\f\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\f\\STX\\NUL\\DC2\\ETXI\\STX\\NAK\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\f\\STX\\NUL\\EOT\\DC2\\EOTI\\STXH\\SO\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\f\\STX\\NUL\\ACK\\DC2\\ETXI\\STX\\n\\\n    \\\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\f\\STX\\NUL\\SOH\\DC2\\ETXI\\v\\DLE\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\f\\STX\\NUL\\ETX\\DC2\\ETXI\\DC3\\DC4\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\f\\STX\\SOH\\DC2\\ETXJ\\STX\\DC3\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\f\\STX\\SOH\\EOT\\DC2\\EOTJ\\STXI\\NAK\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\f\\STX\\SOH\\ACK\\DC2\\ETXJ\\STX\\n\\\n    \\\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\f\\STX\\SOH\\SOH\\DC2\\ETXJ\\v\\SO\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\f\\STX\\SOH\\ETX\\DC2\\ETXJ\\DC1\\DC2\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\STX\\EOT\\r\\DC2\\EOTM\\NULP\\SOH\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\ETX\\EOT\\r\\SOH\\DC2\\ETXM\\b\\DC1\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\r\\STX\\NUL\\DC2\\ETXN\\STX\\DC2\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\r\\STX\\NUL\\EOT\\DC2\\EOTN\\STXM\\DC3\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\r\\STX\\NUL\\ENQ\\DC2\\ETXN\\STX\\a\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\r\\STX\\NUL\\SOH\\DC2\\ETXN\\b\\r\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\r\\STX\\NUL\\ETX\\DC2\\ETXN\\DLE\\DC1\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\r\\STX\\SOH\\DC2\\ETXO\\STX\\DLE\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\r\\STX\\SOH\\EOT\\DC2\\EOTO\\STXN\\DC2\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\r\\STX\\SOH\\ENQ\\DC2\\ETXO\\STX\\a\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\r\\STX\\SOH\\SOH\\DC2\\ETXO\\b\\v\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\r\\STX\\SOH\\ETX\\DC2\\ETXO\\SO\\SI\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\STX\\EOT\\SO\\DC2\\EOTR\\NULX\\SOH\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\ETX\\EOT\\SO\\SOH\\DC2\\ETXR\\b\\SYN\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\SO\\STX\\NUL\\DC2\\ETXS\\STX\\DC2\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\NUL\\EOT\\DC2\\EOTS\\STXR\\CAN\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\NUL\\ENQ\\DC2\\ETXS\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\NUL\\SOH\\DC2\\ETXS\\t\\r\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\NUL\\ETX\\DC2\\ETXS\\DLE\\DC1\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\SO\\STX\\SOH\\DC2\\ETXT\\STX\\SYN\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\SOH\\EOT\\DC2\\EOTT\\STXS\\DC2\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\SOH\\ENQ\\DC2\\ETXT\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\SOH\\SOH\\DC2\\ETXT\\t\\DC1\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\SOH\\ETX\\DC2\\ETXT\\DC4\\NAK\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\SO\\STX\\STX\\DC2\\ETXU\\STX$\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\STX\\EOT\\DC2\\ETXU\\STX\\n\\\n    \\\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\STX\\ACK\\DC2\\ETXU\\v\\EM\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\STX\\SOH\\DC2\\ETXU\\SUB\\US\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\STX\\ETX\\DC2\\ETXU\\\"#\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\SO\\STX\\ETX\\DC2\\ETXV\\STX$\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\ETX\\EOT\\DC2\\ETXV\\STX\\n\\\n    \\\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\ETX\\ACK\\DC2\\ETXV\\v\\EM\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\ETX\\SOH\\DC2\\ETXV\\SUB\\US\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\ETX\\ETX\\DC2\\ETXV\\\"#\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\SO\\STX\\EOT\\DC2\\ETXW\\STX!\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\EOT\\EOT\\DC2\\ETXW\\STX\\n\\\n    \\\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\EOT\\ACK\\DC2\\ETXW\\v\\NAK\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\EOT\\SOH\\DC2\\ETXW\\SYN\\FS\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SO\\STX\\EOT\\ETX\\DC2\\ETXW\\US \\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\STX\\ENQ\\NUL\\DC2\\EOTZ\\NUL`\\SOH\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\ETX\\ENQ\\NUL\\SOH\\DC2\\ETXZ\\ENQ\\r\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\ENQ\\NUL\\STX\\NUL\\DC2\\ETX[\\STX\\DC1\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\NUL\\STX\\NUL\\SOH\\DC2\\ETX[\\STX\\f\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\NUL\\STX\\NUL\\STX\\DC2\\ETX[\\SI\\DLE\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\ENQ\\NUL\\STX\\SOH\\DC2\\ETX\\\\\\STX\\DC4\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\NUL\\STX\\SOH\\SOH\\DC2\\ETX\\\\\\STX\\SI\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\NUL\\STX\\SOH\\STX\\DC2\\ETX\\\\\\DC2\\DC3\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\ENQ\\NUL\\STX\\STX\\DC2\\ETX]\\STX\\NAK\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\NUL\\STX\\STX\\SOH\\DC2\\ETX]\\STX\\DLE\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\NUL\\STX\\STX\\STX\\DC2\\ETX]\\DC3\\DC4\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\ENQ\\NUL\\STX\\ETX\\DC2\\ETX^\\STX\\DC1\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\NUL\\STX\\ETX\\SOH\\DC2\\ETX^\\STX\\f\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\NUL\\STX\\ETX\\STX\\DC2\\ETX^\\SI\\DLE\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\ENQ\\NUL\\STX\\EOT\\DC2\\ETX_\\STX\\DLE\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\NUL\\STX\\EOT\\SOH\\DC2\\ETX_\\STX\\v\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\NUL\\STX\\EOT\\STX\\DC2\\ETX_\\SO\\SI\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\STX\\ENQ\\SOH\\DC2\\EOTb\\NULk\\SOH\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\ETX\\ENQ\\SOH\\SOH\\DC2\\ETXb\\ENQ\\SI\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\ENQ\\SOH\\STX\\NUL\\DC2\\ETXc\\STX\\SI\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\SOH\\STX\\NUL\\SOH\\DC2\\ETXc\\STX\\n\\\n    \\\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\SOH\\STX\\NUL\\STX\\DC2\\ETXc\\r\\SO\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\ENQ\\SOH\\STX\\SOH\\DC2\\ETXd\\STX\\r\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\SOH\\STX\\SOH\\SOH\\DC2\\ETXd\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\SOH\\STX\\SOH\\STX\\DC2\\ETXd\\v\\f\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\ENQ\\SOH\\STX\\STX\\DC2\\ETXe\\STX\\f\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\SOH\\STX\\STX\\SOH\\DC2\\ETXe\\STX\\a\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\SOH\\STX\\STX\\STX\\DC2\\ETXe\\n\\\n    \\\\v\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\ENQ\\SOH\\STX\\ETX\\DC2\\ETXf\\STX\\r\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\SOH\\STX\\ETX\\SOH\\DC2\\ETXf\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\SOH\\STX\\ETX\\STX\\DC2\\ETXf\\v\\f\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\ENQ\\SOH\\STX\\EOT\\DC2\\ETXg\\STX\\v\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\SOH\\STX\\EOT\\SOH\\DC2\\ETXg\\STX\\ACK\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\SOH\\STX\\EOT\\STX\\DC2\\ETXg\\t\\n\\\n    \\\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\ENQ\\SOH\\STX\\ENQ\\DC2\\ETXh\\STX\\v\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\SOH\\STX\\ENQ\\SOH\\DC2\\ETXh\\STX\\ACK\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\SOH\\STX\\ENQ\\STX\\DC2\\ETXh\\t\\n\\\n    \\\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\ENQ\\SOH\\STX\\ACK\\DC2\\ETXi\\STX\\DLE\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\SOH\\STX\\ACK\\SOH\\DC2\\ETXi\\STX\\v\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\SOH\\STX\\ACK\\STX\\DC2\\ETXi\\SO\\SI\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\ENQ\\SOH\\STX\\a\\DC2\\ETXj\\STX\\NAK\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\SOH\\STX\\a\\SOH\\DC2\\ETXj\\STX\\DLE\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\ENQ\\SOH\\STX\\a\\STX\\DC2\\ETXj\\DC3\\DC4\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\STX\\EOT\\SI\\DC2\\EOTm\\NULt\\SOH\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\ETX\\EOT\\SI\\SOH\\DC2\\ETXm\\b\\SYN\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\SI\\STX\\NUL\\DC2\\ETXn\\STX\\SI\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\NUL\\EOT\\DC2\\EOTn\\STXm\\CAN\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\NUL\\ENQ\\DC2\\ETXn\\STX\\a\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\NUL\\SOH\\DC2\\ETXn\\b\\n\\\n    \\\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\NUL\\ETX\\DC2\\ETXn\\r\\SO\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\SI\\STX\\SOH\\DC2\\ETXo\\STX\\DC2\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\SOH\\EOT\\DC2\\EOTo\\STXn\\SI\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\SOH\\ENQ\\DC2\\ETXo\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\SOH\\SOH\\DC2\\ETXo\\t\\r\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\SOH\\ETX\\DC2\\ETXo\\DLE\\DC1\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\SI\\STX\\STX\\DC2\\ETXp\\STX\\DC2\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\STX\\EOT\\DC2\\EOTp\\STXo\\DC2\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\STX\\ENQ\\DC2\\ETXp\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\STX\\SOH\\DC2\\ETXp\\t\\r\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\STX\\ETX\\DC2\\ETXp\\DLE\\DC1\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\SI\\STX\\ETX\\DC2\\ETXq\\STX\\DLE\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\ETX\\EOT\\DC2\\EOTq\\STXp\\DC2\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\ETX\\ACK\\DC2\\ETXq\\STX\\ACK\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\ETX\\SOH\\DC2\\ETXq\\a\\v\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\ETX\\ETX\\DC2\\ETXq\\SO\\SI\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\SI\\STX\\EOT\\DC2\\ETXr\\STX\\GS\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\EOT\\EOT\\DC2\\EOTr\\STXq\\DLE\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\EOT\\ACK\\DC2\\ETXr\\STX\\f\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\EOT\\SOH\\DC2\\ETXr\\r\\CAN\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\EOT\\ETX\\DC2\\ETXr\\ESC\\FS\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\SI\\STX\\ENQ\\DC2\\ETXs\\STX\\EM\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\ENQ\\EOT\\DC2\\EOTs\\STXr\\GS\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\ENQ\\ACK\\DC2\\ETXs\\STX\\n\\\n    \\\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\ENQ\\SOH\\DC2\\ETXs\\v\\DC4\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\SI\\STX\\ENQ\\ETX\\DC2\\ETXs\\ETB\\CAN\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\STX\\EOT\\DLE\\DC2\\EOTv\\NUL~\\SOH\\n\\\n    \\\\n\\\n    \\\\n\\\n    \\\\ETX\\EOT\\DLE\\SOH\\DC2\\ETXv\\b\\SYN\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\DLE\\STX\\NUL\\DC2\\ETXw\\STX,\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\NUL\\EOT\\DC2\\ETXw\\STX\\n\\\n    \\\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\NUL\\ENQ\\DC2\\ETXw\\v\\DC1\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\NUL\\SOH\\DC2\\ETXw\\DC2'\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\NUL\\ETX\\DC2\\ETXw*+\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\DLE\\STX\\SOH\\DC2\\ETXx\\STX&\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\SOH\\EOT\\DC2\\EOTx\\STXw,\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\SOH\\ENQ\\DC2\\ETXx\\STX\\a\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\SOH\\SOH\\DC2\\ETXx\\b!\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\SOH\\ETX\\DC2\\ETXx$%\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\DLE\\STX\\STX\\DC2\\ETXy\\STX\\DC1\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\STX\\EOT\\DC2\\EOTy\\STXx&\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\STX\\ENQ\\DC2\\ETXy\\STX\\a\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\STX\\SOH\\DC2\\ETXy\\b\\f\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\STX\\ETX\\DC2\\ETXy\\SI\\DLE\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\DLE\\STX\\ETX\\DC2\\ETXz\\STX\\DC3\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\ETX\\EOT\\DC2\\EOTz\\STXy\\DC1\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\ETX\\ENQ\\DC2\\ETXz\\STX\\b\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\ETX\\SOH\\DC2\\ETXz\\t\\SO\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\ETX\\ETX\\DC2\\ETXz\\DC1\\DC2\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\DLE\\STX\\EOT\\DC2\\ETX{\\STX\\SI\\n\\\n    \\\\r\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\EOT\\EOT\\DC2\\EOT{\\STXz\\DC3\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\EOT\\ENQ\\DC2\\ETX{\\STX\\a\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\EOT\\SOH\\DC2\\ETX{\\b\\n\\\n    \\\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\EOT\\ETX\\DC2\\ETX{\\r\\SO\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\DLE\\STX\\ENQ\\DC2\\ETX|\\STX(\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\ENQ\\EOT\\DC2\\ETX|\\STX\\n\\\n    \\\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\ENQ\\ENQ\\DC2\\ETX|\\v\\DLE\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\ENQ\\SOH\\DC2\\ETX|\\DC1#\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\ENQ\\ETX\\DC2\\ETX|&'\\n\\\n    \\\\v\\n\\\n    \\\\EOT\\EOT\\DLE\\STX\\ACK\\DC2\\ETX}\\STX*\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\ACK\\EOT\\DC2\\ETX}\\STX\\n\\\n    \\\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\ACK\\ENQ\\DC2\\ETX}\\v\\DC1\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\ACK\\SOH\\DC2\\ETX}\\DC2%\\n\\\n    \\\\f\\n\\\n    \\\\ENQ\\EOT\\DLE\\STX\\ACK\\ETX\\DC2\\ETX}()b\\ACKproto3\""
  },
  {
    "path": "semantic-proto/src/Proto/Semantic_Fields.hs",
    "content": "{- This file was auto-generated from semantic.proto by the proto-lens-protoc program. -}\n{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies, UndecidableInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude, DataKinds, BangPatterns, TypeApplications, OverloadedStrings, DerivingStrategies#-}\n{-# OPTIONS_GHC -Wno-unused-imports#-}\n{-# OPTIONS_GHC -Wno-duplicate-exports#-}\n{-# OPTIONS_GHC -Wno-dodgy-exports#-}\nmodule Proto.Semantic_Fields where\nimport qualified Data.ProtoLens.Runtime.Prelude as Prelude\nimport qualified Data.ProtoLens.Runtime.Data.Int as Data.Int\nimport qualified Data.ProtoLens.Runtime.Data.Monoid as Data.Monoid\nimport qualified Data.ProtoLens.Runtime.Data.Word as Data.Word\nimport qualified Data.ProtoLens.Runtime.Data.ProtoLens as Data.ProtoLens\nimport qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Bytes as Data.ProtoLens.Encoding.Bytes\nimport qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Growing as Data.ProtoLens.Encoding.Growing\nimport qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Parser.Unsafe as Data.ProtoLens.Encoding.Parser.Unsafe\nimport qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Wire as Data.ProtoLens.Encoding.Wire\nimport qualified Data.ProtoLens.Runtime.Data.ProtoLens.Field as Data.ProtoLens.Field\nimport qualified Data.ProtoLens.Runtime.Data.ProtoLens.Message.Enum as Data.ProtoLens.Message.Enum\nimport qualified Data.ProtoLens.Runtime.Data.ProtoLens.Service.Types as Data.ProtoLens.Service.Types\nimport qualified Data.ProtoLens.Runtime.Lens.Family2 as Lens.Family2\nimport qualified Data.ProtoLens.Runtime.Lens.Family2.Unchecked as Lens.Family2.Unchecked\nimport qualified Data.ProtoLens.Runtime.Data.Text as Data.Text\nimport qualified Data.ProtoLens.Runtime.Data.Map as Data.Map\nimport qualified Data.ProtoLens.Runtime.Data.ByteString as Data.ByteString\nimport qualified Data.ProtoLens.Runtime.Data.ByteString.Char8 as Data.ByteString.Char8\nimport qualified Data.ProtoLens.Runtime.Data.Text.Encoding as Data.Text.Encoding\nimport qualified Data.ProtoLens.Runtime.Data.Vector as Data.Vector\nimport qualified Data.ProtoLens.Runtime.Data.Vector.Generic as Data.Vector.Generic\nimport qualified Data.ProtoLens.Runtime.Data.Vector.Unboxed as Data.Vector.Unboxed\nimport qualified Data.ProtoLens.Runtime.Text.Read as Text.Read\nblobOid ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"blobOid\" a) =>\n  Lens.Family2.LensLike' f s a\nblobOid = Data.ProtoLens.Field.field @\"blobOid\"\nblobs ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"blobs\" a) =>\n  Lens.Family2.LensLike' f s a\nblobs = Data.ProtoLens.Field.field @\"blobs\"\nbyteRange ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"byteRange\" a) =>\n  Lens.Family2.LensLike' f s a\nbyteRange = Data.ProtoLens.Field.field @\"byteRange\"\ncolumn ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"column\" a) =>\n  Lens.Family2.LensLike' f s a\ncolumn = Data.ProtoLens.Field.field @\"column\"\ncontent ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"content\" a) =>\n  Lens.Family2.LensLike' f s a\ncontent = Data.ProtoLens.Field.field @\"content\"\ndocs ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"docs\" a) =>\n  Lens.Family2.LensLike' f s a\ndocs = Data.ProtoLens.Field.field @\"docs\"\ndocstring ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"docstring\" a) =>\n  Lens.Family2.LensLike' f s a\ndocstring = Data.ProtoLens.Field.field @\"docstring\"\nedges ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"edges\" a) =>\n  Lens.Family2.LensLike' f s a\nedges = Data.ProtoLens.Field.field @\"edges\"\nend ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"end\" a) =>\n  Lens.Family2.LensLike' f s a\nend = Data.ProtoLens.Field.field @\"end\"\nendingScopeStack ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"endingScopeStack\" a) =>\n  Lens.Family2.LensLike' f s a\nendingScopeStack = Data.ProtoLens.Field.field @\"endingScopeStack\"\nendingSymbolStack ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"endingSymbolStack\" a) =>\n  Lens.Family2.LensLike' f s a\nendingSymbolStack = Data.ProtoLens.Field.field @\"endingSymbolStack\"\nerror ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"error\" a) =>\n  Lens.Family2.LensLike' f s a\nerror = Data.ProtoLens.Field.field @\"error\"\nerrors ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"errors\" a) =>\n  Lens.Family2.LensLike' f s a\nerrors = Data.ProtoLens.Field.field @\"errors\"\nfiles ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"files\" a) =>\n  Lens.Family2.LensLike' f s a\nfiles = Data.ProtoLens.Field.field @\"files\"\nfrom ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"from\" a) =>\n  Lens.Family2.LensLike' f s a\nfrom = Data.ProtoLens.Field.field @\"from\"\nhostname ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"hostname\" a) =>\n  Lens.Family2.LensLike' f s a\nhostname = Data.ProtoLens.Field.field @\"hostname\"\nid ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"id\" a) =>\n  Lens.Family2.LensLike' f s a\nid = Data.ProtoLens.Field.field @\"id\"\nkind ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"kind\" a) =>\n  Lens.Family2.LensLike' f s a\nkind = Data.ProtoLens.Field.field @\"kind\"\nlanguage ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"language\" a) =>\n  Lens.Family2.LensLike' f s a\nlanguage = Data.ProtoLens.Field.field @\"language\"\nline ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"line\" a) =>\n  Lens.Family2.LensLike' f s a\nline = Data.ProtoLens.Field.field @\"line\"\nmaybe'byteRange ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"maybe'byteRange\" a) =>\n  Lens.Family2.LensLike' f s a\nmaybe'byteRange = Data.ProtoLens.Field.field @\"maybe'byteRange\"\nmaybe'docs ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"maybe'docs\" a) =>\n  Lens.Family2.LensLike' f s a\nmaybe'docs = Data.ProtoLens.Field.field @\"maybe'docs\"\nmaybe'end ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"maybe'end\" a) =>\n  Lens.Family2.LensLike' f s a\nmaybe'end = Data.ProtoLens.Field.field @\"maybe'end\"\nmaybe'span ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"maybe'span\" a) =>\n  Lens.Family2.LensLike' f s a\nmaybe'span = Data.ProtoLens.Field.field @\"maybe'span\"\nmaybe'start ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"maybe'start\" a) =>\n  Lens.Family2.LensLike' f s a\nmaybe'start = Data.ProtoLens.Field.field @\"maybe'start\"\nmaybe'utf16CodeUnitSpan ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"maybe'utf16CodeUnitSpan\" a) =>\n  Lens.Family2.LensLike' f s a\nmaybe'utf16CodeUnitSpan\n  = Data.ProtoLens.Field.field @\"maybe'utf16CodeUnitSpan\"\nname ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"name\" a) =>\n  Lens.Family2.LensLike' f s a\nname = Data.ProtoLens.Field.field @\"name\"\nnodeType ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"nodeType\" a) =>\n  Lens.Family2.LensLike' f s a\nnodeType = Data.ProtoLens.Field.field @\"nodeType\"\nnodes ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"nodes\" a) =>\n  Lens.Family2.LensLike' f s a\nnodes = Data.ProtoLens.Field.field @\"nodes\"\npath ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"path\" a) =>\n  Lens.Family2.LensLike' f s a\npath = Data.ProtoLens.Field.field @\"path\"\npaths ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"paths\" a) =>\n  Lens.Family2.LensLike' f s a\npaths = Data.ProtoLens.Field.field @\"paths\"\nservice ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"service\" a) =>\n  Lens.Family2.LensLike' f s a\nservice = Data.ProtoLens.Field.field @\"service\"\nsha ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"sha\" a) =>\n  Lens.Family2.LensLike' f s a\nsha = Data.ProtoLens.Field.field @\"sha\"\nspan ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"span\" a) =>\n  Lens.Family2.LensLike' f s a\nspan = Data.ProtoLens.Field.field @\"span\"\nstart ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"start\" a) =>\n  Lens.Family2.LensLike' f s a\nstart = Data.ProtoLens.Field.field @\"start\"\nstartingScopeStackSize ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"startingScopeStackSize\" a) =>\n  Lens.Family2.LensLike' f s a\nstartingScopeStackSize\n  = Data.ProtoLens.Field.field @\"startingScopeStackSize\"\nstartingSymbolStack ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"startingSymbolStack\" a) =>\n  Lens.Family2.LensLike' f s a\nstartingSymbolStack\n  = Data.ProtoLens.Field.field @\"startingSymbolStack\"\nstatus ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"status\" a) =>\n  Lens.Family2.LensLike' f s a\nstatus = Data.ProtoLens.Field.field @\"status\"\nsymbol ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"symbol\" a) =>\n  Lens.Family2.LensLike' f s a\nsymbol = Data.ProtoLens.Field.field @\"symbol\"\nsymbols ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"symbols\" a) =>\n  Lens.Family2.LensLike' f s a\nsymbols = Data.ProtoLens.Field.field @\"symbols\"\nsyntaxType ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"syntaxType\" a) =>\n  Lens.Family2.LensLike' f s a\nsyntaxType = Data.ProtoLens.Field.field @\"syntaxType\"\ntimestamp ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"timestamp\" a) =>\n  Lens.Family2.LensLike' f s a\ntimestamp = Data.ProtoLens.Field.field @\"timestamp\"\nto ::\n  forall f s a.\n  (Prelude.Functor f, Data.ProtoLens.Field.HasField s \"to\" a) =>\n  Lens.Family2.LensLike' f s a\nto = Data.ProtoLens.Field.field @\"to\"\nutf16CodeUnitSpan ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"utf16CodeUnitSpan\" a) =>\n  Lens.Family2.LensLike' f s a\nutf16CodeUnitSpan = Data.ProtoLens.Field.field @\"utf16CodeUnitSpan\"\nvec'blobs ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"vec'blobs\" a) =>\n  Lens.Family2.LensLike' f s a\nvec'blobs = Data.ProtoLens.Field.field @\"vec'blobs\"\nvec'endingScopeStack ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"vec'endingScopeStack\" a) =>\n  Lens.Family2.LensLike' f s a\nvec'endingScopeStack\n  = Data.ProtoLens.Field.field @\"vec'endingScopeStack\"\nvec'endingSymbolStack ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"vec'endingSymbolStack\" a) =>\n  Lens.Family2.LensLike' f s a\nvec'endingSymbolStack\n  = Data.ProtoLens.Field.field @\"vec'endingSymbolStack\"\nvec'errors ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"vec'errors\" a) =>\n  Lens.Family2.LensLike' f s a\nvec'errors = Data.ProtoLens.Field.field @\"vec'errors\"\nvec'files ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"vec'files\" a) =>\n  Lens.Family2.LensLike' f s a\nvec'files = Data.ProtoLens.Field.field @\"vec'files\"\nvec'nodes ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"vec'nodes\" a) =>\n  Lens.Family2.LensLike' f s a\nvec'nodes = Data.ProtoLens.Field.field @\"vec'nodes\"\nvec'paths ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"vec'paths\" a) =>\n  Lens.Family2.LensLike' f s a\nvec'paths = Data.ProtoLens.Field.field @\"vec'paths\"\nvec'startingSymbolStack ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"vec'startingSymbolStack\" a) =>\n  Lens.Family2.LensLike' f s a\nvec'startingSymbolStack\n  = Data.ProtoLens.Field.field @\"vec'startingSymbolStack\"\nvec'symbols ::\n  forall f s a.\n  (Prelude.Functor f,\n   Data.ProtoLens.Field.HasField s \"vec'symbols\" a) =>\n  Lens.Family2.LensLike' f s a\nvec'symbols = Data.ProtoLens.Field.field @\"vec'symbols\""
  },
  {
    "path": "semantic-proto/src/Proto/Semantic_JSON.hs",
    "content": "-- Code generated by protoc-gen-jsonpb_haskell 0.1.0, DO NOT EDIT.\n{-# OPTIONS_GHC -Wno-orphans -Wno-unused-imports -Wno-missing-export-lists #-}\nmodule Proto.Semantic_JSON where\n\nimport           Prelude(($), (.), (<$>), pure, show, Maybe(..))\n\nimport           Data.ProtoLens.Runtime.Lens.Family2 ((^.), (.~), (&))\nimport           Data.Monoid (mconcat)\nimport           Control.Monad (msum)\nimport           Data.ProtoLens (defMessage)\nimport qualified Data.Aeson as A\nimport qualified Data.Aeson.Encoding as E\nimport           Data.ProtoLens.JSONPB as JSONPB\nimport qualified Data.Text as T\n\nimport           Proto.Semantic as P\nimport           Proto.Semantic_Fields as P\n\ninstance FromJSONPB PingRequest where\n  parseJSONPB = withObject \"PingRequest\" $ \\obj -> do\n    service' <- obj .: \"service\"\n    pure $ defMessage\n      & P.service .~ service'\n\ninstance ToJSONPB PingRequest where\n  toJSONPB x = object\n    [ \"service\" .= (x^.service)\n    ]\n  toEncodingPB x = pairs\n    [ \"service\" .= (x^.service)\n    ]\n\ninstance FromJSON PingRequest where\n  parseJSON = parseJSONPB\n\ninstance ToJSON PingRequest where\n  toJSON = toAesonValue\n  toEncoding = toAesonEncoding\n\ninstance FromJSONPB PingResponse where\n  parseJSONPB = withObject \"PingResponse\" $ \\obj -> do\n    status' <- obj .: \"status\"\n    hostname' <- obj .: \"hostname\"\n    timestamp' <- obj .: \"timestamp\"\n    sha' <- obj .: \"sha\"\n    pure $ defMessage\n      & P.status .~ status'\n      & P.hostname .~ hostname'\n      & P.timestamp .~ timestamp'\n      & P.sha .~ sha'\n\ninstance ToJSONPB PingResponse where\n  toJSONPB x = object\n    [ \"status\" .= (x^.status)\n    , \"hostname\" .= (x^.hostname)\n    , \"timestamp\" .= (x^.timestamp)\n    , \"sha\" .= (x^.sha)\n    ]\n  toEncodingPB x = pairs\n    [ \"status\" .= (x^.status)\n    , \"hostname\" .= (x^.hostname)\n    , \"timestamp\" .= (x^.timestamp)\n    , \"sha\" .= (x^.sha)\n    ]\n\ninstance FromJSON PingResponse where\n  parseJSON = parseJSONPB\n\ninstance ToJSON PingResponse where\n  toJSON = toAesonValue\n  toEncoding = toAesonEncoding\n\ninstance FromJSONPB ParseTreeRequest where\n  parseJSONPB = withObject \"ParseTreeRequest\" $ \\obj -> do\n    blobs' <- obj .: \"blobs\"\n    pure $ defMessage\n      & P.blobs .~ blobs'\n\ninstance ToJSONPB ParseTreeRequest where\n  toJSONPB x = object\n    [ \"blobs\" .= (x^.blobs)\n    ]\n  toEncodingPB x = pairs\n    [ \"blobs\" .= (x^.blobs)\n    ]\n\ninstance FromJSON ParseTreeRequest where\n  parseJSON = parseJSONPB\n\ninstance ToJSON ParseTreeRequest where\n  toJSON = toAesonValue\n  toEncoding = toAesonEncoding\n\ninstance FromJSONPB ParseTreeSymbolResponse where\n  parseJSONPB = withObject \"ParseTreeSymbolResponse\" $ \\obj -> do\n    files' <- obj .: \"files\"\n    pure $ defMessage\n      & P.files .~ files'\n\ninstance ToJSONPB ParseTreeSymbolResponse where\n  toJSONPB x = object\n    [ \"files\" .= (x^.files)\n    ]\n  toEncodingPB x = pairs\n    [ \"files\" .= (x^.files)\n    ]\n\ninstance FromJSON ParseTreeSymbolResponse where\n  parseJSON = parseJSONPB\n\ninstance ToJSON ParseTreeSymbolResponse where\n  toJSON = toAesonValue\n  toEncoding = toAesonEncoding\n\ninstance FromJSONPB StackGraphRequest where\n  parseJSONPB = withObject \"StackGraphRequest\" $ \\obj -> do\n    blobs' <- obj .: \"blobs\"\n    pure $ defMessage\n      & P.blobs .~ blobs'\n\ninstance ToJSONPB StackGraphRequest where\n  toJSONPB x = object\n    [ \"blobs\" .= (x^.blobs)\n    ]\n  toEncodingPB x = pairs\n    [ \"blobs\" .= (x^.blobs)\n    ]\n\ninstance FromJSON StackGraphRequest where\n  parseJSON = parseJSONPB\n\ninstance ToJSON StackGraphRequest where\n  toJSON = toAesonValue\n  toEncoding = toAesonEncoding\n\ninstance FromJSONPB StackGraphResponse where\n  parseJSONPB = withObject \"StackGraphResponse\" $ \\obj -> do\n    files' <- obj .: \"files\"\n    pure $ defMessage\n      & P.files .~ files'\n\ninstance ToJSONPB StackGraphResponse where\n  toJSONPB x = object\n    [ \"files\" .= (x^.files)\n    ]\n  toEncodingPB x = pairs\n    [ \"files\" .= (x^.files)\n    ]\n\ninstance FromJSON StackGraphResponse where\n  parseJSON = parseJSONPB\n\ninstance ToJSON StackGraphResponse where\n  toJSON = toAesonValue\n  toEncoding = toAesonEncoding\n\ninstance FromJSONPB ParseError where\n  parseJSONPB = withObject \"ParseError\" $ \\obj -> do\n    error' <- obj .: \"error\"\n    pure $ defMessage\n      & P.error .~ error'\n\ninstance ToJSONPB ParseError where\n  toJSONPB x = object\n    [ \"error\" .= (x^.error)\n    ]\n  toEncodingPB x = pairs\n    [ \"error\" .= (x^.error)\n    ]\n\ninstance FromJSON ParseError where\n  parseJSON = parseJSONPB\n\ninstance ToJSON ParseError where\n  toJSON = toAesonValue\n  toEncoding = toAesonEncoding\n\ninstance FromJSONPB Blob where\n  parseJSONPB = withObject \"Blob\" $ \\obj -> do\n    content' <- obj .: \"content\"\n    path' <- obj .: \"path\"\n    language' <- obj .: \"language\"\n    pure $ defMessage\n      & P.content .~ content'\n      & P.path .~ path'\n      & P.language .~ language'\n\ninstance ToJSONPB Blob where\n  toJSONPB x = object\n    [ \"content\" .= (x^.content)\n    , \"path\" .= (x^.path)\n    , \"language\" .= (x^.language)\n    ]\n  toEncodingPB x = pairs\n    [ \"content\" .= (x^.content)\n    , \"path\" .= (x^.path)\n    , \"language\" .= (x^.language)\n    ]\n\ninstance FromJSON Blob where\n  parseJSON = parseJSONPB\n\ninstance ToJSON Blob where\n  toJSON = toAesonValue\n  toEncoding = toAesonEncoding\n\ninstance FromJSONPB File where\n  parseJSONPB = withObject \"File\" $ \\obj -> do\n    path' <- obj .: \"path\"\n    language' <- obj .: \"language\"\n    symbols' <- obj .: \"symbols\"\n    errors' <- obj .: \"errors\"\n    blobOid' <- obj .: \"blobOid\"\n    pure $ defMessage\n      & P.path .~ path'\n      & P.language .~ language'\n      & P.symbols .~ symbols'\n      & P.errors .~ errors'\n      & P.blobOid .~ blobOid'\n\ninstance ToJSONPB File where\n  toJSONPB x = object\n    [ \"path\" .= (x^.path)\n    , \"language\" .= (x^.language)\n    , \"symbols\" .= (x^.symbols)\n    , \"errors\" .= (x^.errors)\n    , \"blobOid\" .= (x^.blobOid)\n    ]\n  toEncodingPB x = pairs\n    [ \"path\" .= (x^.path)\n    , \"language\" .= (x^.language)\n    , \"symbols\" .= (x^.symbols)\n    , \"errors\" .= (x^.errors)\n    , \"blobOid\" .= (x^.blobOid)\n    ]\n\ninstance FromJSON File where\n  parseJSON = parseJSONPB\n\ninstance ToJSON File where\n  toJSON = toAesonValue\n  toEncoding = toAesonEncoding\n\ninstance FromJSONPB Symbol where\n  parseJSONPB = withObject \"Symbol\" $ \\obj -> do\n    symbol' <- obj .: \"symbol\"\n    kind' <- obj .: \"kind\"\n    line' <- obj .: \"line\"\n    span' <- obj A..:? \"span\"\n    docs' <- obj A..:? \"docs\"\n    nodeType' <- obj .: \"nodeType\"\n    syntaxType' <- obj .: \"syntaxType\"\n    utf16CodeUnitSpan' <- obj A..:? \"utf16CodeUnitSpan\"\n    byteRange' <- obj A..:? \"byteRange\"\n    pure $ defMessage\n      & P.symbol .~ symbol'\n      & P.kind .~ kind'\n      & P.line .~ line'\n      & P.maybe'span .~ span'\n      & P.maybe'docs .~ docs'\n      & P.nodeType .~ nodeType'\n      & P.syntaxType .~ syntaxType'\n      & P.maybe'utf16CodeUnitSpan .~ utf16CodeUnitSpan'\n      & P.maybe'byteRange .~ byteRange'\n\ninstance ToJSONPB Symbol where\n  toJSONPB x = object\n    [ \"symbol\" .= (x^.symbol)\n    , \"kind\" .= (x^.kind)\n    , \"line\" .= (x^.line)\n    , \"span\" .= (x^.maybe'span)\n    , \"docs\" .= (x^.maybe'docs)\n    , \"nodeType\" .= (x^.nodeType)\n    , \"syntaxType\" .= (x^.syntaxType)\n    , \"utf16CodeUnitSpan\" .= (x^.maybe'utf16CodeUnitSpan)\n    , \"byteRange\" .= (x^.maybe'byteRange)\n    ]\n  toEncodingPB x = pairs\n    [ \"symbol\" .= (x^.symbol)\n    , \"kind\" .= (x^.kind)\n    , \"line\" .= (x^.line)\n    , \"span\" .= (x^.maybe'span)\n    , \"docs\" .= (x^.maybe'docs)\n    , \"nodeType\" .= (x^.nodeType)\n    , \"syntaxType\" .= (x^.syntaxType)\n    , \"utf16CodeUnitSpan\" .= (x^.maybe'utf16CodeUnitSpan)\n    , \"byteRange\" .= (x^.maybe'byteRange)\n    ]\n\ninstance FromJSON Symbol where\n  parseJSON = parseJSONPB\n\ninstance ToJSON Symbol where\n  toJSON = toAesonValue\n  toEncoding = toAesonEncoding\n\ninstance FromJSONPB Docstring where\n  parseJSONPB = withObject \"Docstring\" $ \\obj -> do\n    docstring' <- obj .: \"docstring\"\n    pure $ defMessage\n      & P.docstring .~ docstring'\n\ninstance ToJSONPB Docstring where\n  toJSONPB x = object\n    [ \"docstring\" .= (x^.docstring)\n    ]\n  toEncodingPB x = pairs\n    [ \"docstring\" .= (x^.docstring)\n    ]\n\ninstance FromJSON Docstring where\n  parseJSON = parseJSONPB\n\ninstance ToJSON Docstring where\n  toJSON = toAesonValue\n  toEncoding = toAesonEncoding\n\ninstance FromJSONPB Position where\n  parseJSONPB = withObject \"Position\" $ \\obj -> do\n    line' <- obj .: \"line\"\n    column' <- obj .: \"column\"\n    pure $ defMessage\n      & P.line .~ line'\n      & P.column .~ column'\n\ninstance ToJSONPB Position where\n  toJSONPB x = object\n    [ \"line\" .= (x^.line)\n    , \"column\" .= (x^.column)\n    ]\n  toEncodingPB x = pairs\n    [ \"line\" .= (x^.line)\n    , \"column\" .= (x^.column)\n    ]\n\ninstance FromJSON Position where\n  parseJSON = parseJSONPB\n\ninstance ToJSON Position where\n  toJSON = toAesonValue\n  toEncoding = toAesonEncoding\n\ninstance FromJSONPB Span where\n  parseJSONPB = withObject \"Span\" $ \\obj -> do\n    start' <- obj A..:? \"start\"\n    end' <- obj A..:? \"end\"\n    pure $ defMessage\n      & P.maybe'start .~ start'\n      & P.maybe'end .~ end'\n\ninstance ToJSONPB Span where\n  toJSONPB x = object\n    [ \"start\" .= (x^.maybe'start)\n    , \"end\" .= (x^.maybe'end)\n    ]\n  toEncodingPB x = pairs\n    [ \"start\" .= (x^.maybe'start)\n    , \"end\" .= (x^.maybe'end)\n    ]\n\ninstance FromJSON Span where\n  parseJSON = parseJSONPB\n\ninstance ToJSON Span where\n  toJSON = toAesonValue\n  toEncoding = toAesonEncoding\n\ninstance FromJSONPB ByteRange where\n  parseJSONPB = withObject \"ByteRange\" $ \\obj -> do\n    start' <- obj .: \"start\"\n    end' <- obj .: \"end\"\n    pure $ defMessage\n      & P.start .~ start'\n      & P.end .~ end'\n\ninstance ToJSONPB ByteRange where\n  toJSONPB x = object\n    [ \"start\" .= (x^.start)\n    , \"end\" .= (x^.end)\n    ]\n  toEncodingPB x = pairs\n    [ \"start\" .= (x^.start)\n    , \"end\" .= (x^.end)\n    ]\n\ninstance FromJSON ByteRange where\n  parseJSON = parseJSONPB\n\ninstance ToJSON ByteRange where\n  toJSON = toAesonValue\n  toEncoding = toAesonEncoding\n\ninstance FromJSONPB StackGraphFile where\n  parseJSONPB = withObject \"StackGraphFile\" $ \\obj -> do\n    path' <- obj .: \"path\"\n    language' <- obj .: \"language\"\n    nodes' <- obj .: \"nodes\"\n    paths' <- obj .: \"paths\"\n    errors' <- obj .: \"errors\"\n    pure $ defMessage\n      & P.path .~ path'\n      & P.language .~ language'\n      & P.nodes .~ nodes'\n      & P.paths .~ paths'\n      & P.errors .~ errors'\n\ninstance ToJSONPB StackGraphFile where\n  toJSONPB x = object\n    [ \"path\" .= (x^.path)\n    , \"language\" .= (x^.language)\n    , \"nodes\" .= (x^.nodes)\n    , \"paths\" .= (x^.paths)\n    , \"errors\" .= (x^.errors)\n    ]\n  toEncodingPB x = pairs\n    [ \"path\" .= (x^.path)\n    , \"language\" .= (x^.language)\n    , \"nodes\" .= (x^.nodes)\n    , \"paths\" .= (x^.paths)\n    , \"errors\" .= (x^.errors)\n    ]\n\ninstance FromJSON StackGraphFile where\n  parseJSON = parseJSONPB\n\ninstance ToJSON StackGraphFile where\n  toJSON = toAesonValue\n  toEncoding = toAesonEncoding\n\ninstance FromJSONPB StackGraphNode where\n  parseJSONPB = withObject \"StackGraphNode\" $ \\obj -> do\n    id' <- obj .: \"id\"\n    name' <- obj .: \"name\"\n    line' <- obj .: \"line\"\n    span' <- obj A..:? \"span\"\n    syntaxType' <- obj .: \"syntaxType\"\n    nodeType' <- obj .: \"nodeType\"\n    pure $ defMessage\n      & P.id .~ id'\n      & P.name .~ name'\n      & P.line .~ line'\n      & P.maybe'span .~ span'\n      & P.syntaxType .~ syntaxType'\n      & P.nodeType .~ nodeType'\n\ninstance ToJSONPB StackGraphNode where\n  toJSONPB x = object\n    [ \"id\" .= (x^.id)\n    , \"name\" .= (x^.name)\n    , \"line\" .= (x^.line)\n    , \"span\" .= (x^.maybe'span)\n    , \"syntaxType\" .= (x^.syntaxType)\n    , \"nodeType\" .= (x^.nodeType)\n    ]\n  toEncodingPB x = pairs\n    [ \"id\" .= (x^.id)\n    , \"name\" .= (x^.name)\n    , \"line\" .= (x^.line)\n    , \"span\" .= (x^.maybe'span)\n    , \"syntaxType\" .= (x^.syntaxType)\n    , \"nodeType\" .= (x^.nodeType)\n    ]\n\ninstance FromJSON StackGraphNode where\n  parseJSON = parseJSONPB\n\ninstance ToJSON StackGraphNode where\n  toJSON = toAesonValue\n  toEncoding = toAesonEncoding\n\ninstance FromJSONPB StackGraphPath where\n  parseJSONPB = withObject \"StackGraphPath\" $ \\obj -> do\n    startingSymbolStack' <- obj .: \"startingSymbolStack\"\n    startingScopeStackSize' <- obj .: \"startingScopeStackSize\"\n    from' <- obj .: \"from\"\n    edges' <- obj .: \"edges\"\n    to' <- obj .: \"to\"\n    endingScopeStack' <- obj .: \"endingScopeStack\"\n    endingSymbolStack' <- obj .: \"endingSymbolStack\"\n    pure $ defMessage\n      & P.startingSymbolStack .~ startingSymbolStack'\n      & P.startingScopeStackSize .~ startingScopeStackSize'\n      & P.from .~ from'\n      & P.edges .~ edges'\n      & P.to .~ to'\n      & P.endingScopeStack .~ endingScopeStack'\n      & P.endingSymbolStack .~ endingSymbolStack'\n\ninstance ToJSONPB StackGraphPath where\n  toJSONPB x = object\n    [ \"startingSymbolStack\" .= (x^.startingSymbolStack)\n    , \"startingScopeStackSize\" .= (x^.startingScopeStackSize)\n    , \"from\" .= (x^.from)\n    , \"edges\" .= (x^.edges)\n    , \"to\" .= (x^.to)\n    , \"endingScopeStack\" .= (x^.endingScopeStack)\n    , \"endingSymbolStack\" .= (x^.endingSymbolStack)\n    ]\n  toEncodingPB x = pairs\n    [ \"startingSymbolStack\" .= (x^.startingSymbolStack)\n    , \"startingScopeStackSize\" .= (x^.startingScopeStackSize)\n    , \"from\" .= (x^.from)\n    , \"edges\" .= (x^.edges)\n    , \"to\" .= (x^.to)\n    , \"endingScopeStack\" .= (x^.endingScopeStack)\n    , \"endingSymbolStack\" .= (x^.endingSymbolStack)\n    ]\n\ninstance FromJSON StackGraphPath where\n  parseJSON = parseJSONPB\n\ninstance ToJSON StackGraphPath where\n  toJSON = toAesonValue\n  toEncoding = toAesonEncoding\n\ninstance FromJSONPB NodeType where\n  parseJSONPB (JSONPB.String \"ROOT_SCOPE\") = pure ROOT_SCOPE\n  parseJSONPB (JSONPB.String \"JUMP_TO_SCOPE\") = pure JUMP_TO_SCOPE\n  parseJSONPB (JSONPB.String \"EXPORTED_SCOPE\") = pure EXPORTED_SCOPE\n  parseJSONPB (JSONPB.String \"DEFINITION\") = pure DEFINITION\n  parseJSONPB (JSONPB.String \"REFERENCE\") = pure REFERENCE\n  parseJSONPB x = typeMismatch \"NodeType\" x\n\ninstance ToJSONPB NodeType where\n  toJSONPB x _ = A.String . T.toUpper . T.pack $ show x\n  toEncodingPB x _ = E.text . T.toUpper . T.pack  $ show x\n\ninstance FromJSON NodeType where\n  parseJSON = parseJSONPB\n\ninstance ToJSON NodeType where\n  toJSON = toAesonValue\n  toEncoding = toAesonEncoding\n\ninstance FromJSONPB SyntaxType where\n  parseJSONPB (JSONPB.String \"FUNCTION\") = pure FUNCTION\n  parseJSONPB (JSONPB.String \"METHOD\") = pure METHOD\n  parseJSONPB (JSONPB.String \"CLASS\") = pure CLASS\n  parseJSONPB (JSONPB.String \"MODULE\") = pure MODULE\n  parseJSONPB (JSONPB.String \"CALL\") = pure CALL\n  parseJSONPB (JSONPB.String \"TYPE\") = pure TYPE\n  parseJSONPB (JSONPB.String \"INTERFACE\") = pure INTERFACE\n  parseJSONPB (JSONPB.String \"IMPLEMENTATION\") = pure IMPLEMENTATION\n  parseJSONPB x = typeMismatch \"SyntaxType\" x\n\ninstance ToJSONPB SyntaxType where\n  toJSONPB x _ = A.String . T.toUpper . T.pack $ show x\n  toEncodingPB x _ = E.text . T.toUpper . T.pack  $ show x\n\ninstance FromJSON SyntaxType where\n  parseJSON = parseJSONPB\n\ninstance ToJSON SyntaxType where\n  toJSON = toAesonValue\n  toEncoding = toAesonEncoding\n"
  },
  {
    "path": "semantic-python/BUILD.bazel",
    "content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\n    \"//:build/common.bzl\",\n    \"semantic_language_library\",\n    \"semantic_language_parsing_test\",\n)\nload(\n    \"@rules_haskell//haskell:defs.bzl\",\n    \"haskell_binary\",\n)\n\nsemantic_language_library(\n    name = \"semantic-python\",\n    srcs = glob(\n        include = [\"src/**/*.hs\"],\n        exclude = [\n            \"src/Language/Python/Core.hs\",\n            \"src/Language/Python/Failure.hs\",\n            \"src/Language/Python/ScopeGraph.hs\",\n        ],\n    ),\n    language = \"python\",\n)\n\nsemantic_language_parsing_test(language = \"python\")\n\nhaskell_binary(\n    name = \"bench\",\n    srcs = glob([\"bench/**/*.hs\"]),\n    deps = [\n        \":semantic-python\",\n        \"//:base\",\n        \"//:bytestring\",\n        \"//semantic-ast\",\n        \"@stackage//:gauge\",\n    ],\n)\n"
  },
  {
    "path": "semantic-python/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 GitHub\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "semantic-python/README.md",
    "content": "# Semantic support for Python\n\nThis package implements `semantic` support for Python.\n"
  },
  {
    "path": "semantic-python/Setup.hs",
    "content": "import Distribution.Simple\nmain = defaultMain\n"
  },
  {
    "path": "semantic-python/bench/Bench.hs",
    "content": "{-# LANGUAGE TypeApplications #-}\nmodule Main\n( main\n) where\n\nimport           Control.Monad\nimport qualified Data.ByteString as B\nimport           Gauge\nimport           System.Exit (die)\nimport           System.Environment (getArgs)\nimport qualified Language.Python.AST as Py\nimport           Language.Python.Grammar\nimport           AST.Unmarshal\n\nmain :: IO ()\nmain = do\n  getArgs >>= defaultMain . map (bench <*> nfIO . (() <$) . parseFile)\n\nparseFile :: FilePath -> IO (Py.Module ())\nparseFile = either die pure <=< parseByteString @Py.Module @() tree_sitter_python <=< B.readFile\n"
  },
  {
    "path": "semantic-python/semantic-python.cabal",
    "content": "cabal-version:       2.4\n\nname:                semantic-python\nversion:             0.0.0.0\nsynopsis:            Semantic support for Python.\ndescription:         Semantic support for Python.\nhomepage:            https://github.com/github/semantic/tree/master/semantic-python#readme\nbug-reports:         https://github.com/github/semantic/issues\nlicense:             MIT\nlicense-file:        LICENSE\nauthor:              The Semantic authors\nmaintainer:          opensource+semantic@github.com\ncopyright:           (c) 2019 GitHub, Inc.\ncategory:            Language\nbuild-type:          Simple\nstability:           alpha\nextra-source-files:  README.md\n\ntested-with:         GHC == 8.6.5\n\ncommon haskell\n  default-language:    Haskell2010\n  ghc-options:\n    -Weverything\n    -Wno-missing-local-signatures\n    -Wno-missing-import-lists\n    -Wno-implicit-prelude\n    -Wno-safe\n    -Wno-unsafe\n    -Wno-name-shadowing\n    -Wno-monomorphism-restriction\n    -Wno-missed-specialisations\n    -Wno-all-missed-specialisations\n    -Wno-star-is-type\n  if (impl(ghc >= 8.8))\n    ghc-options: -Wno-missing-deriving-strategies\n  if (impl(ghc >= 8.10))\n    ghc-options:\n      -Wno-missing-safe-haskell-mode\n      -Wno-prepositive-qualified-module\n  if (impl(ghc >= 9.2))\n    ghc-options:\n      -Wno-missing-kind-signatures\n  cpp-options:\n    -DBAZEL_BUILD=0\n\n\nlibrary\n  import: haskell\n  exposed-modules:\n    Language.Python\n    Language.Python.AST\n    -- Language.Python.Core\n    Language.Python.Grammar\n    -- Language.Python.Failure\n    Language.Python.Patterns\n    -- Language.Python.ScopeGraph\n    Language.Python.Tags\n  hs-source-dirs: src\n  build-depends:\n    , base  >= 4.13 && < 5\n    , fused-effects ^>= 1.1\n    , semantic-analysis ^>= 0\n    , semantic-ast\n    , semantic-proto ^>= 0\n    , semantic-source ^>= 0.2\n    , semantic-tags ^>= 0.0\n    , template-haskell  >= 2.15 && < 2.22\n    , text ^>= 1.2.3\n    , tree-sitter ^>= 0.9\n    , tree-sitter-python ^>= 0.9.0.2\n\n-- test-suite compiling\n--   import: haskell\n--   type: exitcode-stdio-1.0\n--   hs-source-dirs: test\n--   main-is: CoreTest.hs\n--   ghc-options: -threaded\n\n  -- build-depends: semantic-python\n  --              , aeson ^>= 1.4.4\n  --              , aeson-pretty ^>= 0.8.7\n  --              , bytestring ^>= 0.10.8.2\n  --              , containers ^>= 0.6\n  --              , directory ^>= 1.3.3\n  --              , exceptions ^>= 0.10.2\n  --              , pretty-show ^>= 1.9.5\n  --              , process ^>= 1.6.5\n  --              , resourcet ^>= 1.2.2\n  --              , semantic-analysis ^>= 0\n  --              , streaming ^>= 0.2.2\n  --              , streaming-process ^>= 0.1\n  --              , streaming-bytestring ^>= 0.1.6\n  --              , tasty ^>= 1.2.3\n  --              , tasty-hunit ^>= 0.10.0.2\n  --              , trifecta >= 2 && <3\n  --              , unordered-containers ^>= 0.2.10\n\n  -- other-modules:\n  --             Instances\n            -- , Directive\n\n-- test-suite graphing\n--   import: haskell\n--   type: exitcode-stdio-1.0\n--   hs-source-dirs: test-graphing\n--   main-is: GraphTest.hs\n--   ghc-options: -threaded\n\n  -- build-depends: base\n  --              , semantic-python\n  --             --  , semantic-scope-graph\n  --              , bytestring\n  --              , tasty\n  --              , tasty-hunit\n\n\ntest-suite test\n  import: haskell\n  type:             exitcode-stdio-1.0\n  hs-source-dirs:   test\n  main-is:          PreciseTest.hs\n  build-depends:\n    , base\n    , semantic-ast\n    , semantic-python\n    , tasty\n    , tree-sitter-python ^>= 0.9.0.2\n\nexecutable benchmark\n  import: haskell\n  hs-source-dirs: bench\n  ghc-options: -threaded -rtsopts \"-with-rtsopts=-N -A4m -n2m\"\n  main-is: Bench.hs\n  build-depends:\n    , base\n    , bytestring\n    , gauge ^>= 0.2.5\n    , semantic-ast\n    , semantic-python\n"
  },
  {
    "path": "semantic-python/src/Language/Python/AST.hs",
    "content": "-- Language definition for Python, generated by ast-generate. Do not edit!\n{-# LANGUAGE CPP #-}\n{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE DeriveTraversable #-}\n{-# LANGUAGE DerivingStrategies #-}\n{-# LANGUAGE DuplicateRecordFields #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE QuantifiedConstraints #-}\n{-# LANGUAGE StandaloneDeriving #-}\n{-# LANGUAGE TemplateHaskell #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\n{-# OPTIONS_GHC -fno-warn-unused-imports #-}\n\nmodule Language.Python.AST (module Language.Python.AST, getTestCorpusDir) where\n\nimport qualified AST.Parse\nimport qualified AST.Token\nimport qualified AST.Traversable1.Class\nimport qualified AST.Unmarshal\nimport qualified Data.Foldable\nimport qualified Data.List as Data.OldList\nimport qualified Data.Maybe as GHC.Maybe\nimport qualified Data.Text.Internal\nimport qualified Data.Traversable\nimport qualified GHC.Base\nimport qualified GHC.Generics\nimport qualified GHC.Records\nimport qualified GHC.Show\nimport qualified TreeSitter.Node\nimport TreeSitter.Python (getTestCorpusDir)\nimport qualified Prelude as GHC.Classes\n\ndebugSymbolNames :: [GHC.Base.String]\ndebugSymbolNames = debugSymbolNames_0\n\ndebugSymbolNames_0 :: [GHC.Base.String]\ndebugSymbolNames_0 =\n  [ \"end\",\n    \"identifier\",\n    \"_import\",\n    \"_.\",\n    \"_from\",\n    \"___future__\",\n    \"_(\",\n    \"_)\",\n    \"_,\",\n    \"_as\",\n    \"_*\",\n    \"_print\",\n    \"_>>\",\n    \"_assert\",\n    \"_:=\",\n    \"_return\",\n    \"_del\",\n    \"_raise\",\n    \"_pass\",\n    \"_break\",\n    \"_continue\",\n    \"_if\",\n    \"_:\",\n    \"_elif\",\n    \"_else\",\n    \"_async\",\n    \"_for\",\n    \"_in\",\n    \"_while\",\n    \"_try\",\n    \"_except\",\n    \"_finally\",\n    \"_with\",\n    \"_def\",\n    \"_->\",\n    \"_=\",\n    \"_**\",\n    \"_global\",\n    \"_nonlocal\",\n    \"_exec\",\n    \"_class\",\n    \"_@\",\n    \"_not\",\n    \"_and\",\n    \"_or\",\n    \"_+\",\n    \"_-\",\n    \"_/\",\n    \"_%\",\n    \"_//\",\n    \"_|\",\n    \"_&\",\n    \"_^\",\n    \"_<<\",\n    \"_~\",\n    \"_<\",\n    \"_<=\",\n    \"_==\",\n    \"_!=\",\n    \"_>=\",\n    \"_>\",\n    \"_<>\",\n    \"_is\",\n    \"_lambda\",\n    \"_+=\",\n    \"_-=\",\n    \"_*=\",\n    \"_/=\",\n    \"_@=\",\n    \"_//=\",\n    \"_%=\",\n    \"_**=\",\n    \"_>>=\",\n    \"_<<=\",\n    \"_&=\",\n    \"_^=\",\n    \"_|=\",\n    \"_yield\",\n    \"_[\",\n    \"_]\",\n    \"ellipsis\",\n    \"_{\",\n    \"_}\",\n    \"escape_sequence\",\n    \"_not_escape_sequence\",\n    \"_format_specifier_token1\",\n    \"type_conversion\",\n    \"integer\",\n    \"float\",\n    \"true\",\n    \"false\",\n    \"none\",\n    \"_await\",\n    \"comment\",\n    \"_semicolon\",\n    \"_newline\",\n    \"_indent\",\n    \"_dedent\",\n    \"_\\\"\",\n    \"_string_content\",\n    \"_\\\"\",\n    \"module\",\n    \"_statement\",\n    \"_simple_statements\",\n    \"import_statement\",\n    \"import_prefix\",\n    \"relative_import\",\n    \"future_import_statement\",\n    \"import_from_statement\",\n    \"_import_list\",\n    \"aliased_import\",\n    \"wildcard_import\",\n    \"print_statement\",\n    \"chevron\",\n    \"assert_statement\",\n    \"expression_statement\",\n    \"named_expression\",\n    \"return_statement\",\n    \"delete_statement\",\n    \"raise_statement\",\n    \"pass_statement\",\n    \"break_statement\",\n    \"continue_statement\",\n    \"if_statement\",\n    \"elif_clause\",\n    \"else_clause\",\n    \"for_statement\",\n    \"while_statement\",\n    \"try_statement\",\n    \"except_clause\",\n    \"finally_clause\",\n    \"with_statement\",\n    \"with_item\",\n    \"function_definition\",\n    \"parameters\",\n    \"lambda_parameters\",\n    \"_parameters\",\n    \"default_parameter\",\n    \"typed_default_parameter\",\n    \"list_splat\",\n    \"dictionary_splat\",\n    \"global_statement\",\n    \"nonlocal_statement\",\n    \"exec_statement\",\n    \"class_definition\",\n    \"parenthesized_expression\",\n    \"argument_list\",\n    \"decorated_definition\",\n    \"decorator\",\n    \"block\",\n    \"variables\",\n    \"expression_list\",\n    \"dotted_name\",\n    \"_expression_within_for_in_clause\",\n    \"_expression\",\n    \"_primary_expression\",\n    \"not_operator\",\n    \"boolean_operator\",\n    \"binary_operator\",\n    \"unary_operator\",\n    \"comparison_operator\",\n    \"lambda\",\n    \"lambda\",\n    \"assignment\",\n    \"augmented_assignment\",\n    \"_right_hand_side\",\n    \"yield\",\n    \"attribute\",\n    \"subscript\",\n    \"slice\",\n    \"call\",\n    \"typed_parameter\",\n    \"type\",\n    \"keyword_argument\",\n    \"list\",\n    \"_comprehension_clauses\",\n    \"list_comprehension\",\n    \"dictionary\",\n    \"dictionary_comprehension\",\n    \"pair\",\n    \"set\",\n    \"set_comprehension\",\n    \"parenthesized_expression\",\n    \"tuple\",\n    \"generator_expression\",\n    \"for_in_clause\",\n    \"if_clause\",\n    \"conditional_expression\",\n    \"concatenated_string\",\n    \"string\",\n    \"interpolation\",\n    \"format_specifier\",\n    \"format_expression\",\n    \"await\",\n    \"_module_repeat1\",\n    \"__simple_statements_repeat1\",\n    \"_import_prefix_repeat1\",\n    \"__import_list_repeat1\",\n    \"_print_statement_repeat1\",\n    \"_assert_statement_repeat1\",\n    \"_if_statement_repeat1\",\n    \"_try_statement_repeat1\",\n    \"_with_statement_repeat1\",\n    \"__parameters_repeat1\",\n    \"_global_statement_repeat1\",\n    \"_argument_list_repeat1\",\n    \"_decorated_definition_repeat1\",\n    \"_variables_repeat1\",\n    \"_dotted_name_repeat1\",\n    \"_comparison_operator_repeat1\",\n    \"_subscript_repeat1\",\n    \"_list_repeat1\",\n    \"__comprehension_clauses_repeat1\",\n    \"_dictionary_repeat1\",\n    \"_tuple_repeat1\",\n    \"_for_in_clause_repeat1\",\n    \"_concatenated_string_repeat1\",\n    \"_string_repeat1\",\n    \"_format_specifier_repeat1\"\n  ]\n\nnewtype CompoundStatement a = CompoundStatement {getCompoundStatement :: ((ClassDefinition GHC.Generics.:+: DecoratedDefinition GHC.Generics.:+: ForStatement GHC.Generics.:+: FunctionDefinition GHC.Generics.:+: IfStatement GHC.Generics.:+: TryStatement GHC.Generics.:+: WhileStatement GHC.Generics.:+: WithStatement) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1.\n      AST.Traversable1.Class.Traversable1 a_1\n    )\n\ninstance GHC.Records.HasField \"ann\" (CompoundStatement a_2) a_2 where\n  getField = AST.Unmarshal.gann GHC.Base.. getCompoundStatement\n\nderiving instance GHC.Classes.Eq a_3 => GHC.Classes.Eq (CompoundStatement a_3)\n\nderiving instance GHC.Classes.Ord a_4 => GHC.Classes.Ord (CompoundStatement a_4)\n\nderiving instance GHC.Show.Show a_5 => GHC.Show.Show (CompoundStatement a_5)\n\ninstance AST.Unmarshal.Unmarshal CompoundStatement\n\ninstance Data.Foldable.Foldable CompoundStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CompoundStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CompoundStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Expression a = Expression {getExpression :: ((PrimaryExpression GHC.Generics.:+: Await GHC.Generics.:+: BooleanOperator GHC.Generics.:+: ComparisonOperator GHC.Generics.:+: ConditionalExpression GHC.Generics.:+: Lambda GHC.Generics.:+: NamedExpression GHC.Generics.:+: NotOperator) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_6.\n      AST.Traversable1.Class.Traversable1 a_6\n    )\n\ninstance GHC.Records.HasField \"ann\" (Expression a_7) a_7 where\n  getField = AST.Unmarshal.gann GHC.Base.. getExpression\n\nderiving instance GHC.Classes.Eq a_8 => GHC.Classes.Eq (Expression a_8)\n\nderiving instance GHC.Classes.Ord a_9 => GHC.Classes.Ord (Expression a_9)\n\nderiving instance GHC.Show.Show a_10 => GHC.Show.Show (Expression a_10)\n\ninstance AST.Unmarshal.Unmarshal Expression\n\ninstance Data.Foldable.Foldable Expression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Expression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Expression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Parameter a = Parameter {getParameter :: ((DefaultParameter GHC.Generics.:+: DictionarySplat GHC.Generics.:+: Identifier GHC.Generics.:+: ListSplat GHC.Generics.:+: Tuple GHC.Generics.:+: TypedDefaultParameter GHC.Generics.:+: TypedParameter) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_11.\n      AST.Traversable1.Class.Traversable1 a_11\n    )\n\ninstance GHC.Records.HasField \"ann\" (Parameter a_12) a_12 where\n  getField = AST.Unmarshal.gann GHC.Base.. getParameter\n\nderiving instance GHC.Classes.Eq a_13 => GHC.Classes.Eq (Parameter a_13)\n\nderiving instance GHC.Classes.Ord a_14 => GHC.Classes.Ord (Parameter a_14)\n\nderiving instance GHC.Show.Show a_15 => GHC.Show.Show (Parameter a_15)\n\ninstance AST.Unmarshal.Unmarshal Parameter\n\ninstance Data.Foldable.Foldable Parameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Parameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Parameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype PrimaryExpression a = PrimaryExpression {getPrimaryExpression :: ((Attribute GHC.Generics.:+: BinaryOperator GHC.Generics.:+: Call GHC.Generics.:+: ConcatenatedString GHC.Generics.:+: Dictionary GHC.Generics.:+: DictionaryComprehension GHC.Generics.:+: Ellipsis GHC.Generics.:+: False GHC.Generics.:+: Float GHC.Generics.:+: GeneratorExpression GHC.Generics.:+: Identifier GHC.Generics.:+: Integer GHC.Generics.:+: List GHC.Generics.:+: ListComprehension GHC.Generics.:+: None GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: Set GHC.Generics.:+: SetComprehension GHC.Generics.:+: String GHC.Generics.:+: Subscript GHC.Generics.:+: True GHC.Generics.:+: Tuple GHC.Generics.:+: UnaryOperator) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_16.\n      AST.Traversable1.Class.Traversable1 a_16\n    )\n\ninstance GHC.Records.HasField \"ann\" (PrimaryExpression a_17) a_17 where\n  getField = AST.Unmarshal.gann GHC.Base.. getPrimaryExpression\n\nderiving instance GHC.Classes.Eq a_18 => GHC.Classes.Eq (PrimaryExpression a_18)\n\nderiving instance GHC.Classes.Ord a_19 => GHC.Classes.Ord (PrimaryExpression a_19)\n\nderiving instance GHC.Show.Show a_20 => GHC.Show.Show (PrimaryExpression a_20)\n\ninstance AST.Unmarshal.Unmarshal PrimaryExpression\n\ninstance Data.Foldable.Foldable PrimaryExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PrimaryExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PrimaryExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype SimpleStatement a = SimpleStatement {getSimpleStatement :: ((AssertStatement GHC.Generics.:+: BreakStatement GHC.Generics.:+: ContinueStatement GHC.Generics.:+: DeleteStatement GHC.Generics.:+: ExecStatement GHC.Generics.:+: ExpressionStatement GHC.Generics.:+: FutureImportStatement GHC.Generics.:+: GlobalStatement GHC.Generics.:+: ImportFromStatement GHC.Generics.:+: ImportStatement GHC.Generics.:+: NonlocalStatement GHC.Generics.:+: PassStatement GHC.Generics.:+: PrintStatement GHC.Generics.:+: RaiseStatement GHC.Generics.:+: ReturnStatement) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_21.\n      AST.Traversable1.Class.Traversable1 a_21\n    )\n\ninstance GHC.Records.HasField \"ann\" (SimpleStatement a_22) a_22 where\n  getField = AST.Unmarshal.gann GHC.Base.. getSimpleStatement\n\nderiving instance GHC.Classes.Eq a_23 => GHC.Classes.Eq (SimpleStatement a_23)\n\nderiving instance GHC.Classes.Ord a_24 => GHC.Classes.Ord (SimpleStatement a_24)\n\nderiving instance GHC.Show.Show a_25 => GHC.Show.Show (SimpleStatement a_25)\n\ninstance AST.Unmarshal.Unmarshal SimpleStatement\n\ninstance Data.Foldable.Foldable SimpleStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SimpleStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SimpleStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AliasedImport a = AliasedImport\n  { ann :: a,\n    alias :: (AST.Parse.Err (Identifier a)),\n    name :: (AST.Parse.Err (DottedName a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_26.\n      AST.Traversable1.Class.Traversable1 a_26\n    )\n\ninstance AST.Unmarshal.SymbolMatching AliasedImport where\n  matchedSymbols _ = [110]\n  showFailure _ node_27 =\n    \"expected \"\n      GHC.Base.<> ( \"aliased_import\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_27 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_27) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_28 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_29 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_30 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_31 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_28\n        c1_29 = TreeSitter.Node.nodeStartPoint node_27\n      TreeSitter.Node.TSPoint\n        r2_30\n        c2_31 = TreeSitter.Node.nodeEndPoint node_27\n\nderiving instance GHC.Classes.Eq a_32 => GHC.Classes.Eq (AliasedImport a_32)\n\nderiving instance GHC.Classes.Ord a_33 => GHC.Classes.Ord (AliasedImport a_33)\n\nderiving instance GHC.Show.Show a_34 => GHC.Show.Show (AliasedImport a_34)\n\ninstance AST.Unmarshal.Unmarshal AliasedImport\n\ninstance Data.Foldable.Foldable AliasedImport where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AliasedImport where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AliasedImport where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ArgumentList a = ArgumentList\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: DictionarySplat GHC.Generics.:+: KeywordArgument GHC.Generics.:+: ListSplat GHC.Generics.:+: ParenthesizedExpression) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_35.\n      AST.Traversable1.Class.Traversable1 a_35\n    )\n\ninstance AST.Unmarshal.SymbolMatching ArgumentList where\n  matchedSymbols _ = [146]\n  showFailure _ node_36 =\n    \"expected \"\n      GHC.Base.<> ( \"argument_list\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_36 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_36) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_37 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_38 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_39 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_40 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_37\n        c1_38 = TreeSitter.Node.nodeStartPoint node_36\n      TreeSitter.Node.TSPoint\n        r2_39\n        c2_40 = TreeSitter.Node.nodeEndPoint node_36\n\nderiving instance GHC.Classes.Eq a_41 => GHC.Classes.Eq (ArgumentList a_41)\n\nderiving instance GHC.Classes.Ord a_42 => GHC.Classes.Ord (ArgumentList a_42)\n\nderiving instance GHC.Show.Show a_43 => GHC.Show.Show (ArgumentList a_43)\n\ninstance AST.Unmarshal.Unmarshal ArgumentList\n\ninstance Data.Foldable.Foldable ArgumentList where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ArgumentList where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ArgumentList where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AssertStatement a = AssertStatement\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Expression a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_44.\n      AST.Traversable1.Class.Traversable1 a_44\n    )\n\ninstance AST.Unmarshal.SymbolMatching AssertStatement where\n  matchedSymbols _ = [114]\n  showFailure _ node_45 =\n    \"expected \"\n      GHC.Base.<> ( \"assert_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_45 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_45) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_46 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_47 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_48 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_49 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_46\n        c1_47 = TreeSitter.Node.nodeStartPoint node_45\n      TreeSitter.Node.TSPoint\n        r2_48\n        c2_49 = TreeSitter.Node.nodeEndPoint node_45\n\nderiving instance GHC.Classes.Eq a_50 => GHC.Classes.Eq (AssertStatement a_50)\n\nderiving instance GHC.Classes.Ord a_51 => GHC.Classes.Ord (AssertStatement a_51)\n\nderiving instance GHC.Show.Show a_52 => GHC.Show.Show (AssertStatement a_52)\n\ninstance AST.Unmarshal.Unmarshal AssertStatement\n\ninstance Data.Foldable.Foldable AssertStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AssertStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AssertStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Assignment a = Assignment\n  { ann :: a,\n    left :: (AST.Parse.Err (ExpressionList a)),\n    right :: (GHC.Maybe.Maybe (AST.Parse.Err ((Assignment GHC.Generics.:+: AugmentedAssignment GHC.Generics.:+: ExpressionList GHC.Generics.:+: Yield) a))),\n    type' :: (GHC.Maybe.Maybe (AST.Parse.Err (Type a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_53.\n      AST.Traversable1.Class.Traversable1 a_53\n    )\n\ninstance AST.Unmarshal.SymbolMatching Assignment where\n  matchedSymbols _ = [163]\n  showFailure _ node_54 =\n    \"expected \"\n      GHC.Base.<> ( \"assignment\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_54 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_54) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_55 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_56 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_57 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_58 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_55\n        c1_56 = TreeSitter.Node.nodeStartPoint node_54\n      TreeSitter.Node.TSPoint\n        r2_57\n        c2_58 = TreeSitter.Node.nodeEndPoint node_54\n\nderiving instance GHC.Classes.Eq a_59 => GHC.Classes.Eq (Assignment a_59)\n\nderiving instance GHC.Classes.Ord a_60 => GHC.Classes.Ord (Assignment a_60)\n\nderiving instance GHC.Show.Show a_61 => GHC.Show.Show (Assignment a_61)\n\ninstance AST.Unmarshal.Unmarshal Assignment\n\ninstance Data.Foldable.Foldable Assignment where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Assignment where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Assignment where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Attribute a = Attribute\n  { ann :: a,\n    attribute :: (AST.Parse.Err (Identifier a)),\n    object :: (AST.Parse.Err (PrimaryExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_62.\n      AST.Traversable1.Class.Traversable1 a_62\n    )\n\ninstance AST.Unmarshal.SymbolMatching Attribute where\n  matchedSymbols _ = [167]\n  showFailure _ node_63 =\n    \"expected \"\n      GHC.Base.<> ( \"attribute\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_63 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_63) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_64 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_65 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_66 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_67 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_64\n        c1_65 = TreeSitter.Node.nodeStartPoint node_63\n      TreeSitter.Node.TSPoint\n        r2_66\n        c2_67 = TreeSitter.Node.nodeEndPoint node_63\n\nderiving instance GHC.Classes.Eq a_68 => GHC.Classes.Eq (Attribute a_68)\n\nderiving instance GHC.Classes.Ord a_69 => GHC.Classes.Ord (Attribute a_69)\n\nderiving instance GHC.Show.Show a_70 => GHC.Show.Show (Attribute a_70)\n\ninstance AST.Unmarshal.Unmarshal Attribute\n\ninstance Data.Foldable.Foldable Attribute where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Attribute where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Attribute where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AugmentedAssignment a = AugmentedAssignment\n  { ann :: a,\n    operator :: (AST.Parse.Err ((AnonymousPercentEqual GHC.Generics.:+: AnonymousAmpersandEqual GHC.Generics.:+: AnonymousStarStarEqual GHC.Generics.:+: AnonymousStarEqual GHC.Generics.:+: AnonymousPlusEqual GHC.Generics.:+: AnonymousMinusEqual GHC.Generics.:+: AnonymousSlashSlashEqual GHC.Generics.:+: AnonymousSlashEqual GHC.Generics.:+: AnonymousLAngleLAngleEqual GHC.Generics.:+: AnonymousRAngleRAngleEqual GHC.Generics.:+: AnonymousAtEqual GHC.Generics.:+: AnonymousCaretEqual GHC.Generics.:+: AnonymousPipeEqual) a)),\n    left :: (AST.Parse.Err (ExpressionList a)),\n    right :: (AST.Parse.Err ((Assignment GHC.Generics.:+: AugmentedAssignment GHC.Generics.:+: ExpressionList GHC.Generics.:+: Yield) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_71.\n      AST.Traversable1.Class.Traversable1 a_71\n    )\n\ninstance AST.Unmarshal.SymbolMatching AugmentedAssignment where\n  matchedSymbols _ = [164]\n  showFailure _ node_72 =\n    \"expected \"\n      GHC.Base.<> ( \"augmented_assignment\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_72 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_72) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_73 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_74 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_75 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_76 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_73\n        c1_74 = TreeSitter.Node.nodeStartPoint node_72\n      TreeSitter.Node.TSPoint\n        r2_75\n        c2_76 = TreeSitter.Node.nodeEndPoint node_72\n\nderiving instance GHC.Classes.Eq a_77 => GHC.Classes.Eq (AugmentedAssignment a_77)\n\nderiving instance GHC.Classes.Ord a_78 => GHC.Classes.Ord (AugmentedAssignment a_78)\n\nderiving instance GHC.Show.Show a_79 => GHC.Show.Show (AugmentedAssignment a_79)\n\ninstance AST.Unmarshal.Unmarshal AugmentedAssignment\n\ninstance Data.Foldable.Foldable AugmentedAssignment where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AugmentedAssignment where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AugmentedAssignment where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Await a = Await {ann :: a, extraChildren :: (AST.Parse.Err (Expression a))}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_80.\n      AST.Traversable1.Class.Traversable1 a_80\n    )\n\ninstance AST.Unmarshal.SymbolMatching Await where\n  matchedSymbols _ = [193]\n  showFailure _ node_81 =\n    \"expected \"\n      GHC.Base.<> ( \"await\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_81 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_81) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_82 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_83 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_84 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_85 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_82\n        c1_83 = TreeSitter.Node.nodeStartPoint node_81\n      TreeSitter.Node.TSPoint\n        r2_84\n        c2_85 = TreeSitter.Node.nodeEndPoint node_81\n\nderiving instance GHC.Classes.Eq a_86 => GHC.Classes.Eq (Await a_86)\n\nderiving instance GHC.Classes.Ord a_87 => GHC.Classes.Ord (Await a_87)\n\nderiving instance GHC.Show.Show a_88 => GHC.Show.Show (Await a_88)\n\ninstance AST.Unmarshal.Unmarshal Await\n\ninstance Data.Foldable.Foldable Await where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Await where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Await where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BinaryOperator a = BinaryOperator\n  { ann :: a,\n    operator :: (AST.Parse.Err ((AnonymousPercent GHC.Generics.:+: AnonymousAmpersand GHC.Generics.:+: AnonymousStar GHC.Generics.:+: AnonymousStarStar GHC.Generics.:+: AnonymousPlus GHC.Generics.:+: AnonymousMinus GHC.Generics.:+: AnonymousSlash GHC.Generics.:+: AnonymousSlashSlash GHC.Generics.:+: AnonymousLAngleLAngle GHC.Generics.:+: AnonymousRAngleRAngle GHC.Generics.:+: AnonymousAt GHC.Generics.:+: AnonymousCaret GHC.Generics.:+: AnonymousPipe) a)),\n    left :: (AST.Parse.Err (PrimaryExpression a)),\n    right :: (AST.Parse.Err (PrimaryExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_89.\n      AST.Traversable1.Class.Traversable1 a_89\n    )\n\ninstance AST.Unmarshal.SymbolMatching BinaryOperator where\n  matchedSymbols _ = [158]\n  showFailure _ node_90 =\n    \"expected \"\n      GHC.Base.<> ( \"binary_operator\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_90 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_90) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_91 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_92 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_93 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_94 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_91\n        c1_92 = TreeSitter.Node.nodeStartPoint node_90\n      TreeSitter.Node.TSPoint\n        r2_93\n        c2_94 = TreeSitter.Node.nodeEndPoint node_90\n\nderiving instance GHC.Classes.Eq a_95 => GHC.Classes.Eq (BinaryOperator a_95)\n\nderiving instance GHC.Classes.Ord a_96 => GHC.Classes.Ord (BinaryOperator a_96)\n\nderiving instance GHC.Show.Show a_97 => GHC.Show.Show (BinaryOperator a_97)\n\ninstance AST.Unmarshal.Unmarshal BinaryOperator\n\ninstance Data.Foldable.Foldable BinaryOperator where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BinaryOperator where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BinaryOperator where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Block a = Block\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((CompoundStatement GHC.Generics.:+: SimpleStatement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_98.\n      AST.Traversable1.Class.Traversable1 a_98\n    )\n\ninstance AST.Unmarshal.SymbolMatching Block where\n  matchedSymbols _ = [149]\n  showFailure _ node_99 =\n    \"expected \"\n      GHC.Base.<> ( \"block\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_99 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_99) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_100 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_101 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_102 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_103 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_100\n        c1_101 = TreeSitter.Node.nodeStartPoint node_99\n      TreeSitter.Node.TSPoint\n        r2_102\n        c2_103 = TreeSitter.Node.nodeEndPoint node_99\n\nderiving instance GHC.Classes.Eq a_104 => GHC.Classes.Eq (Block a_104)\n\nderiving instance GHC.Classes.Ord a_105 => GHC.Classes.Ord (Block a_105)\n\nderiving instance GHC.Show.Show a_106 => GHC.Show.Show (Block a_106)\n\ninstance AST.Unmarshal.Unmarshal Block\n\ninstance Data.Foldable.Foldable Block where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Block where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Block where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BooleanOperator a = BooleanOperator\n  { ann :: a,\n    operator :: (AST.Parse.Err ((AnonymousAnd GHC.Generics.:+: AnonymousOr) a)),\n    left :: (AST.Parse.Err (Expression a)),\n    right :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_107.\n      AST.Traversable1.Class.Traversable1 a_107\n    )\n\ninstance AST.Unmarshal.SymbolMatching BooleanOperator where\n  matchedSymbols _ = [157]\n  showFailure _ node_108 =\n    \"expected \"\n      GHC.Base.<> ( \"boolean_operator\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_108 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_108) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_109 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_110 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_111 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_112 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_109\n        c1_110 = TreeSitter.Node.nodeStartPoint node_108\n      TreeSitter.Node.TSPoint\n        r2_111\n        c2_112 = TreeSitter.Node.nodeEndPoint node_108\n\nderiving instance GHC.Classes.Eq a_113 => GHC.Classes.Eq (BooleanOperator a_113)\n\nderiving instance GHC.Classes.Ord a_114 => GHC.Classes.Ord (BooleanOperator a_114)\n\nderiving instance GHC.Show.Show a_115 => GHC.Show.Show (BooleanOperator a_115)\n\ninstance AST.Unmarshal.Unmarshal BooleanOperator\n\ninstance Data.Foldable.Foldable BooleanOperator where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BooleanOperator where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BooleanOperator where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BreakStatement a = BreakStatement {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_116.\n      AST.Traversable1.Class.Traversable1 a_116\n    )\n\ninstance AST.Unmarshal.SymbolMatching BreakStatement where\n  matchedSymbols _ = [121]\n  showFailure _ node_117 =\n    \"expected \"\n      GHC.Base.<> ( \"break_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_117 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_117) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_118 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_119 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_120 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_121 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_118\n        c1_119 = TreeSitter.Node.nodeStartPoint node_117\n      TreeSitter.Node.TSPoint\n        r2_120\n        c2_121 = TreeSitter.Node.nodeEndPoint node_117\n\nderiving instance GHC.Classes.Eq a_122 => GHC.Classes.Eq (BreakStatement a_122)\n\nderiving instance GHC.Classes.Ord a_123 => GHC.Classes.Ord (BreakStatement a_123)\n\nderiving instance GHC.Show.Show a_124 => GHC.Show.Show (BreakStatement a_124)\n\ninstance AST.Unmarshal.Unmarshal BreakStatement\n\ninstance Data.Foldable.Foldable BreakStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BreakStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BreakStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Call a = Call\n  { ann :: a,\n    function :: (AST.Parse.Err (PrimaryExpression a)),\n    arguments :: (AST.Parse.Err ((ArgumentList GHC.Generics.:+: GeneratorExpression) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_125.\n      AST.Traversable1.Class.Traversable1 a_125\n    )\n\ninstance AST.Unmarshal.SymbolMatching Call where\n  matchedSymbols _ = [170]\n  showFailure _ node_126 =\n    \"expected \"\n      GHC.Base.<> ( \"call\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_126 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_126) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_127 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_128 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_129 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_130 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_127\n        c1_128 = TreeSitter.Node.nodeStartPoint node_126\n      TreeSitter.Node.TSPoint\n        r2_129\n        c2_130 = TreeSitter.Node.nodeEndPoint node_126\n\nderiving instance GHC.Classes.Eq a_131 => GHC.Classes.Eq (Call a_131)\n\nderiving instance GHC.Classes.Ord a_132 => GHC.Classes.Ord (Call a_132)\n\nderiving instance GHC.Show.Show a_133 => GHC.Show.Show (Call a_133)\n\ninstance AST.Unmarshal.Unmarshal Call\n\ninstance Data.Foldable.Foldable Call where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Call where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Call where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Chevron a = Chevron\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_134.\n      AST.Traversable1.Class.Traversable1 a_134\n    )\n\ninstance AST.Unmarshal.SymbolMatching Chevron where\n  matchedSymbols _ = [113]\n  showFailure _ node_135 =\n    \"expected \"\n      GHC.Base.<> ( \"chevron\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_135 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_135) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_136 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_137 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_138 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_139 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_136\n        c1_137 = TreeSitter.Node.nodeStartPoint node_135\n      TreeSitter.Node.TSPoint\n        r2_138\n        c2_139 = TreeSitter.Node.nodeEndPoint node_135\n\nderiving instance GHC.Classes.Eq a_140 => GHC.Classes.Eq (Chevron a_140)\n\nderiving instance GHC.Classes.Ord a_141 => GHC.Classes.Ord (Chevron a_141)\n\nderiving instance GHC.Show.Show a_142 => GHC.Show.Show (Chevron a_142)\n\ninstance AST.Unmarshal.Unmarshal Chevron\n\ninstance Data.Foldable.Foldable Chevron where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Chevron where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Chevron where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ClassDefinition a = ClassDefinition\n  { ann :: a,\n    body :: (AST.Parse.Err (Block a)),\n    superclasses :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a))),\n    name :: (AST.Parse.Err (Identifier a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_143.\n      AST.Traversable1.Class.Traversable1 a_143\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClassDefinition where\n  matchedSymbols _ = [144]\n  showFailure _ node_144 =\n    \"expected \"\n      GHC.Base.<> ( \"class_definition\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_144 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_144) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_145 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_146 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_147 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_148 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_145\n        c1_146 = TreeSitter.Node.nodeStartPoint node_144\n      TreeSitter.Node.TSPoint\n        r2_147\n        c2_148 = TreeSitter.Node.nodeEndPoint node_144\n\nderiving instance GHC.Classes.Eq a_149 => GHC.Classes.Eq (ClassDefinition a_149)\n\nderiving instance GHC.Classes.Ord a_150 => GHC.Classes.Ord (ClassDefinition a_150)\n\nderiving instance GHC.Show.Show a_151 => GHC.Show.Show (ClassDefinition a_151)\n\ninstance AST.Unmarshal.Unmarshal ClassDefinition\n\ninstance Data.Foldable.Foldable ClassDefinition where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClassDefinition where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClassDefinition where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ComparisonOperator a = ComparisonOperator\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (PrimaryExpression a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_152.\n      AST.Traversable1.Class.Traversable1 a_152\n    )\n\ninstance AST.Unmarshal.SymbolMatching ComparisonOperator where\n  matchedSymbols _ = [160]\n  showFailure _ node_153 =\n    \"expected \"\n      GHC.Base.<> ( \"comparison_operator\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_153 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_153) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_154 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_155 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_156 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_157 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_154\n        c1_155 = TreeSitter.Node.nodeStartPoint node_153\n      TreeSitter.Node.TSPoint\n        r2_156\n        c2_157 = TreeSitter.Node.nodeEndPoint node_153\n\nderiving instance GHC.Classes.Eq a_158 => GHC.Classes.Eq (ComparisonOperator a_158)\n\nderiving instance GHC.Classes.Ord a_159 => GHC.Classes.Ord (ComparisonOperator a_159)\n\nderiving instance GHC.Show.Show a_160 => GHC.Show.Show (ComparisonOperator a_160)\n\ninstance AST.Unmarshal.Unmarshal ComparisonOperator\n\ninstance Data.Foldable.Foldable ComparisonOperator where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ComparisonOperator where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ComparisonOperator where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ConcatenatedString a = ConcatenatedString\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (String a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_161.\n      AST.Traversable1.Class.Traversable1 a_161\n    )\n\ninstance AST.Unmarshal.SymbolMatching ConcatenatedString where\n  matchedSymbols _ = [188]\n  showFailure _ node_162 =\n    \"expected \"\n      GHC.Base.<> ( \"concatenated_string\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_162 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_162) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_163 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_164 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_165 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_166 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_163\n        c1_164 = TreeSitter.Node.nodeStartPoint node_162\n      TreeSitter.Node.TSPoint\n        r2_165\n        c2_166 = TreeSitter.Node.nodeEndPoint node_162\n\nderiving instance GHC.Classes.Eq a_167 => GHC.Classes.Eq (ConcatenatedString a_167)\n\nderiving instance GHC.Classes.Ord a_168 => GHC.Classes.Ord (ConcatenatedString a_168)\n\nderiving instance GHC.Show.Show a_169 => GHC.Show.Show (ConcatenatedString a_169)\n\ninstance AST.Unmarshal.Unmarshal ConcatenatedString\n\ninstance Data.Foldable.Foldable ConcatenatedString where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ConcatenatedString where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ConcatenatedString where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ConditionalExpression a = ConditionalExpression\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Expression a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_170.\n      AST.Traversable1.Class.Traversable1 a_170\n    )\n\ninstance AST.Unmarshal.SymbolMatching ConditionalExpression where\n  matchedSymbols _ = [187]\n  showFailure _ node_171 =\n    \"expected \"\n      GHC.Base.<> ( \"conditional_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_171 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_171) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_172 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_173 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_174 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_175 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_172\n        c1_173 = TreeSitter.Node.nodeStartPoint node_171\n      TreeSitter.Node.TSPoint\n        r2_174\n        c2_175 = TreeSitter.Node.nodeEndPoint node_171\n\nderiving instance GHC.Classes.Eq a_176 => GHC.Classes.Eq (ConditionalExpression a_176)\n\nderiving instance GHC.Classes.Ord a_177 => GHC.Classes.Ord (ConditionalExpression a_177)\n\nderiving instance GHC.Show.Show a_178 => GHC.Show.Show (ConditionalExpression a_178)\n\ninstance AST.Unmarshal.Unmarshal ConditionalExpression\n\ninstance Data.Foldable.Foldable ConditionalExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ConditionalExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ConditionalExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ContinueStatement a = ContinueStatement {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_179.\n      AST.Traversable1.Class.Traversable1 a_179\n    )\n\ninstance AST.Unmarshal.SymbolMatching ContinueStatement where\n  matchedSymbols _ = [122]\n  showFailure _ node_180 =\n    \"expected \"\n      GHC.Base.<> ( \"continue_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_180 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_180) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_181 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_182 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_183 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_184 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_181\n        c1_182 = TreeSitter.Node.nodeStartPoint node_180\n      TreeSitter.Node.TSPoint\n        r2_183\n        c2_184 = TreeSitter.Node.nodeEndPoint node_180\n\nderiving instance GHC.Classes.Eq a_185 => GHC.Classes.Eq (ContinueStatement a_185)\n\nderiving instance GHC.Classes.Ord a_186 => GHC.Classes.Ord (ContinueStatement a_186)\n\nderiving instance GHC.Show.Show a_187 => GHC.Show.Show (ContinueStatement a_187)\n\ninstance AST.Unmarshal.Unmarshal ContinueStatement\n\ninstance Data.Foldable.Foldable ContinueStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ContinueStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ContinueStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DecoratedDefinition a = DecoratedDefinition\n  { ann :: a,\n    definition :: (AST.Parse.Err ((ClassDefinition GHC.Generics.:+: FunctionDefinition) a)),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Decorator a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_188.\n      AST.Traversable1.Class.Traversable1 a_188\n    )\n\ninstance AST.Unmarshal.SymbolMatching DecoratedDefinition where\n  matchedSymbols _ = [147]\n  showFailure _ node_189 =\n    \"expected \"\n      GHC.Base.<> ( \"decorated_definition\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_189 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_189) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_190 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_191 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_192 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_193 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_190\n        c1_191 = TreeSitter.Node.nodeStartPoint node_189\n      TreeSitter.Node.TSPoint\n        r2_192\n        c2_193 = TreeSitter.Node.nodeEndPoint node_189\n\nderiving instance GHC.Classes.Eq a_194 => GHC.Classes.Eq (DecoratedDefinition a_194)\n\nderiving instance GHC.Classes.Ord a_195 => GHC.Classes.Ord (DecoratedDefinition a_195)\n\nderiving instance GHC.Show.Show a_196 => GHC.Show.Show (DecoratedDefinition a_196)\n\ninstance AST.Unmarshal.Unmarshal DecoratedDefinition\n\ninstance Data.Foldable.Foldable DecoratedDefinition where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DecoratedDefinition where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DecoratedDefinition where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Decorator a = Decorator\n  { ann :: a,\n    arguments :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a))),\n    extraChildren :: (AST.Parse.Err (DottedName a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_197.\n      AST.Traversable1.Class.Traversable1 a_197\n    )\n\ninstance AST.Unmarshal.SymbolMatching Decorator where\n  matchedSymbols _ = [148]\n  showFailure _ node_198 =\n    \"expected \"\n      GHC.Base.<> ( \"decorator\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_198 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_198) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_199 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_200 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_201 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_202 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_199\n        c1_200 = TreeSitter.Node.nodeStartPoint node_198\n      TreeSitter.Node.TSPoint\n        r2_201\n        c2_202 = TreeSitter.Node.nodeEndPoint node_198\n\nderiving instance GHC.Classes.Eq a_203 => GHC.Classes.Eq (Decorator a_203)\n\nderiving instance GHC.Classes.Ord a_204 => GHC.Classes.Ord (Decorator a_204)\n\nderiving instance GHC.Show.Show a_205 => GHC.Show.Show (Decorator a_205)\n\ninstance AST.Unmarshal.Unmarshal Decorator\n\ninstance Data.Foldable.Foldable Decorator where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Decorator where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Decorator where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DefaultParameter a = DefaultParameter\n  { ann :: a,\n    value :: (AST.Parse.Err (Expression a)),\n    name :: (AST.Parse.Err (Identifier a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_206.\n      AST.Traversable1.Class.Traversable1 a_206\n    )\n\ninstance AST.Unmarshal.SymbolMatching DefaultParameter where\n  matchedSymbols _ = [137]\n  showFailure _ node_207 =\n    \"expected \"\n      GHC.Base.<> ( \"default_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_207 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_207) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_208 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_209 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_210 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_211 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_208\n        c1_209 = TreeSitter.Node.nodeStartPoint node_207\n      TreeSitter.Node.TSPoint\n        r2_210\n        c2_211 = TreeSitter.Node.nodeEndPoint node_207\n\nderiving instance GHC.Classes.Eq a_212 => GHC.Classes.Eq (DefaultParameter a_212)\n\nderiving instance GHC.Classes.Ord a_213 => GHC.Classes.Ord (DefaultParameter a_213)\n\nderiving instance GHC.Show.Show a_214 => GHC.Show.Show (DefaultParameter a_214)\n\ninstance AST.Unmarshal.Unmarshal DefaultParameter\n\ninstance Data.Foldable.Foldable DefaultParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DefaultParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DefaultParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DeleteStatement a = DeleteStatement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (ExpressionList a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_215.\n      AST.Traversable1.Class.Traversable1 a_215\n    )\n\ninstance AST.Unmarshal.SymbolMatching DeleteStatement where\n  matchedSymbols _ = [118]\n  showFailure _ node_216 =\n    \"expected \"\n      GHC.Base.<> ( \"delete_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_216 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_216) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_217 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_218 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_219 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_220 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_217\n        c1_218 = TreeSitter.Node.nodeStartPoint node_216\n      TreeSitter.Node.TSPoint\n        r2_219\n        c2_220 = TreeSitter.Node.nodeEndPoint node_216\n\nderiving instance GHC.Classes.Eq a_221 => GHC.Classes.Eq (DeleteStatement a_221)\n\nderiving instance GHC.Classes.Ord a_222 => GHC.Classes.Ord (DeleteStatement a_222)\n\nderiving instance GHC.Show.Show a_223 => GHC.Show.Show (DeleteStatement a_223)\n\ninstance AST.Unmarshal.Unmarshal DeleteStatement\n\ninstance Data.Foldable.Foldable DeleteStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DeleteStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DeleteStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Dictionary a = Dictionary\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((DictionarySplat GHC.Generics.:+: Pair) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_224.\n      AST.Traversable1.Class.Traversable1 a_224\n    )\n\ninstance AST.Unmarshal.SymbolMatching Dictionary where\n  matchedSymbols _ = [177]\n  showFailure _ node_225 =\n    \"expected \"\n      GHC.Base.<> ( \"dictionary\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_225 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_225) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_226 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_227 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_228 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_229 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_226\n        c1_227 = TreeSitter.Node.nodeStartPoint node_225\n      TreeSitter.Node.TSPoint\n        r2_228\n        c2_229 = TreeSitter.Node.nodeEndPoint node_225\n\nderiving instance GHC.Classes.Eq a_230 => GHC.Classes.Eq (Dictionary a_230)\n\nderiving instance GHC.Classes.Ord a_231 => GHC.Classes.Ord (Dictionary a_231)\n\nderiving instance GHC.Show.Show a_232 => GHC.Show.Show (Dictionary a_232)\n\ninstance AST.Unmarshal.Unmarshal Dictionary\n\ninstance Data.Foldable.Foldable Dictionary where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Dictionary where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Dictionary where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DictionaryComprehension a = DictionaryComprehension\n  { ann :: a,\n    body :: (AST.Parse.Err (Pair a)),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ForInClause GHC.Generics.:+: IfClause) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_233.\n      AST.Traversable1.Class.Traversable1 a_233\n    )\n\ninstance AST.Unmarshal.SymbolMatching DictionaryComprehension where\n  matchedSymbols _ = [178]\n  showFailure _ node_234 =\n    \"expected \"\n      GHC.Base.<> ( \"dictionary_comprehension\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_234 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_234) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_235 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_236 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_237 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_238 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_235\n        c1_236 = TreeSitter.Node.nodeStartPoint node_234\n      TreeSitter.Node.TSPoint\n        r2_237\n        c2_238 = TreeSitter.Node.nodeEndPoint node_234\n\nderiving instance GHC.Classes.Eq a_239 => GHC.Classes.Eq (DictionaryComprehension a_239)\n\nderiving instance GHC.Classes.Ord a_240 => GHC.Classes.Ord (DictionaryComprehension a_240)\n\nderiving instance GHC.Show.Show a_241 => GHC.Show.Show (DictionaryComprehension a_241)\n\ninstance AST.Unmarshal.Unmarshal DictionaryComprehension\n\ninstance Data.Foldable.Foldable DictionaryComprehension where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DictionaryComprehension where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DictionaryComprehension where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DictionarySplat a = DictionarySplat\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_242.\n      AST.Traversable1.Class.Traversable1 a_242\n    )\n\ninstance AST.Unmarshal.SymbolMatching DictionarySplat where\n  matchedSymbols _ = [140]\n  showFailure _ node_243 =\n    \"expected \"\n      GHC.Base.<> ( \"dictionary_splat\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_243 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_243) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_244 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_245 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_246 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_247 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_244\n        c1_245 = TreeSitter.Node.nodeStartPoint node_243\n      TreeSitter.Node.TSPoint\n        r2_246\n        c2_247 = TreeSitter.Node.nodeEndPoint node_243\n\nderiving instance GHC.Classes.Eq a_248 => GHC.Classes.Eq (DictionarySplat a_248)\n\nderiving instance GHC.Classes.Ord a_249 => GHC.Classes.Ord (DictionarySplat a_249)\n\nderiving instance GHC.Show.Show a_250 => GHC.Show.Show (DictionarySplat a_250)\n\ninstance AST.Unmarshal.Unmarshal DictionarySplat\n\ninstance Data.Foldable.Foldable DictionarySplat where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DictionarySplat where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DictionarySplat where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DottedName a = DottedName\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Identifier a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_251.\n      AST.Traversable1.Class.Traversable1 a_251\n    )\n\ninstance AST.Unmarshal.SymbolMatching DottedName where\n  matchedSymbols _ = [152]\n  showFailure _ node_252 =\n    \"expected \"\n      GHC.Base.<> ( \"dotted_name\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_252 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_252) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_253 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_254 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_255 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_256 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_253\n        c1_254 = TreeSitter.Node.nodeStartPoint node_252\n      TreeSitter.Node.TSPoint\n        r2_255\n        c2_256 = TreeSitter.Node.nodeEndPoint node_252\n\nderiving instance GHC.Classes.Eq a_257 => GHC.Classes.Eq (DottedName a_257)\n\nderiving instance GHC.Classes.Ord a_258 => GHC.Classes.Ord (DottedName a_258)\n\nderiving instance GHC.Show.Show a_259 => GHC.Show.Show (DottedName a_259)\n\ninstance AST.Unmarshal.Unmarshal DottedName\n\ninstance Data.Foldable.Foldable DottedName where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DottedName where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DottedName where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ElifClause a = ElifClause\n  { ann :: a,\n    consequence :: (AST.Parse.Err (Block a)),\n    condition :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_260.\n      AST.Traversable1.Class.Traversable1 a_260\n    )\n\ninstance AST.Unmarshal.SymbolMatching ElifClause where\n  matchedSymbols _ = [124]\n  showFailure _ node_261 =\n    \"expected \"\n      GHC.Base.<> ( \"elif_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_261 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_261) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_262 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_263 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_264 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_265 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_262\n        c1_263 = TreeSitter.Node.nodeStartPoint node_261\n      TreeSitter.Node.TSPoint\n        r2_264\n        c2_265 = TreeSitter.Node.nodeEndPoint node_261\n\nderiving instance GHC.Classes.Eq a_266 => GHC.Classes.Eq (ElifClause a_266)\n\nderiving instance GHC.Classes.Ord a_267 => GHC.Classes.Ord (ElifClause a_267)\n\nderiving instance GHC.Show.Show a_268 => GHC.Show.Show (ElifClause a_268)\n\ninstance AST.Unmarshal.Unmarshal ElifClause\n\ninstance Data.Foldable.Foldable ElifClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ElifClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ElifClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ElseClause a = ElseClause {ann :: a, body :: (AST.Parse.Err (Block a))}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_269.\n      AST.Traversable1.Class.Traversable1 a_269\n    )\n\ninstance AST.Unmarshal.SymbolMatching ElseClause where\n  matchedSymbols _ = [125]\n  showFailure _ node_270 =\n    \"expected \"\n      GHC.Base.<> ( \"else_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_270 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_270) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_271 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_272 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_273 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_274 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_271\n        c1_272 = TreeSitter.Node.nodeStartPoint node_270\n      TreeSitter.Node.TSPoint\n        r2_273\n        c2_274 = TreeSitter.Node.nodeEndPoint node_270\n\nderiving instance GHC.Classes.Eq a_275 => GHC.Classes.Eq (ElseClause a_275)\n\nderiving instance GHC.Classes.Ord a_276 => GHC.Classes.Ord (ElseClause a_276)\n\nderiving instance GHC.Show.Show a_277 => GHC.Show.Show (ElseClause a_277)\n\ninstance AST.Unmarshal.Unmarshal ElseClause\n\ninstance Data.Foldable.Foldable ElseClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ElseClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ElseClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExceptClause a = ExceptClause\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: Block) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_278.\n      AST.Traversable1.Class.Traversable1 a_278\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExceptClause where\n  matchedSymbols _ = [129]\n  showFailure _ node_279 =\n    \"expected \"\n      GHC.Base.<> ( \"except_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_279 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_279) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_280 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_281 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_282 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_283 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_280\n        c1_281 = TreeSitter.Node.nodeStartPoint node_279\n      TreeSitter.Node.TSPoint\n        r2_282\n        c2_283 = TreeSitter.Node.nodeEndPoint node_279\n\nderiving instance GHC.Classes.Eq a_284 => GHC.Classes.Eq (ExceptClause a_284)\n\nderiving instance GHC.Classes.Ord a_285 => GHC.Classes.Ord (ExceptClause a_285)\n\nderiving instance GHC.Show.Show a_286 => GHC.Show.Show (ExceptClause a_286)\n\ninstance AST.Unmarshal.Unmarshal ExceptClause\n\ninstance Data.Foldable.Foldable ExceptClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExceptClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExceptClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExecStatement a = ExecStatement\n  { ann :: a,\n    code :: (AST.Parse.Err (String a)),\n    extraChildren :: ([AST.Parse.Err (Expression a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_287.\n      AST.Traversable1.Class.Traversable1 a_287\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExecStatement where\n  matchedSymbols _ = [143]\n  showFailure _ node_288 =\n    \"expected \"\n      GHC.Base.<> ( \"exec_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_288 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_288) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_289 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_290 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_291 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_292 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_289\n        c1_290 = TreeSitter.Node.nodeStartPoint node_288\n      TreeSitter.Node.TSPoint\n        r2_291\n        c2_292 = TreeSitter.Node.nodeEndPoint node_288\n\nderiving instance GHC.Classes.Eq a_293 => GHC.Classes.Eq (ExecStatement a_293)\n\nderiving instance GHC.Classes.Ord a_294 => GHC.Classes.Ord (ExecStatement a_294)\n\nderiving instance GHC.Show.Show a_295 => GHC.Show.Show (ExecStatement a_295)\n\ninstance AST.Unmarshal.Unmarshal ExecStatement\n\ninstance Data.Foldable.Foldable ExecStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExecStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExecStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExpressionList a = ExpressionList\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Expression a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_296.\n      AST.Traversable1.Class.Traversable1 a_296\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExpressionList where\n  matchedSymbols _ = [151]\n  showFailure _ node_297 =\n    \"expected \"\n      GHC.Base.<> ( \"expression_list\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_297 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_297) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_298 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_299 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_300 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_301 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_298\n        c1_299 = TreeSitter.Node.nodeStartPoint node_297\n      TreeSitter.Node.TSPoint\n        r2_300\n        c2_301 = TreeSitter.Node.nodeEndPoint node_297\n\nderiving instance GHC.Classes.Eq a_302 => GHC.Classes.Eq (ExpressionList a_302)\n\nderiving instance GHC.Classes.Ord a_303 => GHC.Classes.Ord (ExpressionList a_303)\n\nderiving instance GHC.Show.Show a_304 => GHC.Show.Show (ExpressionList a_304)\n\ninstance AST.Unmarshal.Unmarshal ExpressionList\n\ninstance Data.Foldable.Foldable ExpressionList where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExpressionList where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExpressionList where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExpressionStatement a = ExpressionStatement\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: Assignment GHC.Generics.:+: AugmentedAssignment GHC.Generics.:+: Yield) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_305.\n      AST.Traversable1.Class.Traversable1 a_305\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExpressionStatement where\n  matchedSymbols _ = [115]\n  showFailure _ node_306 =\n    \"expected \"\n      GHC.Base.<> ( \"expression_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_306 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_306) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_307 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_308 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_309 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_310 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_307\n        c1_308 = TreeSitter.Node.nodeStartPoint node_306\n      TreeSitter.Node.TSPoint\n        r2_309\n        c2_310 = TreeSitter.Node.nodeEndPoint node_306\n\nderiving instance GHC.Classes.Eq a_311 => GHC.Classes.Eq (ExpressionStatement a_311)\n\nderiving instance GHC.Classes.Ord a_312 => GHC.Classes.Ord (ExpressionStatement a_312)\n\nderiving instance GHC.Show.Show a_313 => GHC.Show.Show (ExpressionStatement a_313)\n\ninstance AST.Unmarshal.Unmarshal ExpressionStatement\n\ninstance Data.Foldable.Foldable ExpressionStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExpressionStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExpressionStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FinallyClause a = FinallyClause\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Block a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_314.\n      AST.Traversable1.Class.Traversable1 a_314\n    )\n\ninstance AST.Unmarshal.SymbolMatching FinallyClause where\n  matchedSymbols _ = [130]\n  showFailure _ node_315 =\n    \"expected \"\n      GHC.Base.<> ( \"finally_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_315 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_315) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_316 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_317 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_318 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_319 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_316\n        c1_317 = TreeSitter.Node.nodeStartPoint node_315\n      TreeSitter.Node.TSPoint\n        r2_318\n        c2_319 = TreeSitter.Node.nodeEndPoint node_315\n\nderiving instance GHC.Classes.Eq a_320 => GHC.Classes.Eq (FinallyClause a_320)\n\nderiving instance GHC.Classes.Ord a_321 => GHC.Classes.Ord (FinallyClause a_321)\n\nderiving instance GHC.Show.Show a_322 => GHC.Show.Show (FinallyClause a_322)\n\ninstance AST.Unmarshal.Unmarshal FinallyClause\n\ninstance Data.Foldable.Foldable FinallyClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FinallyClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FinallyClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ForInClause a = ForInClause\n  { ann :: a,\n    left :: (AST.Parse.Err (Variables a)),\n    right :: (GHC.Base.NonEmpty (AST.Parse.Err ((AnonymousComma GHC.Generics.:+: Expression GHC.Generics.:+: Lambda) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_323.\n      AST.Traversable1.Class.Traversable1 a_323\n    )\n\ninstance AST.Unmarshal.SymbolMatching ForInClause where\n  matchedSymbols _ = [185]\n  showFailure _ node_324 =\n    \"expected \"\n      GHC.Base.<> ( \"for_in_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_324 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_324) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_325 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_326 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_327 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_328 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_325\n        c1_326 = TreeSitter.Node.nodeStartPoint node_324\n      TreeSitter.Node.TSPoint\n        r2_327\n        c2_328 = TreeSitter.Node.nodeEndPoint node_324\n\nderiving instance GHC.Classes.Eq a_329 => GHC.Classes.Eq (ForInClause a_329)\n\nderiving instance GHC.Classes.Ord a_330 => GHC.Classes.Ord (ForInClause a_330)\n\nderiving instance GHC.Show.Show a_331 => GHC.Show.Show (ForInClause a_331)\n\ninstance AST.Unmarshal.Unmarshal ForInClause\n\ninstance Data.Foldable.Foldable ForInClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ForInClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ForInClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ForStatement a = ForStatement\n  { ann :: a,\n    alternative :: (GHC.Maybe.Maybe (AST.Parse.Err (ElseClause a))),\n    body :: (AST.Parse.Err (Block a)),\n    left :: (AST.Parse.Err (Variables a)),\n    right :: (AST.Parse.Err (ExpressionList a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_332.\n      AST.Traversable1.Class.Traversable1 a_332\n    )\n\ninstance AST.Unmarshal.SymbolMatching ForStatement where\n  matchedSymbols _ = [126]\n  showFailure _ node_333 =\n    \"expected \"\n      GHC.Base.<> ( \"for_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_333 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_333) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_334 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_335 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_336 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_337 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_334\n        c1_335 = TreeSitter.Node.nodeStartPoint node_333\n      TreeSitter.Node.TSPoint\n        r2_336\n        c2_337 = TreeSitter.Node.nodeEndPoint node_333\n\nderiving instance GHC.Classes.Eq a_338 => GHC.Classes.Eq (ForStatement a_338)\n\nderiving instance GHC.Classes.Ord a_339 => GHC.Classes.Ord (ForStatement a_339)\n\nderiving instance GHC.Show.Show a_340 => GHC.Show.Show (ForStatement a_340)\n\ninstance AST.Unmarshal.Unmarshal ForStatement\n\ninstance Data.Foldable.Foldable ForStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ForStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ForStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FormatExpression a = FormatExpression\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_341.\n      AST.Traversable1.Class.Traversable1 a_341\n    )\n\ninstance AST.Unmarshal.SymbolMatching FormatExpression where\n  matchedSymbols _ = [192]\n  showFailure _ node_342 =\n    \"expected \"\n      GHC.Base.<> ( \"format_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_342 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_342) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_343 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_344 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_345 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_346 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_343\n        c1_344 = TreeSitter.Node.nodeStartPoint node_342\n      TreeSitter.Node.TSPoint\n        r2_345\n        c2_346 = TreeSitter.Node.nodeEndPoint node_342\n\nderiving instance GHC.Classes.Eq a_347 => GHC.Classes.Eq (FormatExpression a_347)\n\nderiving instance GHC.Classes.Ord a_348 => GHC.Classes.Ord (FormatExpression a_348)\n\nderiving instance GHC.Show.Show a_349 => GHC.Show.Show (FormatExpression a_349)\n\ninstance AST.Unmarshal.Unmarshal FormatExpression\n\ninstance Data.Foldable.Foldable FormatExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FormatExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FormatExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FormatSpecifier a = FormatSpecifier\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (FormatExpression a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_350.\n      AST.Traversable1.Class.Traversable1 a_350\n    )\n\ninstance AST.Unmarshal.SymbolMatching FormatSpecifier where\n  matchedSymbols _ = [191]\n  showFailure _ node_351 =\n    \"expected \"\n      GHC.Base.<> ( \"format_specifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_351 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_351) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_352 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_353 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_354 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_355 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_352\n        c1_353 = TreeSitter.Node.nodeStartPoint node_351\n      TreeSitter.Node.TSPoint\n        r2_354\n        c2_355 = TreeSitter.Node.nodeEndPoint node_351\n\nderiving instance GHC.Classes.Eq a_356 => GHC.Classes.Eq (FormatSpecifier a_356)\n\nderiving instance GHC.Classes.Ord a_357 => GHC.Classes.Ord (FormatSpecifier a_357)\n\nderiving instance GHC.Show.Show a_358 => GHC.Show.Show (FormatSpecifier a_358)\n\ninstance AST.Unmarshal.Unmarshal FormatSpecifier\n\ninstance Data.Foldable.Foldable FormatSpecifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FormatSpecifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FormatSpecifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FunctionDefinition a = FunctionDefinition\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (Type a))),\n    body :: (AST.Parse.Err (Block a)),\n    name :: (AST.Parse.Err (Identifier a)),\n    parameters :: (AST.Parse.Err (Parameters a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_359.\n      AST.Traversable1.Class.Traversable1 a_359\n    )\n\ninstance AST.Unmarshal.SymbolMatching FunctionDefinition where\n  matchedSymbols _ = [133]\n  showFailure _ node_360 =\n    \"expected \"\n      GHC.Base.<> ( \"function_definition\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_360 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_360) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_361 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_362 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_363 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_364 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_361\n        c1_362 = TreeSitter.Node.nodeStartPoint node_360\n      TreeSitter.Node.TSPoint\n        r2_363\n        c2_364 = TreeSitter.Node.nodeEndPoint node_360\n\nderiving instance GHC.Classes.Eq a_365 => GHC.Classes.Eq (FunctionDefinition a_365)\n\nderiving instance GHC.Classes.Ord a_366 => GHC.Classes.Ord (FunctionDefinition a_366)\n\nderiving instance GHC.Show.Show a_367 => GHC.Show.Show (FunctionDefinition a_367)\n\ninstance AST.Unmarshal.Unmarshal FunctionDefinition\n\ninstance Data.Foldable.Foldable FunctionDefinition where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FunctionDefinition where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FunctionDefinition where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FutureImportStatement a = FutureImportStatement\n  { ann :: a,\n    name :: (GHC.Base.NonEmpty (AST.Parse.Err ((AliasedImport GHC.Generics.:+: DottedName) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_368.\n      AST.Traversable1.Class.Traversable1 a_368\n    )\n\ninstance AST.Unmarshal.SymbolMatching FutureImportStatement where\n  matchedSymbols _ = [107]\n  showFailure _ node_369 =\n    \"expected \"\n      GHC.Base.<> ( \"future_import_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_369 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_369) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_370 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_371 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_372 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_373 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_370\n        c1_371 = TreeSitter.Node.nodeStartPoint node_369\n      TreeSitter.Node.TSPoint\n        r2_372\n        c2_373 = TreeSitter.Node.nodeEndPoint node_369\n\nderiving instance GHC.Classes.Eq a_374 => GHC.Classes.Eq (FutureImportStatement a_374)\n\nderiving instance GHC.Classes.Ord a_375 => GHC.Classes.Ord (FutureImportStatement a_375)\n\nderiving instance GHC.Show.Show a_376 => GHC.Show.Show (FutureImportStatement a_376)\n\ninstance AST.Unmarshal.Unmarshal FutureImportStatement\n\ninstance Data.Foldable.Foldable FutureImportStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FutureImportStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FutureImportStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata GeneratorExpression a = GeneratorExpression\n  { ann :: a,\n    body :: (AST.Parse.Err (Expression a)),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ForInClause GHC.Generics.:+: IfClause) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_377.\n      AST.Traversable1.Class.Traversable1 a_377\n    )\n\ninstance AST.Unmarshal.SymbolMatching GeneratorExpression where\n  matchedSymbols _ = [184]\n  showFailure _ node_378 =\n    \"expected \"\n      GHC.Base.<> ( \"generator_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_378 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_378) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_379 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_380 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_381 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_382 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_379\n        c1_380 = TreeSitter.Node.nodeStartPoint node_378\n      TreeSitter.Node.TSPoint\n        r2_381\n        c2_382 = TreeSitter.Node.nodeEndPoint node_378\n\nderiving instance GHC.Classes.Eq a_383 => GHC.Classes.Eq (GeneratorExpression a_383)\n\nderiving instance GHC.Classes.Ord a_384 => GHC.Classes.Ord (GeneratorExpression a_384)\n\nderiving instance GHC.Show.Show a_385 => GHC.Show.Show (GeneratorExpression a_385)\n\ninstance AST.Unmarshal.Unmarshal GeneratorExpression\n\ninstance Data.Foldable.Foldable GeneratorExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor GeneratorExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable GeneratorExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata GlobalStatement a = GlobalStatement\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Identifier a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_386.\n      AST.Traversable1.Class.Traversable1 a_386\n    )\n\ninstance AST.Unmarshal.SymbolMatching GlobalStatement where\n  matchedSymbols _ = [141]\n  showFailure _ node_387 =\n    \"expected \"\n      GHC.Base.<> ( \"global_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_387 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_387) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_388 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_389 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_390 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_391 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_388\n        c1_389 = TreeSitter.Node.nodeStartPoint node_387\n      TreeSitter.Node.TSPoint\n        r2_390\n        c2_391 = TreeSitter.Node.nodeEndPoint node_387\n\nderiving instance GHC.Classes.Eq a_392 => GHC.Classes.Eq (GlobalStatement a_392)\n\nderiving instance GHC.Classes.Ord a_393 => GHC.Classes.Ord (GlobalStatement a_393)\n\nderiving instance GHC.Show.Show a_394 => GHC.Show.Show (GlobalStatement a_394)\n\ninstance AST.Unmarshal.Unmarshal GlobalStatement\n\ninstance Data.Foldable.Foldable GlobalStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor GlobalStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable GlobalStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IfClause a = IfClause\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_395.\n      AST.Traversable1.Class.Traversable1 a_395\n    )\n\ninstance AST.Unmarshal.SymbolMatching IfClause where\n  matchedSymbols _ = [186]\n  showFailure _ node_396 =\n    \"expected \"\n      GHC.Base.<> ( \"if_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_396 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_396) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_397 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_398 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_399 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_400 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_397\n        c1_398 = TreeSitter.Node.nodeStartPoint node_396\n      TreeSitter.Node.TSPoint\n        r2_399\n        c2_400 = TreeSitter.Node.nodeEndPoint node_396\n\nderiving instance GHC.Classes.Eq a_401 => GHC.Classes.Eq (IfClause a_401)\n\nderiving instance GHC.Classes.Ord a_402 => GHC.Classes.Ord (IfClause a_402)\n\nderiving instance GHC.Show.Show a_403 => GHC.Show.Show (IfClause a_403)\n\ninstance AST.Unmarshal.Unmarshal IfClause\n\ninstance Data.Foldable.Foldable IfClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IfClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IfClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IfStatement a = IfStatement\n  { ann :: a,\n    alternative :: ([AST.Parse.Err ((ElifClause GHC.Generics.:+: ElseClause) a)]),\n    consequence :: (AST.Parse.Err (Block a)),\n    condition :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_404.\n      AST.Traversable1.Class.Traversable1 a_404\n    )\n\ninstance AST.Unmarshal.SymbolMatching IfStatement where\n  matchedSymbols _ = [123]\n  showFailure _ node_405 =\n    \"expected \"\n      GHC.Base.<> ( \"if_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_405 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_405) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_406 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_407 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_408 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_409 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_406\n        c1_407 = TreeSitter.Node.nodeStartPoint node_405\n      TreeSitter.Node.TSPoint\n        r2_408\n        c2_409 = TreeSitter.Node.nodeEndPoint node_405\n\nderiving instance GHC.Classes.Eq a_410 => GHC.Classes.Eq (IfStatement a_410)\n\nderiving instance GHC.Classes.Ord a_411 => GHC.Classes.Ord (IfStatement a_411)\n\nderiving instance GHC.Show.Show a_412 => GHC.Show.Show (IfStatement a_412)\n\ninstance AST.Unmarshal.Unmarshal IfStatement\n\ninstance Data.Foldable.Foldable IfStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IfStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IfStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImportFromStatement a = ImportFromStatement\n  { ann :: a,\n    name :: ([AST.Parse.Err ((AliasedImport GHC.Generics.:+: DottedName) a)]),\n    moduleName :: (AST.Parse.Err ((DottedName GHC.Generics.:+: RelativeImport) a)),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (WildcardImport a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_413.\n      AST.Traversable1.Class.Traversable1 a_413\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImportFromStatement where\n  matchedSymbols _ = [108]\n  showFailure _ node_414 =\n    \"expected \"\n      GHC.Base.<> ( \"import_from_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_414 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_414) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_415 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_416 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_417 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_418 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_415\n        c1_416 = TreeSitter.Node.nodeStartPoint node_414\n      TreeSitter.Node.TSPoint\n        r2_417\n        c2_418 = TreeSitter.Node.nodeEndPoint node_414\n\nderiving instance GHC.Classes.Eq a_419 => GHC.Classes.Eq (ImportFromStatement a_419)\n\nderiving instance GHC.Classes.Ord a_420 => GHC.Classes.Ord (ImportFromStatement a_420)\n\nderiving instance GHC.Show.Show a_421 => GHC.Show.Show (ImportFromStatement a_421)\n\ninstance AST.Unmarshal.Unmarshal ImportFromStatement\n\ninstance Data.Foldable.Foldable ImportFromStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImportFromStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImportFromStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImportPrefix a = ImportPrefix {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_422.\n      AST.Traversable1.Class.Traversable1 a_422\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImportPrefix where\n  matchedSymbols _ = [105]\n  showFailure _ node_423 =\n    \"expected \"\n      GHC.Base.<> ( \"import_prefix\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_423 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_423) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_424 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_425 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_426 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_427 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_424\n        c1_425 = TreeSitter.Node.nodeStartPoint node_423\n      TreeSitter.Node.TSPoint\n        r2_426\n        c2_427 = TreeSitter.Node.nodeEndPoint node_423\n\nderiving instance GHC.Classes.Eq a_428 => GHC.Classes.Eq (ImportPrefix a_428)\n\nderiving instance GHC.Classes.Ord a_429 => GHC.Classes.Ord (ImportPrefix a_429)\n\nderiving instance GHC.Show.Show a_430 => GHC.Show.Show (ImportPrefix a_430)\n\ninstance AST.Unmarshal.Unmarshal ImportPrefix\n\ninstance Data.Foldable.Foldable ImportPrefix where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImportPrefix where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImportPrefix where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImportStatement a = ImportStatement\n  { ann :: a,\n    name :: (GHC.Base.NonEmpty (AST.Parse.Err ((AliasedImport GHC.Generics.:+: DottedName) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_431.\n      AST.Traversable1.Class.Traversable1 a_431\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImportStatement where\n  matchedSymbols _ = [104]\n  showFailure _ node_432 =\n    \"expected \"\n      GHC.Base.<> ( \"import_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_432 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_432) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_433 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_434 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_435 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_436 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_433\n        c1_434 = TreeSitter.Node.nodeStartPoint node_432\n      TreeSitter.Node.TSPoint\n        r2_435\n        c2_436 = TreeSitter.Node.nodeEndPoint node_432\n\nderiving instance GHC.Classes.Eq a_437 => GHC.Classes.Eq (ImportStatement a_437)\n\nderiving instance GHC.Classes.Ord a_438 => GHC.Classes.Ord (ImportStatement a_438)\n\nderiving instance GHC.Show.Show a_439 => GHC.Show.Show (ImportStatement a_439)\n\ninstance AST.Unmarshal.Unmarshal ImportStatement\n\ninstance Data.Foldable.Foldable ImportStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImportStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImportStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Interpolation a = Interpolation\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: FormatSpecifier GHC.Generics.:+: TypeConversion) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_440.\n      AST.Traversable1.Class.Traversable1 a_440\n    )\n\ninstance AST.Unmarshal.SymbolMatching Interpolation where\n  matchedSymbols _ = [190]\n  showFailure _ node_441 =\n    \"expected \"\n      GHC.Base.<> ( \"interpolation\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_441 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_441) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_442 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_443 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_444 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_445 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_442\n        c1_443 = TreeSitter.Node.nodeStartPoint node_441\n      TreeSitter.Node.TSPoint\n        r2_444\n        c2_445 = TreeSitter.Node.nodeEndPoint node_441\n\nderiving instance GHC.Classes.Eq a_446 => GHC.Classes.Eq (Interpolation a_446)\n\nderiving instance GHC.Classes.Ord a_447 => GHC.Classes.Ord (Interpolation a_447)\n\nderiving instance GHC.Show.Show a_448 => GHC.Show.Show (Interpolation a_448)\n\ninstance AST.Unmarshal.Unmarshal Interpolation\n\ninstance Data.Foldable.Foldable Interpolation where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Interpolation where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Interpolation where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata KeywordArgument a = KeywordArgument\n  { ann :: a,\n    value :: (AST.Parse.Err (Expression a)),\n    name :: (AST.Parse.Err (Identifier a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_449.\n      AST.Traversable1.Class.Traversable1 a_449\n    )\n\ninstance AST.Unmarshal.SymbolMatching KeywordArgument where\n  matchedSymbols _ = [173]\n  showFailure _ node_450 =\n    \"expected \"\n      GHC.Base.<> ( \"keyword_argument\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_450 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_450) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_451 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_452 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_453 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_454 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_451\n        c1_452 = TreeSitter.Node.nodeStartPoint node_450\n      TreeSitter.Node.TSPoint\n        r2_453\n        c2_454 = TreeSitter.Node.nodeEndPoint node_450\n\nderiving instance GHC.Classes.Eq a_455 => GHC.Classes.Eq (KeywordArgument a_455)\n\nderiving instance GHC.Classes.Ord a_456 => GHC.Classes.Ord (KeywordArgument a_456)\n\nderiving instance GHC.Show.Show a_457 => GHC.Show.Show (KeywordArgument a_457)\n\ninstance AST.Unmarshal.Unmarshal KeywordArgument\n\ninstance Data.Foldable.Foldable KeywordArgument where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor KeywordArgument where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable KeywordArgument where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Lambda a = Lambda\n  { ann :: a,\n    body :: (AST.Parse.Err ((Expression GHC.Generics.:+: Lambda) a)),\n    parameters :: (GHC.Maybe.Maybe (AST.Parse.Err (LambdaParameters a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_458.\n      AST.Traversable1.Class.Traversable1 a_458\n    )\n\ninstance AST.Unmarshal.SymbolMatching Lambda where\n  matchedSymbols _ = [161, 162]\n  showFailure _ node_459 =\n    \"expected \"\n      GHC.Base.<> ( \"lambda, lambda\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_459 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_459) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_460 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_461 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_462 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_463 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_460\n        c1_461 = TreeSitter.Node.nodeStartPoint node_459\n      TreeSitter.Node.TSPoint\n        r2_462\n        c2_463 = TreeSitter.Node.nodeEndPoint node_459\n\nderiving instance GHC.Classes.Eq a_464 => GHC.Classes.Eq (Lambda a_464)\n\nderiving instance GHC.Classes.Ord a_465 => GHC.Classes.Ord (Lambda a_465)\n\nderiving instance GHC.Show.Show a_466 => GHC.Show.Show (Lambda a_466)\n\ninstance AST.Unmarshal.Unmarshal Lambda\n\ninstance Data.Foldable.Foldable Lambda where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Lambda where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Lambda where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata LambdaParameters a = LambdaParameters\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Parameter a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_467.\n      AST.Traversable1.Class.Traversable1 a_467\n    )\n\ninstance AST.Unmarshal.SymbolMatching LambdaParameters where\n  matchedSymbols _ = [135]\n  showFailure _ node_468 =\n    \"expected \"\n      GHC.Base.<> ( \"lambda_parameters\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_468 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_468) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_469 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_470 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_471 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_472 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_469\n        c1_470 = TreeSitter.Node.nodeStartPoint node_468\n      TreeSitter.Node.TSPoint\n        r2_471\n        c2_472 = TreeSitter.Node.nodeEndPoint node_468\n\nderiving instance GHC.Classes.Eq a_473 => GHC.Classes.Eq (LambdaParameters a_473)\n\nderiving instance GHC.Classes.Ord a_474 => GHC.Classes.Ord (LambdaParameters a_474)\n\nderiving instance GHC.Show.Show a_475 => GHC.Show.Show (LambdaParameters a_475)\n\ninstance AST.Unmarshal.Unmarshal LambdaParameters\n\ninstance Data.Foldable.Foldable LambdaParameters where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor LambdaParameters where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable LambdaParameters where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata List a = List\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: ListSplat) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_476.\n      AST.Traversable1.Class.Traversable1 a_476\n    )\n\ninstance AST.Unmarshal.SymbolMatching List where\n  matchedSymbols _ = [174]\n  showFailure _ node_477 =\n    \"expected \"\n      GHC.Base.<> ( \"list\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_477 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_477) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_478 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_479 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_480 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_481 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_478\n        c1_479 = TreeSitter.Node.nodeStartPoint node_477\n      TreeSitter.Node.TSPoint\n        r2_480\n        c2_481 = TreeSitter.Node.nodeEndPoint node_477\n\nderiving instance GHC.Classes.Eq a_482 => GHC.Classes.Eq (List a_482)\n\nderiving instance GHC.Classes.Ord a_483 => GHC.Classes.Ord (List a_483)\n\nderiving instance GHC.Show.Show a_484 => GHC.Show.Show (List a_484)\n\ninstance AST.Unmarshal.Unmarshal List\n\ninstance Data.Foldable.Foldable List where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor List where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable List where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ListComprehension a = ListComprehension\n  { ann :: a,\n    body :: (AST.Parse.Err (Expression a)),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ForInClause GHC.Generics.:+: IfClause) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_485.\n      AST.Traversable1.Class.Traversable1 a_485\n    )\n\ninstance AST.Unmarshal.SymbolMatching ListComprehension where\n  matchedSymbols _ = [176]\n  showFailure _ node_486 =\n    \"expected \"\n      GHC.Base.<> ( \"list_comprehension\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_486 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_486) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_487 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_488 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_489 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_490 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_487\n        c1_488 = TreeSitter.Node.nodeStartPoint node_486\n      TreeSitter.Node.TSPoint\n        r2_489\n        c2_490 = TreeSitter.Node.nodeEndPoint node_486\n\nderiving instance GHC.Classes.Eq a_491 => GHC.Classes.Eq (ListComprehension a_491)\n\nderiving instance GHC.Classes.Ord a_492 => GHC.Classes.Ord (ListComprehension a_492)\n\nderiving instance GHC.Show.Show a_493 => GHC.Show.Show (ListComprehension a_493)\n\ninstance AST.Unmarshal.Unmarshal ListComprehension\n\ninstance Data.Foldable.Foldable ListComprehension where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ListComprehension where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ListComprehension where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ListSplat a = ListSplat\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_494.\n      AST.Traversable1.Class.Traversable1 a_494\n    )\n\ninstance AST.Unmarshal.SymbolMatching ListSplat where\n  matchedSymbols _ = [139]\n  showFailure _ node_495 =\n    \"expected \"\n      GHC.Base.<> ( \"list_splat\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_495 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_495) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_496 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_497 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_498 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_499 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_496\n        c1_497 = TreeSitter.Node.nodeStartPoint node_495\n      TreeSitter.Node.TSPoint\n        r2_498\n        c2_499 = TreeSitter.Node.nodeEndPoint node_495\n\nderiving instance GHC.Classes.Eq a_500 => GHC.Classes.Eq (ListSplat a_500)\n\nderiving instance GHC.Classes.Ord a_501 => GHC.Classes.Ord (ListSplat a_501)\n\nderiving instance GHC.Show.Show a_502 => GHC.Show.Show (ListSplat a_502)\n\ninstance AST.Unmarshal.Unmarshal ListSplat\n\ninstance Data.Foldable.Foldable ListSplat where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ListSplat where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ListSplat where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Module a = Module\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((CompoundStatement GHC.Generics.:+: SimpleStatement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_503.\n      AST.Traversable1.Class.Traversable1 a_503\n    )\n\ninstance AST.Unmarshal.SymbolMatching Module where\n  matchedSymbols _ = [101]\n  showFailure _ node_504 =\n    \"expected \"\n      GHC.Base.<> ( \"module\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_504 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_504) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_505 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_506 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_507 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_508 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_505\n        c1_506 = TreeSitter.Node.nodeStartPoint node_504\n      TreeSitter.Node.TSPoint\n        r2_507\n        c2_508 = TreeSitter.Node.nodeEndPoint node_504\n\nderiving instance GHC.Classes.Eq a_509 => GHC.Classes.Eq (Module a_509)\n\nderiving instance GHC.Classes.Ord a_510 => GHC.Classes.Ord (Module a_510)\n\nderiving instance GHC.Show.Show a_511 => GHC.Show.Show (Module a_511)\n\ninstance AST.Unmarshal.Unmarshal Module\n\ninstance Data.Foldable.Foldable Module where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Module where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Module where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NamedExpression a = NamedExpression\n  { ann :: a,\n    value :: (AST.Parse.Err (Expression a)),\n    name :: (AST.Parse.Err (Identifier a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_512.\n      AST.Traversable1.Class.Traversable1 a_512\n    )\n\ninstance AST.Unmarshal.SymbolMatching NamedExpression where\n  matchedSymbols _ = [116]\n  showFailure _ node_513 =\n    \"expected \"\n      GHC.Base.<> ( \"named_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_513 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_513) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_514 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_515 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_516 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_517 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_514\n        c1_515 = TreeSitter.Node.nodeStartPoint node_513\n      TreeSitter.Node.TSPoint\n        r2_516\n        c2_517 = TreeSitter.Node.nodeEndPoint node_513\n\nderiving instance GHC.Classes.Eq a_518 => GHC.Classes.Eq (NamedExpression a_518)\n\nderiving instance GHC.Classes.Ord a_519 => GHC.Classes.Ord (NamedExpression a_519)\n\nderiving instance GHC.Show.Show a_520 => GHC.Show.Show (NamedExpression a_520)\n\ninstance AST.Unmarshal.Unmarshal NamedExpression\n\ninstance Data.Foldable.Foldable NamedExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NamedExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NamedExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NonlocalStatement a = NonlocalStatement\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Identifier a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_521.\n      AST.Traversable1.Class.Traversable1 a_521\n    )\n\ninstance AST.Unmarshal.SymbolMatching NonlocalStatement where\n  matchedSymbols _ = [142]\n  showFailure _ node_522 =\n    \"expected \"\n      GHC.Base.<> ( \"nonlocal_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_522 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_522) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_523 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_524 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_525 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_526 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_523\n        c1_524 = TreeSitter.Node.nodeStartPoint node_522\n      TreeSitter.Node.TSPoint\n        r2_525\n        c2_526 = TreeSitter.Node.nodeEndPoint node_522\n\nderiving instance GHC.Classes.Eq a_527 => GHC.Classes.Eq (NonlocalStatement a_527)\n\nderiving instance GHC.Classes.Ord a_528 => GHC.Classes.Ord (NonlocalStatement a_528)\n\nderiving instance GHC.Show.Show a_529 => GHC.Show.Show (NonlocalStatement a_529)\n\ninstance AST.Unmarshal.Unmarshal NonlocalStatement\n\ninstance Data.Foldable.Foldable NonlocalStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NonlocalStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NonlocalStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NotOperator a = NotOperator\n  { ann :: a,\n    argument :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_530.\n      AST.Traversable1.Class.Traversable1 a_530\n    )\n\ninstance AST.Unmarshal.SymbolMatching NotOperator where\n  matchedSymbols _ = [156]\n  showFailure _ node_531 =\n    \"expected \"\n      GHC.Base.<> ( \"not_operator\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_531 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_531) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_532 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_533 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_534 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_535 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_532\n        c1_533 = TreeSitter.Node.nodeStartPoint node_531\n      TreeSitter.Node.TSPoint\n        r2_534\n        c2_535 = TreeSitter.Node.nodeEndPoint node_531\n\nderiving instance GHC.Classes.Eq a_536 => GHC.Classes.Eq (NotOperator a_536)\n\nderiving instance GHC.Classes.Ord a_537 => GHC.Classes.Ord (NotOperator a_537)\n\nderiving instance GHC.Show.Show a_538 => GHC.Show.Show (NotOperator a_538)\n\ninstance AST.Unmarshal.Unmarshal NotOperator\n\ninstance Data.Foldable.Foldable NotOperator where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NotOperator where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NotOperator where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Pair a = Pair\n  { ann :: a,\n    value :: (AST.Parse.Err (Expression a)),\n    key :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_539.\n      AST.Traversable1.Class.Traversable1 a_539\n    )\n\ninstance AST.Unmarshal.SymbolMatching Pair where\n  matchedSymbols _ = [179]\n  showFailure _ node_540 =\n    \"expected \"\n      GHC.Base.<> ( \"pair\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_540 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_540) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_541 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_542 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_543 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_544 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_541\n        c1_542 = TreeSitter.Node.nodeStartPoint node_540\n      TreeSitter.Node.TSPoint\n        r2_543\n        c2_544 = TreeSitter.Node.nodeEndPoint node_540\n\nderiving instance GHC.Classes.Eq a_545 => GHC.Classes.Eq (Pair a_545)\n\nderiving instance GHC.Classes.Ord a_546 => GHC.Classes.Ord (Pair a_546)\n\nderiving instance GHC.Show.Show a_547 => GHC.Show.Show (Pair a_547)\n\ninstance AST.Unmarshal.Unmarshal Pair\n\ninstance Data.Foldable.Foldable Pair where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Pair where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Pair where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Parameters a = Parameters\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (Parameter a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_548.\n      AST.Traversable1.Class.Traversable1 a_548\n    )\n\ninstance AST.Unmarshal.SymbolMatching Parameters where\n  matchedSymbols _ = [134]\n  showFailure _ node_549 =\n    \"expected \"\n      GHC.Base.<> ( \"parameters\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_549 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_549) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_550 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_551 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_552 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_553 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_550\n        c1_551 = TreeSitter.Node.nodeStartPoint node_549\n      TreeSitter.Node.TSPoint\n        r2_552\n        c2_553 = TreeSitter.Node.nodeEndPoint node_549\n\nderiving instance GHC.Classes.Eq a_554 => GHC.Classes.Eq (Parameters a_554)\n\nderiving instance GHC.Classes.Ord a_555 => GHC.Classes.Ord (Parameters a_555)\n\nderiving instance GHC.Show.Show a_556 => GHC.Show.Show (Parameters a_556)\n\ninstance AST.Unmarshal.Unmarshal Parameters\n\ninstance Data.Foldable.Foldable Parameters where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Parameters where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Parameters where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ParenthesizedExpression a = ParenthesizedExpression\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: ListSplat GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: Yield) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_557.\n      AST.Traversable1.Class.Traversable1 a_557\n    )\n\ninstance AST.Unmarshal.SymbolMatching ParenthesizedExpression where\n  matchedSymbols _ = [145, 182]\n  showFailure _ node_558 =\n    \"expected \"\n      GHC.Base.<> ( \"parenthesized_expression, parenthesized_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_558 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_558) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_559 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_560 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_561 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_562 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_559\n        c1_560 = TreeSitter.Node.nodeStartPoint node_558\n      TreeSitter.Node.TSPoint\n        r2_561\n        c2_562 = TreeSitter.Node.nodeEndPoint node_558\n\nderiving instance GHC.Classes.Eq a_563 => GHC.Classes.Eq (ParenthesizedExpression a_563)\n\nderiving instance GHC.Classes.Ord a_564 => GHC.Classes.Ord (ParenthesizedExpression a_564)\n\nderiving instance GHC.Show.Show a_565 => GHC.Show.Show (ParenthesizedExpression a_565)\n\ninstance AST.Unmarshal.Unmarshal ParenthesizedExpression\n\ninstance Data.Foldable.Foldable ParenthesizedExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ParenthesizedExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ParenthesizedExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PassStatement a = PassStatement {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_566.\n      AST.Traversable1.Class.Traversable1 a_566\n    )\n\ninstance AST.Unmarshal.SymbolMatching PassStatement where\n  matchedSymbols _ = [120]\n  showFailure _ node_567 =\n    \"expected \"\n      GHC.Base.<> ( \"pass_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_567 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_567) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_568 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_569 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_570 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_571 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_568\n        c1_569 = TreeSitter.Node.nodeStartPoint node_567\n      TreeSitter.Node.TSPoint\n        r2_570\n        c2_571 = TreeSitter.Node.nodeEndPoint node_567\n\nderiving instance GHC.Classes.Eq a_572 => GHC.Classes.Eq (PassStatement a_572)\n\nderiving instance GHC.Classes.Ord a_573 => GHC.Classes.Ord (PassStatement a_573)\n\nderiving instance GHC.Show.Show a_574 => GHC.Show.Show (PassStatement a_574)\n\ninstance AST.Unmarshal.Unmarshal PassStatement\n\ninstance Data.Foldable.Foldable PassStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PassStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PassStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PrintStatement a = PrintStatement\n  { ann :: a,\n    argument :: ([AST.Parse.Err (Expression a)]),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Chevron a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_575.\n      AST.Traversable1.Class.Traversable1 a_575\n    )\n\ninstance AST.Unmarshal.SymbolMatching PrintStatement where\n  matchedSymbols _ = [112]\n  showFailure _ node_576 =\n    \"expected \"\n      GHC.Base.<> ( \"print_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_576 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_576) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_577 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_578 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_579 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_580 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_577\n        c1_578 = TreeSitter.Node.nodeStartPoint node_576\n      TreeSitter.Node.TSPoint\n        r2_579\n        c2_580 = TreeSitter.Node.nodeEndPoint node_576\n\nderiving instance GHC.Classes.Eq a_581 => GHC.Classes.Eq (PrintStatement a_581)\n\nderiving instance GHC.Classes.Ord a_582 => GHC.Classes.Ord (PrintStatement a_582)\n\nderiving instance GHC.Show.Show a_583 => GHC.Show.Show (PrintStatement a_583)\n\ninstance AST.Unmarshal.Unmarshal PrintStatement\n\ninstance Data.Foldable.Foldable PrintStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PrintStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PrintStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata RaiseStatement a = RaiseStatement\n  { ann :: a,\n    cause :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ExpressionList a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_584.\n      AST.Traversable1.Class.Traversable1 a_584\n    )\n\ninstance AST.Unmarshal.SymbolMatching RaiseStatement where\n  matchedSymbols _ = [119]\n  showFailure _ node_585 =\n    \"expected \"\n      GHC.Base.<> ( \"raise_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_585 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_585) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_586 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_587 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_588 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_589 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_586\n        c1_587 = TreeSitter.Node.nodeStartPoint node_585\n      TreeSitter.Node.TSPoint\n        r2_588\n        c2_589 = TreeSitter.Node.nodeEndPoint node_585\n\nderiving instance GHC.Classes.Eq a_590 => GHC.Classes.Eq (RaiseStatement a_590)\n\nderiving instance GHC.Classes.Ord a_591 => GHC.Classes.Ord (RaiseStatement a_591)\n\nderiving instance GHC.Show.Show a_592 => GHC.Show.Show (RaiseStatement a_592)\n\ninstance AST.Unmarshal.Unmarshal RaiseStatement\n\ninstance Data.Foldable.Foldable RaiseStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RaiseStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RaiseStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata RelativeImport a = RelativeImport\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((DottedName GHC.Generics.:+: ImportPrefix) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_593.\n      AST.Traversable1.Class.Traversable1 a_593\n    )\n\ninstance AST.Unmarshal.SymbolMatching RelativeImport where\n  matchedSymbols _ = [106]\n  showFailure _ node_594 =\n    \"expected \"\n      GHC.Base.<> ( \"relative_import\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_594 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_594) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_595 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_596 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_597 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_598 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_595\n        c1_596 = TreeSitter.Node.nodeStartPoint node_594\n      TreeSitter.Node.TSPoint\n        r2_597\n        c2_598 = TreeSitter.Node.nodeEndPoint node_594\n\nderiving instance GHC.Classes.Eq a_599 => GHC.Classes.Eq (RelativeImport a_599)\n\nderiving instance GHC.Classes.Ord a_600 => GHC.Classes.Ord (RelativeImport a_600)\n\nderiving instance GHC.Show.Show a_601 => GHC.Show.Show (RelativeImport a_601)\n\ninstance AST.Unmarshal.Unmarshal RelativeImport\n\ninstance Data.Foldable.Foldable RelativeImport where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RelativeImport where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RelativeImport where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ReturnStatement a = ReturnStatement\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ExpressionList a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_602.\n      AST.Traversable1.Class.Traversable1 a_602\n    )\n\ninstance AST.Unmarshal.SymbolMatching ReturnStatement where\n  matchedSymbols _ = [117]\n  showFailure _ node_603 =\n    \"expected \"\n      GHC.Base.<> ( \"return_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_603 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_603) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_604 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_605 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_606 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_607 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_604\n        c1_605 = TreeSitter.Node.nodeStartPoint node_603\n      TreeSitter.Node.TSPoint\n        r2_606\n        c2_607 = TreeSitter.Node.nodeEndPoint node_603\n\nderiving instance GHC.Classes.Eq a_608 => GHC.Classes.Eq (ReturnStatement a_608)\n\nderiving instance GHC.Classes.Ord a_609 => GHC.Classes.Ord (ReturnStatement a_609)\n\nderiving instance GHC.Show.Show a_610 => GHC.Show.Show (ReturnStatement a_610)\n\ninstance AST.Unmarshal.Unmarshal ReturnStatement\n\ninstance Data.Foldable.Foldable ReturnStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ReturnStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ReturnStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Set a = Set\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: ListSplat) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_611.\n      AST.Traversable1.Class.Traversable1 a_611\n    )\n\ninstance AST.Unmarshal.SymbolMatching Set where\n  matchedSymbols _ = [180]\n  showFailure _ node_612 =\n    \"expected \"\n      GHC.Base.<> ( \"set\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_612 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_612) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_613 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_614 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_615 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_616 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_613\n        c1_614 = TreeSitter.Node.nodeStartPoint node_612\n      TreeSitter.Node.TSPoint\n        r2_615\n        c2_616 = TreeSitter.Node.nodeEndPoint node_612\n\nderiving instance GHC.Classes.Eq a_617 => GHC.Classes.Eq (Set a_617)\n\nderiving instance GHC.Classes.Ord a_618 => GHC.Classes.Ord (Set a_618)\n\nderiving instance GHC.Show.Show a_619 => GHC.Show.Show (Set a_619)\n\ninstance AST.Unmarshal.Unmarshal Set\n\ninstance Data.Foldable.Foldable Set where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Set where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Set where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SetComprehension a = SetComprehension\n  { ann :: a,\n    body :: (AST.Parse.Err (Expression a)),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ForInClause GHC.Generics.:+: IfClause) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_620.\n      AST.Traversable1.Class.Traversable1 a_620\n    )\n\ninstance AST.Unmarshal.SymbolMatching SetComprehension where\n  matchedSymbols _ = [181]\n  showFailure _ node_621 =\n    \"expected \"\n      GHC.Base.<> ( \"set_comprehension\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_621 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_621) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_622 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_623 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_624 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_625 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_622\n        c1_623 = TreeSitter.Node.nodeStartPoint node_621\n      TreeSitter.Node.TSPoint\n        r2_624\n        c2_625 = TreeSitter.Node.nodeEndPoint node_621\n\nderiving instance GHC.Classes.Eq a_626 => GHC.Classes.Eq (SetComprehension a_626)\n\nderiving instance GHC.Classes.Ord a_627 => GHC.Classes.Ord (SetComprehension a_627)\n\nderiving instance GHC.Show.Show a_628 => GHC.Show.Show (SetComprehension a_628)\n\ninstance AST.Unmarshal.Unmarshal SetComprehension\n\ninstance Data.Foldable.Foldable SetComprehension where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SetComprehension where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SetComprehension where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Slice a = Slice\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (Expression a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_629.\n      AST.Traversable1.Class.Traversable1 a_629\n    )\n\ninstance AST.Unmarshal.SymbolMatching Slice where\n  matchedSymbols _ = [169]\n  showFailure _ node_630 =\n    \"expected \"\n      GHC.Base.<> ( \"slice\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_630 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_630) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_631 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_632 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_633 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_634 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_631\n        c1_632 = TreeSitter.Node.nodeStartPoint node_630\n      TreeSitter.Node.TSPoint\n        r2_633\n        c2_634 = TreeSitter.Node.nodeEndPoint node_630\n\nderiving instance GHC.Classes.Eq a_635 => GHC.Classes.Eq (Slice a_635)\n\nderiving instance GHC.Classes.Ord a_636 => GHC.Classes.Ord (Slice a_636)\n\nderiving instance GHC.Show.Show a_637 => GHC.Show.Show (Slice a_637)\n\ninstance AST.Unmarshal.Unmarshal Slice\n\ninstance Data.Foldable.Foldable Slice where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Slice where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Slice where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata String a = String\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((EscapeSequence GHC.Generics.:+: Interpolation) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_638.\n      AST.Traversable1.Class.Traversable1 a_638\n    )\n\ninstance AST.Unmarshal.SymbolMatching String where\n  matchedSymbols _ = [189]\n  showFailure _ node_639 =\n    \"expected \"\n      GHC.Base.<> ( \"string\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_639 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_639) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_640 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_641 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_642 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_643 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_640\n        c1_641 = TreeSitter.Node.nodeStartPoint node_639\n      TreeSitter.Node.TSPoint\n        r2_642\n        c2_643 = TreeSitter.Node.nodeEndPoint node_639\n\nderiving instance GHC.Classes.Eq a_644 => GHC.Classes.Eq (String a_644)\n\nderiving instance GHC.Classes.Ord a_645 => GHC.Classes.Ord (String a_645)\n\nderiving instance GHC.Show.Show a_646 => GHC.Show.Show (String a_646)\n\ninstance AST.Unmarshal.Unmarshal String\n\ninstance Data.Foldable.Foldable String where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor String where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable String where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Subscript a = Subscript\n  { ann :: a,\n    subscript :: (GHC.Base.NonEmpty (AST.Parse.Err ((AnonymousComma GHC.Generics.:+: Expression GHC.Generics.:+: Slice) a))),\n    value :: (AST.Parse.Err (PrimaryExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_647.\n      AST.Traversable1.Class.Traversable1 a_647\n    )\n\ninstance AST.Unmarshal.SymbolMatching Subscript where\n  matchedSymbols _ = [168]\n  showFailure _ node_648 =\n    \"expected \"\n      GHC.Base.<> ( \"subscript\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_648 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_648) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_649 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_650 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_651 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_652 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_649\n        c1_650 = TreeSitter.Node.nodeStartPoint node_648\n      TreeSitter.Node.TSPoint\n        r2_651\n        c2_652 = TreeSitter.Node.nodeEndPoint node_648\n\nderiving instance GHC.Classes.Eq a_653 => GHC.Classes.Eq (Subscript a_653)\n\nderiving instance GHC.Classes.Ord a_654 => GHC.Classes.Ord (Subscript a_654)\n\nderiving instance GHC.Show.Show a_655 => GHC.Show.Show (Subscript a_655)\n\ninstance AST.Unmarshal.Unmarshal Subscript\n\ninstance Data.Foldable.Foldable Subscript where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Subscript where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Subscript where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TryStatement a = TryStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (Block a)),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ElseClause GHC.Generics.:+: ExceptClause GHC.Generics.:+: FinallyClause) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_656.\n      AST.Traversable1.Class.Traversable1 a_656\n    )\n\ninstance AST.Unmarshal.SymbolMatching TryStatement where\n  matchedSymbols _ = [128]\n  showFailure _ node_657 =\n    \"expected \"\n      GHC.Base.<> ( \"try_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_657 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_657) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_658 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_659 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_660 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_661 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_658\n        c1_659 = TreeSitter.Node.nodeStartPoint node_657\n      TreeSitter.Node.TSPoint\n        r2_660\n        c2_661 = TreeSitter.Node.nodeEndPoint node_657\n\nderiving instance GHC.Classes.Eq a_662 => GHC.Classes.Eq (TryStatement a_662)\n\nderiving instance GHC.Classes.Ord a_663 => GHC.Classes.Ord (TryStatement a_663)\n\nderiving instance GHC.Show.Show a_664 => GHC.Show.Show (TryStatement a_664)\n\ninstance AST.Unmarshal.Unmarshal TryStatement\n\ninstance Data.Foldable.Foldable TryStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TryStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TryStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Tuple a = Tuple\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: Yield) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_665.\n      AST.Traversable1.Class.Traversable1 a_665\n    )\n\ninstance AST.Unmarshal.SymbolMatching Tuple where\n  matchedSymbols _ = [183]\n  showFailure _ node_666 =\n    \"expected \"\n      GHC.Base.<> ( \"tuple\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_666 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_666) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_667 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_668 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_669 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_670 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_667\n        c1_668 = TreeSitter.Node.nodeStartPoint node_666\n      TreeSitter.Node.TSPoint\n        r2_669\n        c2_670 = TreeSitter.Node.nodeEndPoint node_666\n\nderiving instance GHC.Classes.Eq a_671 => GHC.Classes.Eq (Tuple a_671)\n\nderiving instance GHC.Classes.Ord a_672 => GHC.Classes.Ord (Tuple a_672)\n\nderiving instance GHC.Show.Show a_673 => GHC.Show.Show (Tuple a_673)\n\ninstance AST.Unmarshal.Unmarshal Tuple\n\ninstance Data.Foldable.Foldable Tuple where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Tuple where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Tuple where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Type a = Type {ann :: a, extraChildren :: (AST.Parse.Err (Expression a))}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_674.\n      AST.Traversable1.Class.Traversable1 a_674\n    )\n\ninstance AST.Unmarshal.SymbolMatching Type where\n  matchedSymbols _ = [172]\n  showFailure _ node_675 =\n    \"expected \"\n      GHC.Base.<> ( \"type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_675 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_675) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_676 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_677 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_678 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_679 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_676\n        c1_677 = TreeSitter.Node.nodeStartPoint node_675\n      TreeSitter.Node.TSPoint\n        r2_678\n        c2_679 = TreeSitter.Node.nodeEndPoint node_675\n\nderiving instance GHC.Classes.Eq a_680 => GHC.Classes.Eq (Type a_680)\n\nderiving instance GHC.Classes.Ord a_681 => GHC.Classes.Ord (Type a_681)\n\nderiving instance GHC.Show.Show a_682 => GHC.Show.Show (Type a_682)\n\ninstance AST.Unmarshal.Unmarshal Type\n\ninstance Data.Foldable.Foldable Type where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Type where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Type where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypedDefaultParameter a = TypedDefaultParameter\n  { ann :: a,\n    value :: (AST.Parse.Err (Expression a)),\n    name :: (AST.Parse.Err (Identifier a)),\n    type' :: (AST.Parse.Err (Type a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_683.\n      AST.Traversable1.Class.Traversable1 a_683\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypedDefaultParameter where\n  matchedSymbols _ = [138]\n  showFailure _ node_684 =\n    \"expected \"\n      GHC.Base.<> ( \"typed_default_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_684 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_684) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_685 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_686 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_687 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_688 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_685\n        c1_686 = TreeSitter.Node.nodeStartPoint node_684\n      TreeSitter.Node.TSPoint\n        r2_687\n        c2_688 = TreeSitter.Node.nodeEndPoint node_684\n\nderiving instance GHC.Classes.Eq a_689 => GHC.Classes.Eq (TypedDefaultParameter a_689)\n\nderiving instance GHC.Classes.Ord a_690 => GHC.Classes.Ord (TypedDefaultParameter a_690)\n\nderiving instance GHC.Show.Show a_691 => GHC.Show.Show (TypedDefaultParameter a_691)\n\ninstance AST.Unmarshal.Unmarshal TypedDefaultParameter\n\ninstance Data.Foldable.Foldable TypedDefaultParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypedDefaultParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypedDefaultParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypedParameter a = TypedParameter\n  { ann :: a,\n    type' :: (AST.Parse.Err (Type a)),\n    extraChildren :: (AST.Parse.Err ((DictionarySplat GHC.Generics.:+: Identifier GHC.Generics.:+: ListSplat) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_692.\n      AST.Traversable1.Class.Traversable1 a_692\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypedParameter where\n  matchedSymbols _ = [171]\n  showFailure _ node_693 =\n    \"expected \"\n      GHC.Base.<> ( \"typed_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_693 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_693) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_694 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_695 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_696 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_697 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_694\n        c1_695 = TreeSitter.Node.nodeStartPoint node_693\n      TreeSitter.Node.TSPoint\n        r2_696\n        c2_697 = TreeSitter.Node.nodeEndPoint node_693\n\nderiving instance GHC.Classes.Eq a_698 => GHC.Classes.Eq (TypedParameter a_698)\n\nderiving instance GHC.Classes.Ord a_699 => GHC.Classes.Ord (TypedParameter a_699)\n\nderiving instance GHC.Show.Show a_700 => GHC.Show.Show (TypedParameter a_700)\n\ninstance AST.Unmarshal.Unmarshal TypedParameter\n\ninstance Data.Foldable.Foldable TypedParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypedParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypedParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UnaryOperator a = UnaryOperator\n  { ann :: a,\n    operator :: (AST.Parse.Err ((AnonymousPlus GHC.Generics.:+: AnonymousMinus GHC.Generics.:+: AnonymousTilde) a)),\n    argument :: (AST.Parse.Err (PrimaryExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_701.\n      AST.Traversable1.Class.Traversable1 a_701\n    )\n\ninstance AST.Unmarshal.SymbolMatching UnaryOperator where\n  matchedSymbols _ = [159]\n  showFailure _ node_702 =\n    \"expected \"\n      GHC.Base.<> ( \"unary_operator\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_702 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_702) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_703 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_704 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_705 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_706 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_703\n        c1_704 = TreeSitter.Node.nodeStartPoint node_702\n      TreeSitter.Node.TSPoint\n        r2_705\n        c2_706 = TreeSitter.Node.nodeEndPoint node_702\n\nderiving instance GHC.Classes.Eq a_707 => GHC.Classes.Eq (UnaryOperator a_707)\n\nderiving instance GHC.Classes.Ord a_708 => GHC.Classes.Ord (UnaryOperator a_708)\n\nderiving instance GHC.Show.Show a_709 => GHC.Show.Show (UnaryOperator a_709)\n\ninstance AST.Unmarshal.Unmarshal UnaryOperator\n\ninstance Data.Foldable.Foldable UnaryOperator where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UnaryOperator where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UnaryOperator where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Variables a = Variables\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (PrimaryExpression a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_710.\n      AST.Traversable1.Class.Traversable1 a_710\n    )\n\ninstance AST.Unmarshal.SymbolMatching Variables where\n  matchedSymbols _ = [150]\n  showFailure _ node_711 =\n    \"expected \"\n      GHC.Base.<> ( \"variables\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_711 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_711) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_712 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_713 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_714 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_715 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_712\n        c1_713 = TreeSitter.Node.nodeStartPoint node_711\n      TreeSitter.Node.TSPoint\n        r2_714\n        c2_715 = TreeSitter.Node.nodeEndPoint node_711\n\nderiving instance GHC.Classes.Eq a_716 => GHC.Classes.Eq (Variables a_716)\n\nderiving instance GHC.Classes.Ord a_717 => GHC.Classes.Ord (Variables a_717)\n\nderiving instance GHC.Show.Show a_718 => GHC.Show.Show (Variables a_718)\n\ninstance AST.Unmarshal.Unmarshal Variables\n\ninstance Data.Foldable.Foldable Variables where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Variables where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Variables where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata WhileStatement a = WhileStatement\n  { ann :: a,\n    alternative :: (GHC.Maybe.Maybe (AST.Parse.Err (ElseClause a))),\n    body :: (AST.Parse.Err (Block a)),\n    condition :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_719.\n      AST.Traversable1.Class.Traversable1 a_719\n    )\n\ninstance AST.Unmarshal.SymbolMatching WhileStatement where\n  matchedSymbols _ = [127]\n  showFailure _ node_720 =\n    \"expected \"\n      GHC.Base.<> ( \"while_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_720 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_720) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_721 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_722 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_723 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_724 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_721\n        c1_722 = TreeSitter.Node.nodeStartPoint node_720\n      TreeSitter.Node.TSPoint\n        r2_723\n        c2_724 = TreeSitter.Node.nodeEndPoint node_720\n\nderiving instance GHC.Classes.Eq a_725 => GHC.Classes.Eq (WhileStatement a_725)\n\nderiving instance GHC.Classes.Ord a_726 => GHC.Classes.Ord (WhileStatement a_726)\n\nderiving instance GHC.Show.Show a_727 => GHC.Show.Show (WhileStatement a_727)\n\ninstance AST.Unmarshal.Unmarshal WhileStatement\n\ninstance Data.Foldable.Foldable WhileStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor WhileStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable WhileStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata WildcardImport a = WildcardImport {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_728.\n      AST.Traversable1.Class.Traversable1 a_728\n    )\n\ninstance AST.Unmarshal.SymbolMatching WildcardImport where\n  matchedSymbols _ = [111]\n  showFailure _ node_729 =\n    \"expected \"\n      GHC.Base.<> ( \"wildcard_import\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_729 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_729) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_730 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_731 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_732 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_733 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_730\n        c1_731 = TreeSitter.Node.nodeStartPoint node_729\n      TreeSitter.Node.TSPoint\n        r2_732\n        c2_733 = TreeSitter.Node.nodeEndPoint node_729\n\nderiving instance GHC.Classes.Eq a_734 => GHC.Classes.Eq (WildcardImport a_734)\n\nderiving instance GHC.Classes.Ord a_735 => GHC.Classes.Ord (WildcardImport a_735)\n\nderiving instance GHC.Show.Show a_736 => GHC.Show.Show (WildcardImport a_736)\n\ninstance AST.Unmarshal.Unmarshal WildcardImport\n\ninstance Data.Foldable.Foldable WildcardImport where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor WildcardImport where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable WildcardImport where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata WithItem a = WithItem\n  { ann :: a,\n    value :: (AST.Parse.Err (Expression a)),\n    alias :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_737.\n      AST.Traversable1.Class.Traversable1 a_737\n    )\n\ninstance AST.Unmarshal.SymbolMatching WithItem where\n  matchedSymbols _ = [132]\n  showFailure _ node_738 =\n    \"expected \"\n      GHC.Base.<> ( \"with_item\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_738 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_738) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_739 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_740 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_741 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_742 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_739\n        c1_740 = TreeSitter.Node.nodeStartPoint node_738\n      TreeSitter.Node.TSPoint\n        r2_741\n        c2_742 = TreeSitter.Node.nodeEndPoint node_738\n\nderiving instance GHC.Classes.Eq a_743 => GHC.Classes.Eq (WithItem a_743)\n\nderiving instance GHC.Classes.Ord a_744 => GHC.Classes.Ord (WithItem a_744)\n\nderiving instance GHC.Show.Show a_745 => GHC.Show.Show (WithItem a_745)\n\ninstance AST.Unmarshal.Unmarshal WithItem\n\ninstance Data.Foldable.Foldable WithItem where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor WithItem where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable WithItem where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata WithStatement a = WithStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (Block a)),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (WithItem a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_746.\n      AST.Traversable1.Class.Traversable1 a_746\n    )\n\ninstance AST.Unmarshal.SymbolMatching WithStatement where\n  matchedSymbols _ = [131]\n  showFailure _ node_747 =\n    \"expected \"\n      GHC.Base.<> ( \"with_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_747 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_747) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_748 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_749 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_750 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_751 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_748\n        c1_749 = TreeSitter.Node.nodeStartPoint node_747\n      TreeSitter.Node.TSPoint\n        r2_750\n        c2_751 = TreeSitter.Node.nodeEndPoint node_747\n\nderiving instance GHC.Classes.Eq a_752 => GHC.Classes.Eq (WithStatement a_752)\n\nderiving instance GHC.Classes.Ord a_753 => GHC.Classes.Ord (WithStatement a_753)\n\nderiving instance GHC.Show.Show a_754 => GHC.Show.Show (WithStatement a_754)\n\ninstance AST.Unmarshal.Unmarshal WithStatement\n\ninstance Data.Foldable.Foldable WithStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor WithStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable WithStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Yield a = Yield\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: ExpressionList) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_755.\n      AST.Traversable1.Class.Traversable1 a_755\n    )\n\ninstance AST.Unmarshal.SymbolMatching Yield where\n  matchedSymbols _ = [166]\n  showFailure _ node_756 =\n    \"expected \"\n      GHC.Base.<> ( \"yield\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_756 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_756) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_757 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_758 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_759 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_760 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_757\n        c1_758 = TreeSitter.Node.nodeStartPoint node_756\n      TreeSitter.Node.TSPoint\n        r2_759\n        c2_760 = TreeSitter.Node.nodeEndPoint node_756\n\nderiving instance GHC.Classes.Eq a_761 => GHC.Classes.Eq (Yield a_761)\n\nderiving instance GHC.Classes.Ord a_762 => GHC.Classes.Ord (Yield a_762)\n\nderiving instance GHC.Show.Show a_763 => GHC.Show.Show (Yield a_763)\n\ninstance AST.Unmarshal.Unmarshal Yield\n\ninstance Data.Foldable.Foldable Yield where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Yield where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Yield where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousBangEqual = AST.Token.Token \"!=\" 58\n\ntype AnonymousPercent = AST.Token.Token \"%\" 48\n\ntype AnonymousPercentEqual = AST.Token.Token \"%=\" 70\n\ntype AnonymousAmpersand = AST.Token.Token \"&\" 51\n\ntype AnonymousAmpersandEqual = AST.Token.Token \"&=\" 74\n\ntype AnonymousLParen = AST.Token.Token \"(\" 6\n\ntype AnonymousRParen = AST.Token.Token \")\" 7\n\ntype AnonymousStar = AST.Token.Token \"*\" 10\n\ntype AnonymousStarStar = AST.Token.Token \"**\" 36\n\ntype AnonymousStarStarEqual = AST.Token.Token \"**=\" 71\n\ntype AnonymousStarEqual = AST.Token.Token \"*=\" 66\n\ntype AnonymousPlus = AST.Token.Token \"+\" 45\n\ntype AnonymousPlusEqual = AST.Token.Token \"+=\" 64\n\ntype AnonymousComma = AST.Token.Token \",\" 8\n\ntype AnonymousMinus = AST.Token.Token \"-\" 46\n\ntype AnonymousMinusEqual = AST.Token.Token \"-=\" 65\n\ntype AnonymousMinusRAngle = AST.Token.Token \"->\" 34\n\ntype AnonymousDot = AST.Token.Token \".\" 3\n\ntype AnonymousSlash = AST.Token.Token \"/\" 47\n\ntype AnonymousSlashSlash = AST.Token.Token \"//\" 49\n\ntype AnonymousSlashSlashEqual = AST.Token.Token \"//=\" 69\n\ntype AnonymousSlashEqual = AST.Token.Token \"/=\" 67\n\ntype AnonymousColon = AST.Token.Token \":\" 22\n\ntype AnonymousColonEqual = AST.Token.Token \":=\" 14\n\ntype AnonymousLAngle = AST.Token.Token \"<\" 55\n\ntype AnonymousLAngleLAngle = AST.Token.Token \"<<\" 53\n\ntype AnonymousLAngleLAngleEqual = AST.Token.Token \"<<=\" 73\n\ntype AnonymousLAngleEqual = AST.Token.Token \"<=\" 56\n\ntype AnonymousLAngleRAngle = AST.Token.Token \"<>\" 61\n\ntype AnonymousEqual = AST.Token.Token \"=\" 35\n\ntype AnonymousEqualEqual = AST.Token.Token \"==\" 57\n\ntype AnonymousRAngle = AST.Token.Token \">\" 60\n\ntype AnonymousRAngleEqual = AST.Token.Token \">=\" 59\n\ntype AnonymousRAngleRAngle = AST.Token.Token \">>\" 12\n\ntype AnonymousRAngleRAngleEqual = AST.Token.Token \">>=\" 72\n\ntype AnonymousAt = AST.Token.Token \"@\" 41\n\ntype AnonymousAtEqual = AST.Token.Token \"@=\" 68\n\ntype AnonymousLBracket = AST.Token.Token \"[\" 78\n\ntype AnonymousRBracket = AST.Token.Token \"]\" 79\n\ntype AnonymousCaret = AST.Token.Token \"^\" 52\n\ntype AnonymousCaretEqual = AST.Token.Token \"^=\" 75\n\ntype AnonymousUnderscorefutureUnderscore =\n  AST.Token.Token\n    \"__future__\"\n    5\n\ntype AnonymousAnd = AST.Token.Token \"and\" 43\n\ntype AnonymousAs = AST.Token.Token \"as\" 9\n\ntype AnonymousAssert = AST.Token.Token \"assert\" 13\n\ntype AnonymousAsync = AST.Token.Token \"async\" 25\n\ntype AnonymousAwait = AST.Token.Token \"await\" 92\n\ntype AnonymousBreak = AST.Token.Token \"break\" 19\n\ntype AnonymousClass = AST.Token.Token \"class\" 40\n\ntype AnonymousContinue = AST.Token.Token \"continue\" 20\n\ntype AnonymousDef = AST.Token.Token \"def\" 33\n\ntype AnonymousDel = AST.Token.Token \"del\" 16\n\ntype AnonymousElif = AST.Token.Token \"elif\" 23\n\ndata Ellipsis a = Ellipsis {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_764.\n      AST.Traversable1.Class.Traversable1 a_764\n    )\n\ninstance AST.Unmarshal.SymbolMatching Ellipsis where\n  matchedSymbols _ = [80]\n  showFailure _ node_765 =\n    \"expected \"\n      GHC.Base.<> ( \"ellipsis\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_765 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_765) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_766 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_767 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_768 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_769 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_766\n        c1_767 = TreeSitter.Node.nodeStartPoint node_765\n      TreeSitter.Node.TSPoint\n        r2_768\n        c2_769 = TreeSitter.Node.nodeEndPoint node_765\n\nderiving instance GHC.Classes.Eq a_770 => GHC.Classes.Eq (Ellipsis a_770)\n\nderiving instance GHC.Classes.Ord a_771 => GHC.Classes.Ord (Ellipsis a_771)\n\nderiving instance GHC.Show.Show a_772 => GHC.Show.Show (Ellipsis a_772)\n\ninstance AST.Unmarshal.Unmarshal Ellipsis\n\ninstance Data.Foldable.Foldable Ellipsis where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Ellipsis where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Ellipsis where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousElse = AST.Token.Token \"else\" 24\n\ndata EscapeSequence a = EscapeSequence {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_773.\n      AST.Traversable1.Class.Traversable1 a_773\n    )\n\ninstance AST.Unmarshal.SymbolMatching EscapeSequence where\n  matchedSymbols _ = [83]\n  showFailure _ node_774 =\n    \"expected \"\n      GHC.Base.<> ( \"escape_sequence\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_774 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_774) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_775 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_776 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_777 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_778 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_775\n        c1_776 = TreeSitter.Node.nodeStartPoint node_774\n      TreeSitter.Node.TSPoint\n        r2_777\n        c2_778 = TreeSitter.Node.nodeEndPoint node_774\n\nderiving instance GHC.Classes.Eq a_779 => GHC.Classes.Eq (EscapeSequence a_779)\n\nderiving instance GHC.Classes.Ord a_780 => GHC.Classes.Ord (EscapeSequence a_780)\n\nderiving instance GHC.Show.Show a_781 => GHC.Show.Show (EscapeSequence a_781)\n\ninstance AST.Unmarshal.Unmarshal EscapeSequence\n\ninstance Data.Foldable.Foldable EscapeSequence where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EscapeSequence where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EscapeSequence where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousExcept = AST.Token.Token \"except\" 30\n\ntype AnonymousExec = AST.Token.Token \"exec\" 39\n\ndata False a = False {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_782.\n      AST.Traversable1.Class.Traversable1 a_782\n    )\n\ninstance AST.Unmarshal.SymbolMatching False where\n  matchedSymbols _ = [90]\n  showFailure _ node_783 =\n    \"expected \"\n      GHC.Base.<> ( \"false\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_783 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_783) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_784 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_785 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_786 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_787 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_784\n        c1_785 = TreeSitter.Node.nodeStartPoint node_783\n      TreeSitter.Node.TSPoint\n        r2_786\n        c2_787 = TreeSitter.Node.nodeEndPoint node_783\n\nderiving instance GHC.Classes.Eq a_788 => GHC.Classes.Eq (False a_788)\n\nderiving instance GHC.Classes.Ord a_789 => GHC.Classes.Ord (False a_789)\n\nderiving instance GHC.Show.Show a_790 => GHC.Show.Show (False a_790)\n\ninstance AST.Unmarshal.Unmarshal False\n\ninstance Data.Foldable.Foldable False where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor False where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable False where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousFinally = AST.Token.Token \"finally\" 31\n\ndata Float a = Float {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_791.\n      AST.Traversable1.Class.Traversable1 a_791\n    )\n\ninstance AST.Unmarshal.SymbolMatching Float where\n  matchedSymbols _ = [88]\n  showFailure _ node_792 =\n    \"expected \"\n      GHC.Base.<> ( \"float\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_792 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_792) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_793 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_794 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_795 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_796 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_793\n        c1_794 = TreeSitter.Node.nodeStartPoint node_792\n      TreeSitter.Node.TSPoint\n        r2_795\n        c2_796 = TreeSitter.Node.nodeEndPoint node_792\n\nderiving instance GHC.Classes.Eq a_797 => GHC.Classes.Eq (Float a_797)\n\nderiving instance GHC.Classes.Ord a_798 => GHC.Classes.Ord (Float a_798)\n\nderiving instance GHC.Show.Show a_799 => GHC.Show.Show (Float a_799)\n\ninstance AST.Unmarshal.Unmarshal Float\n\ninstance Data.Foldable.Foldable Float where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Float where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Float where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousFor = AST.Token.Token \"for\" 26\n\ntype AnonymousFrom = AST.Token.Token \"from\" 4\n\ntype AnonymousGlobal = AST.Token.Token \"global\" 37\n\ndata Identifier a = Identifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_800.\n      AST.Traversable1.Class.Traversable1 a_800\n    )\n\ninstance AST.Unmarshal.SymbolMatching Identifier where\n  matchedSymbols _ = [1]\n  showFailure _ node_801 =\n    \"expected \"\n      GHC.Base.<> ( \"identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_801 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_801) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_802 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_803 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_804 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_805 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_802\n        c1_803 = TreeSitter.Node.nodeStartPoint node_801\n      TreeSitter.Node.TSPoint\n        r2_804\n        c2_805 = TreeSitter.Node.nodeEndPoint node_801\n\nderiving instance GHC.Classes.Eq a_806 => GHC.Classes.Eq (Identifier a_806)\n\nderiving instance GHC.Classes.Ord a_807 => GHC.Classes.Ord (Identifier a_807)\n\nderiving instance GHC.Show.Show a_808 => GHC.Show.Show (Identifier a_808)\n\ninstance AST.Unmarshal.Unmarshal Identifier\n\ninstance Data.Foldable.Foldable Identifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Identifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Identifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousIf = AST.Token.Token \"if\" 21\n\ntype AnonymousImport = AST.Token.Token \"import\" 2\n\ntype AnonymousIn = AST.Token.Token \"in\" 27\n\ndata Integer a = Integer {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_809.\n      AST.Traversable1.Class.Traversable1 a_809\n    )\n\ninstance AST.Unmarshal.SymbolMatching Integer where\n  matchedSymbols _ = [87]\n  showFailure _ node_810 =\n    \"expected \"\n      GHC.Base.<> ( \"integer\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_810 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_810) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_811 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_812 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_813 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_814 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_811\n        c1_812 = TreeSitter.Node.nodeStartPoint node_810\n      TreeSitter.Node.TSPoint\n        r2_813\n        c2_814 = TreeSitter.Node.nodeEndPoint node_810\n\nderiving instance GHC.Classes.Eq a_815 => GHC.Classes.Eq (Integer a_815)\n\nderiving instance GHC.Classes.Ord a_816 => GHC.Classes.Ord (Integer a_816)\n\nderiving instance GHC.Show.Show a_817 => GHC.Show.Show (Integer a_817)\n\ninstance AST.Unmarshal.Unmarshal Integer\n\ninstance Data.Foldable.Foldable Integer where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Integer where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Integer where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousIs = AST.Token.Token \"is\" 62\n\ntype AnonymousLambda = AST.Token.Token \"lambda\" 63\n\ndata None a = None {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_818.\n      AST.Traversable1.Class.Traversable1 a_818\n    )\n\ninstance AST.Unmarshal.SymbolMatching None where\n  matchedSymbols _ = [91]\n  showFailure _ node_819 =\n    \"expected \"\n      GHC.Base.<> ( \"none\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_819 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_819) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_820 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_821 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_822 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_823 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_820\n        c1_821 = TreeSitter.Node.nodeStartPoint node_819\n      TreeSitter.Node.TSPoint\n        r2_822\n        c2_823 = TreeSitter.Node.nodeEndPoint node_819\n\nderiving instance GHC.Classes.Eq a_824 => GHC.Classes.Eq (None a_824)\n\nderiving instance GHC.Classes.Ord a_825 => GHC.Classes.Ord (None a_825)\n\nderiving instance GHC.Show.Show a_826 => GHC.Show.Show (None a_826)\n\ninstance AST.Unmarshal.Unmarshal None\n\ninstance Data.Foldable.Foldable None where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor None where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable None where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousNonlocal = AST.Token.Token \"nonlocal\" 38\n\ntype AnonymousNot = AST.Token.Token \"not\" 42\n\ntype AnonymousOr = AST.Token.Token \"or\" 44\n\ntype AnonymousPass = AST.Token.Token \"pass\" 18\n\ntype AnonymousPrint = AST.Token.Token \"print\" 11\n\ntype AnonymousRaise = AST.Token.Token \"raise\" 17\n\ntype AnonymousReturn = AST.Token.Token \"return\" 15\n\ndata True a = True {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_827.\n      AST.Traversable1.Class.Traversable1 a_827\n    )\n\ninstance AST.Unmarshal.SymbolMatching True where\n  matchedSymbols _ = [89]\n  showFailure _ node_828 =\n    \"expected \"\n      GHC.Base.<> ( \"true\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_828 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_828) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_829 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_830 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_831 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_832 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_829\n        c1_830 = TreeSitter.Node.nodeStartPoint node_828\n      TreeSitter.Node.TSPoint\n        r2_831\n        c2_832 = TreeSitter.Node.nodeEndPoint node_828\n\nderiving instance GHC.Classes.Eq a_833 => GHC.Classes.Eq (True a_833)\n\nderiving instance GHC.Classes.Ord a_834 => GHC.Classes.Ord (True a_834)\n\nderiving instance GHC.Show.Show a_835 => GHC.Show.Show (True a_835)\n\ninstance AST.Unmarshal.Unmarshal True\n\ninstance Data.Foldable.Foldable True where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor True where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable True where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousTry = AST.Token.Token \"try\" 29\n\ndata TypeConversion a = TypeConversion {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_836.\n      AST.Traversable1.Class.Traversable1 a_836\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeConversion where\n  matchedSymbols _ = [86]\n  showFailure _ node_837 =\n    \"expected \"\n      GHC.Base.<> ( \"type_conversion\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_837 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_837) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_838 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_839 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_840 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_841 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_838\n        c1_839 = TreeSitter.Node.nodeStartPoint node_837\n      TreeSitter.Node.TSPoint\n        r2_840\n        c2_841 = TreeSitter.Node.nodeEndPoint node_837\n\nderiving instance GHC.Classes.Eq a_842 => GHC.Classes.Eq (TypeConversion a_842)\n\nderiving instance GHC.Classes.Ord a_843 => GHC.Classes.Ord (TypeConversion a_843)\n\nderiving instance GHC.Show.Show a_844 => GHC.Show.Show (TypeConversion a_844)\n\ninstance AST.Unmarshal.Unmarshal TypeConversion\n\ninstance Data.Foldable.Foldable TypeConversion where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeConversion where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeConversion where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousWhile = AST.Token.Token \"while\" 28\n\ntype AnonymousWith = AST.Token.Token \"with\" 32\n\ntype AnonymousYield = AST.Token.Token \"yield\" 77\n\ntype AnonymousLBrace = AST.Token.Token \"{\" 81\n\ntype AnonymousPipe = AST.Token.Token \"|\" 50\n\ntype AnonymousPipeEqual = AST.Token.Token \"|=\" 76\n\ntype AnonymousRBrace = AST.Token.Token \"}\" 82\n\ntype AnonymousTilde = AST.Token.Token \"~\" 54\n"
  },
  {
    "path": "semantic-python/src/Language/Python/Core.hs",
    "content": "{-# LANGUAGE ConstraintKinds #-}\n{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DefaultSignatures #-}\n{-# LANGUAGE DisambiguateRecordFields #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE LambdaCase #-}\n{-# LANGUAGE NamedFieldPuns #-}\n{-# LANGUAGE OverloadedLists #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE PatternSynonyms #-}\n{-# LANGUAGE StandaloneDeriving #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE ViewPatterns #-}\n\n-- NOTE: This file needs to be updated to accommodate new AST shapes.\n-- A portion of instances have been updated to include the Err functor;\n-- remaining instances are to be updated once this is stable.\n\nmodule Language.Python.Core\n( toplevelCompile\n, Bindings\n) where\n\nimport Prelude hiding (fail)\n\nimport           AST.Element\nimport           Control.Algebra hiding ((:+:))\nimport           Control.Effect.Reader\nimport           Core.Core as Core\nimport           Core.Name as Name\nimport           Data.Coerce\nimport           Data.Foldable\nimport           Data.Function\nimport           Data.List.NonEmpty (NonEmpty (..))\nimport           Data.Maybe\nimport           GHC.Records\nimport qualified Language.Python.AST as Py\nimport           Language.Python.Failure\nimport           Language.Python.Patterns\nimport           Source.Span (Span)\nimport           Syntax.Stack (Stack (..))\nimport qualified Syntax.Stack as Stack\n\n-- | Keeps track of the current scope's bindings (so that we can, when\n-- compiling a class or module, return the list of bound variables as\n-- a Core record so that all immediate definitions are exposed)\nnewtype Bindings = Bindings { unBindings :: Stack Name }\n  deriving (Eq, Monoid, Semigroup, Show)\n\ndef :: Name -> Bindings -> Bindings\ndef n = coerce (Stack.:> n)\n\nprelude :: Has Core sig t => [Name] -> t Name\nprelude = foldl' (...) (pure \"__semantic_prelude\")\n\n-- We leave the representation of Core syntax abstract so that it's not\n-- possible for us to 'cheat' by pattern-matching on or eliminating a\n-- compiled term.\ntype CoreSyntax sig t = ( Has Core sig t\n                        , Has (Ann Span) sig t\n                        , Has Failure sig t\n                        , Foldable t\n                        )\n\nclass Compile (py :: * -> *) where\n  compile :: ( CoreSyntax syn t\n             , Has (Reader Bindings) sig m\n             )\n          => py Span\n          -> (t Name -> m (t Name))\n          -> (t Name -> m (t Name))\n\n  default compile :: (Applicative m, Has Failure syn t, Show (py Span)) => py Span -> (t Name -> m (t Name)) -> (t Name -> m (t Name))\n  compile a _ _ = defaultCompile a\n\ntoplevelCompile :: ( CoreSyntax syn t\n                   , Has (Reader Bindings) sig m\n                   )\n                => Py.Module Span\n                -> m (t Name)\ntoplevelCompile py = compile py pure none\n\n-- | TODO: This is not right, it should be a reference to a Preluded\n-- NoneType instance, but it will do for now.\nnone :: Has Core sig t => t Name\nnone = unit\n\nlocate :: ( HasField \"ann\" syntax Span\n          , CoreSyntax syn t\n          )\n       => syntax\n       -> t a\n       -> t a\nlocate syn  = Core.annAt (getField @\"ann\" syn)\n\ndefaultCompile :: (Applicative m, Has Failure syn t, Show py) => py -> m (t Name)\ndefaultCompile = pure . unimplemented\n\n\ninstance (Compile l, Compile r) => Compile (l :+: r) where\n  compile (L1 l) cc = compile l cc\n  compile (R1 r) cc = compile r cc\n\ninstance Compile Py.AssertStatement\ninstance Compile Py.Attribute\n\n-- Assignment compilation. Assignments are an uneasy hybrid of expressions\n-- (since they appear to have values, i.e. `a = b = c`) and statements (because\n-- they introduce bindings). For that reason, they deserve special attention.\n--\n-- The correct desugaring for the expression above looks like, given a continuation @cont@:\n-- @\n--  (b :<- c) >>>= (a :<- b) >>>= cont\n-- @\n-- The tree structure that we get out of tree-sitter is not particulary conducive to expressing\n-- this naturally, so we engage in a small desugaring step so that we can turn a list [a, b, c]\n-- into a sequenced Core expression using >>>= and a fold through which information—specifically\n-- the LHS to assign—flows.\n\n-- RHS represents the right-hand-side of an assignment that we get out of tree-sitter.\n-- Desugared is the \"terminal\" node in a sequence of assignments, i.e. given a = b = c,\n-- c will be the terminal node. It is never an assignment.\ntype RHS = (Py.Assignment :+: Py.AugmentedAssignment) :+: Desugared\ntype Desugared = Py.ExpressionList :+: Py.Yield\n\n-- We have to pair locations and names, and tuple syntax is harder to\n-- read in this case than a happy little constructor.\ndata Located a = Located Span a\n\n-- Desugaring an RHS involves walking as deeply as possible into an\n-- assignment, storing the names we encounter as we go and eventually\n-- returning a terminal expression. We have to keep track of which\ndesugar :: [Located Name]\n        -> RHS Span\n        -> Either String ([Located Name], Desugared Span)\ndesugar acc = \\case\n  Prj Py.Assignment { left = SingleIdentifier name, right = Just rhs, ann} ->\n    desugar (Located ann name : acc) rhs\n  R1 any -> pure (acc, any)\n  other -> Left (\"desugar: couldn't desugar RHS \" <> show other)\n\n-- This is an algebra that is invoked from a left fold but that\n-- returns a function (the 'difference' pattern) so that we can pass\n-- information about what RHS we need down the chain: unlike most fold\n-- functions, it has four parameters, not three (since our fold\n-- returns a function). There's some pun to be made on \"collapsing\n-- sugar\", like \"icing\" or \"sugar water\" but I'll leave that as an\n-- exercise to the reader.\ncollapseDesugared :: (CoreSyntax syn t, Has (Reader Bindings) sig m)\n                  => Located Name           -- The current LHS to which to assign\n                  -> (t Name -> m (t Name)) -- A meta-continuation: it takes a name and returns a continuation\n                  -> t Name                 -- The current RHS to which to assign, yielded from an outer continuation\n                  -> m (t Name)             -- The properly-sequenced resolut\ncollapseDesugared (Located loc n) cont rem =\n  let assigning = fmap (Core.annAt loc . ((Name.named' n :<- rem) >>>=))\n  in assigning (local (def n) (cont (pure n))) -- gotta call local here to record this assignment\n\ninstance Compile Py.Assignment where\n  compile it@Py.Assignment\n    { left = SingleIdentifier name\n    , right = Just rhs\n    , ann\n    } cc next = case desugar [Located ann name] rhs of\n      Right (names, val) -> compile val pure next >>= foldr collapseDesugared cc names >>= pure . locate it\n      Left msg           -> pure $ unimplemented msg\n\n\n\n  compile other _ _ = pure $ invariantViolated (\"Unhandled assignment case: \" <> show other)\n\n-- End assignment compilation\n\ninstance Compile Py.AugmentedAssignment\ninstance Compile Py.Await\ninstance Compile Py.BinaryOperator\n\ninstance Compile Py.Block where\n  compile it@Py.Block{ Py.extraChildren = body} cc\n    = fmap (locate it)\n    . foldr compile cc body\n\ninstance Compile Py.BooleanOperator\ninstance Compile Py.BreakStatement\n\ninstance Compile Py.Call where\n  compile it@Py.Call\n    { function\n    , arguments = L1 Py.ArgumentList { extraChildren = args }\n    } cc next = do\n    func <- compile function pure next\n    let compileArg = \\case\n          Prj expr -> compile (expr :: Py.Expression Span) pure next\n          other    -> pure . invariantViolated $ \"Can't compile non-expression function argument: \" <> show other\n\n    -- Python function arguments are defined to evaluate left to right.\n    args <- traverse compileArg args\n    locate it (func $$* args) & cc\n  compile it _ _ = pure . invariantViolated $ \"can't compile Call node with generator expression: \" <> show it\n\ninstance Compile Py.ClassDefinition where\n  compile it@Py.ClassDefinition { body = pybody, name = Py.Identifier _ann (Name.name -> n) } cc next = do\n    let buildTypeCall _ = do\n          bindings <- asks @Bindings (toList . unBindings)\n          let buildName n = (n, pure n)\n              contents = record . fmap buildName $ bindings\n              typefn = prelude [\"type\"]\n              object = prelude [\"object\"]\n\n          pure (typefn $$ Core.string (formatName n) $$ object $$ contents)\n\n    body <- compile pybody buildTypeCall next\n    let coreName = Name.named' n\n        assignClass = coreName :<- rec coreName body\n        continuing = fmap (locate it . (assignClass >>>=))\n    continuing (local (def n) (cc next))\n\ninstance Compile Py.ComparisonOperator\n\nderiving instance Compile Py.CompoundStatement\n\ninstance Compile Py.ConcatenatedString\ninstance Compile Py.ConditionalExpression\ninstance Compile Py.ContinueStatement\n\ninstance Compile Py.DecoratedDefinition where\n  compile it@Py.DecoratedDefinition\n    { definition\n    , extraChildren = [ Py.Decorator { extraChildren } ]\n    } cc next = do\n    let thenReassign item = do\n          bindings <- asks unBindings\n          case bindings of\n            _ :> lastbound -> do\n              tocall <- compile extraChildren pure next\n              let callit go = (pure lastbound .= (tocall $$ pure lastbound)) >>> go\n              fmap callit (cc item)\n            _ -> pure . invariantViolated $ \"Encountered a decorated definition without a corresponding function\"\n    locate it <$> compile definition thenReassign next\n  compile it _ _ = pure . invariantViolated $ \"Can't figure out decorated definition \" <> show it\ninstance Compile Py.DeleteStatement\ninstance Compile Py.Dictionary\ninstance Compile Py.DictionaryComprehension\n\ninstance Compile Py.DottedName where\n  compile it@Py.DottedName\n    { extraChildren = Py.Identifier { text } :| rest\n    } cc _next = do\n    let aggregate Py.Identifier { text = inner } x = x ... Name.name inner\n        composite = foldr aggregate (pure (Name.name text)) rest\n    locate it composite & cc\n\n\ninstance Compile Py.Ellipsis\ninstance Compile Py.ExecStatement\n\nderiving instance Compile Py.Expression\n\ninstance Compile Py.ExpressionStatement where\n  compile it@Py.ExpressionStatement { Py.extraChildren = children } cc\n    = fmap (locate it)\n    . foldr compile cc children\n\ninstance Compile Py.ExpressionList where\n  compile it@Py.ExpressionList { Py.extraChildren = [child] } cc\n    = fmap (locate it)\n    . compile child cc\n  compile Py.ExpressionList { Py.extraChildren = items } _\n    = const . pure . unimplemented $ \"ExpressionList of length \" <> show items\n\n\ninstance Compile Py.False where\n  compile it cc _ = cc $ locate it (bool False)\n\ninstance Compile Py.Float\ninstance Compile Py.ForStatement\n\ninstance Compile Py.FunctionDefinition where\n  compile it@Py.FunctionDefinition\n    { name       = Py.Identifier _ann1 name\n    , parameters = Py.Parameters _ann2 parameters\n    , body\n    } cc next = do\n      -- Compile each of the parameters, then the body.\n      let parameterMs = fmap param parameters\n      if any isNothing parameterMs\n        then pure . invariantViolated $ \"Couldn't extract parameters\"\n        else do\n          let parameters' = catMaybes parameterMs\n          body' <- compile body pure next\n          -- Build a lambda.\n          let located = locate it (rec (Name.named' (Name.name name)) (lams parameters' body'))\n          -- Give it a name (below), then augment the current continuation\n          -- with the new name (with 'def'), so that calling contexts know\n          -- that we have built an exportable definition.\n          assigning located <$> local (def (Name.name name)) (cc next)\n    where param (Py.Parameter (Prj (Py.Identifier _pann pname))) = Just . named' . Name.name $ pname\n          param _                                                = Nothing\n          assigning item f = (Name.named' (Name.name name) :<- item) >>>= f\n\ninstance Compile Py.FutureImportStatement\ninstance Compile Py.GeneratorExpression\ninstance Compile Py.GlobalStatement\n\ninstance Compile Py.Identifier where\n  compile Py.Identifier { text } cc _ = cc . pure . Name.name $ text\n\ninstance Compile Py.IfStatement where\n  compile it@Py.IfStatement{ condition, consequence, alternative} cc next =\n    locate it <$> (if' <$> compile condition pure next\n                       <*> compile consequence cc next\n                       <*> foldr clause (cc next) alternative)\n    where clause (R1 Py.ElseClause{ body }) _ = compile body cc next\n          clause (L1 Py.ElifClause{ condition, consequence }) rest  =\n            if' <$> compile condition pure next <*> compile consequence cc next <*> rest\n\n\ninstance Compile Py.ImportFromStatement\ninstance Compile Py.ImportStatement\ninstance Compile Py.Integer\n\ninstance Compile Py.Lambda where\n  compile it@Py.Lambda\n    { body\n    , parameters\n    } cc next = do\n      let unparams (Py.LambdaParameters _ ps) = toList ps\n          unparam (Py.Parameter (Prj (Py.Identifier _pann pname))) = Just . named' . Name.name $ pname\n          unparam _                                                = Nothing\n      body' <- compile body cc next\n      let params = maybe [] unparams parameters\n      pure . locate it . lams (catMaybes (fmap unparam params)) $ body'\n\ninstance Compile Py.List\ninstance Compile Py.ListComprehension\ninstance Compile Py.ListSplat\n\ninstance Compile Py.Module where\n  compile it@Py.Module { Py.extraChildren = stmts } _cc =\n    -- This action gets passed to compile, which means it is the\n    -- final action taken after the compiling fold finishes. It takes\n    -- care of listening for the current set of bound variables (which\n    -- is augmented by assignments and function definitions) and\n    -- creating a record corresponding to those bindings.\n    let buildRecord _ = do\n          bindings <- asks @Bindings (toList . unBindings)\n          let buildName n = (n, pure n)\n          pure . record . fmap buildName $ bindings\n    in fmap (locate it) . foldr compile buildRecord stmts\n\ninstance Compile Py.NamedExpression\n\ninstance Compile Py.None where\n  -- None is not an lvalue, and thus always points to the prelude's None.\n  compile _it cc _ = cc (prelude [\"None\"])\n\ninstance Compile Py.NonlocalStatement\n\ninstance Compile Py.NotOperator where\n  compile _it@Py.NotOperator{ argument } cc next = do\n    val <- compile argument pure next\n    cc (prelude [\"not\"] $$ val)\n\ninstance Compile Py.ParenthesizedExpression where\n  compile it@Py.ParenthesizedExpression { extraChildren } cc\n    = fmap (locate it)\n    . compile extraChildren cc\n\ninstance Compile Py.PassStatement where\n  compile it@Py.PassStatement {} cc _ = cc $ locate it Core.unit\n\nderiving instance Compile Py.PrimaryExpression\n\ninstance Compile Py.PrintStatement\n\ninstance Compile Py.ReturnStatement where\n  compile it@Py.ReturnStatement { Py.extraChildren = vals } _ next = locate it <$> case vals of\n    Nothing -> pure none\n    Just Py.ExpressionList { extraChildren = [val] } -> compile val pure next\n    Just Py.ExpressionList { extraChildren = vals  } -> pure (invariantViolated (\"unimplemented: return statement returning \" <> show (length vals) <> \" values\"))\n\n\ninstance Compile Py.RaiseStatement\ninstance Compile Py.Set\ninstance Compile Py.SetComprehension\n\nderiving instance Compile Py.SimpleStatement\n\ninstance Compile Py.String where\n  compile it@Py.String { extraChildren } cc _ = do\n    let extract = \\case\n          Prj Py.EscapeSequence { text } -> Just text\n          _other                         -> Nothing\n\n    let contents = fmap extract extraChildren\n\n    if any isNothing contents\n      then pure . invariantViolated $ \"Couldn't string-desugar \" <> show it\n      else let new = prelude [\"str\", \"__slots\", \"__new__\"]\n           in cc $ locate it (new $$ Core.string (mconcat (catMaybes contents)))\n\ninstance Compile Py.Subscript\n\ninstance Compile Py.True where\n  compile it cc _next = cc $ locate it (bool True)\n\ninstance Compile Py.TryStatement\n\ninstance Compile Py.Tuple where\n  compile it@Py.Tuple { Py.extraChildren = [] } cc _ = cc $ locate it unit\n\n  compile it _ _                                     = pure $ unimplemented it\n\ninstance Compile Py.UnaryOperator\ninstance Compile Py.WhileStatement\ninstance Compile Py.WithStatement\ninstance Compile Py.Yield\n"
  },
  {
    "path": "semantic-python/src/Language/Python/Failure.hs",
    "content": "{-# LANGUAGE DeriveFoldable #-}\n{-# LANGUAGE DeriveFunctor #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE DeriveTraversable #-}\n{-# LANGUAGE ExistentialQuantification #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE QuantifiedConstraints #-}\n{-# LANGUAGE RankNTypes #-}\n{-# LANGUAGE StandaloneDeriving #-}\n{-# LANGUAGE TypeOperators #-}\n\nmodule Language.Python.Failure\n  ( Failure (..)\n  , unimplemented\n  , invariantViolated\n  , eliminateFailures\n  ) where\n\nimport Prelude hiding (fail)\n\nimport Control.Monad.Fail\nimport Data.Coerce\nimport Data.Kind\nimport GHC.Generics (Generic1)\nimport Syntax.Algebra\nimport Syntax.Foldable\nimport Syntax.Functor\nimport Syntax.Module\nimport Syntax.Sum\nimport Syntax.Term\nimport Syntax.Traversable\n\ndata Failure (f :: Type -> Type) a\n  = Unimplemented String\n  | InvariantViolated String\n    deriving Generic1\n\ninstance Show (Failure f a) where\n  show (Unimplemented a)     = \"unimplemented: \" <> a\n  show (InvariantViolated a) = \"invariant violated: \" <> a\n\nderiving instance Functor (Failure f)\nderiving instance Foldable (Failure f)\nderiving instance Traversable (Failure f)\n\ninstance HFunctor Failure\ninstance HFoldable Failure\ninstance HTraversable Failure\n\ninstance RightModule Failure where\n  a >>=* _ = coerce a\n\n\nunimplemented :: (Show ast, Has Failure sig m) => ast -> m a\nunimplemented = send . Unimplemented . show\n\ninvariantViolated :: Has Failure sig m => String -> m a\ninvariantViolated = send . InvariantViolated\n\neliminateFailures :: (MonadFail m, HTraversable sig, RightModule sig)\n                  => Term (Failure :+: sig) a\n                  -> m (Term sig a)\neliminateFailures = Syntax.Term.handle (pure . pure) (fail . show)\n"
  },
  {
    "path": "semantic-python/src/Language/Python/Grammar.hs",
    "content": "{-# LANGUAGE TemplateHaskell #-}\nmodule Language.Python.Grammar\n( tree_sitter_python\n, Grammar(..)\n) where\n\nimport AST.Grammar.TH\nimport Language.Haskell.TH\nimport TreeSitter.Python (tree_sitter_python)\n\n-- | Statically-known rules corresponding to symbols in the grammar.\nmkStaticallyKnownRuleGrammarData (mkName \"Grammar\") tree_sitter_python\n"
  },
  {
    "path": "semantic-python/src/Language/Python/Patterns.hs",
    "content": "{-# LANGUAGE DuplicateRecordFields #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE OverloadedLists #-}\n{-# LANGUAGE PatternSynonyms #-}\n{-# LANGUAGE ViewPatterns #-}\n\nmodule Language.Python.Patterns\n  ( pattern SingleIdentifier\n  ) where\n\nimport           AST.Element\nimport qualified AST.Parse as Parse\nimport qualified Analysis.Name\nimport qualified Language.Python.AST as Py\n\n-- | Useful pattern synonym for extracting a single identifier from\n-- a Python ExpressionList. Easier than pattern-matching every time.\n-- TODO: when this is finished, we won't need this pattern, as we'll\n-- handle ExpressionLists the smart way every time.\npattern SingleIdentifier :: Analysis.Name.Name -> Py.ExpressionList a\npattern SingleIdentifier n <- Py.ExpressionList\n  { Py.extraChildren =\n    [ Parse.Success (Py.Expression (Prj (Py.PrimaryExpression (Prj Py.Identifier { text = Analysis.Name.name -> n }))))\n    ]\n  }\n"
  },
  {
    "path": "semantic-python/src/Language/Python/ScopeGraph.hs",
    "content": "{-# LANGUAGE AllowAmbiguousTypes #-}\n{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DuplicateRecordFields #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE LambdaCase #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE NamedFieldPuns #-}\n{-# LANGUAGE PatternSynonyms #-}\n{-# LANGUAGE QuantifiedConstraints #-}\n{-# LANGUAGE RankNTypes #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE StandaloneDeriving #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\n\n-- NOTE: This file needs to be updated to accommodate new AST shapes.\n-- A portion of instances have been updated to include the Err functor; \n-- remaining instances are to be updated once this is stable.\n\nmodule Language.Python.ScopeGraph\n  ( scopeGraphModule\n  ) where\n\nimport qualified Analysis.Name as Name\nimport           AST.Element\nimport qualified AST.Parse as Parse\nimport           Control.Effect.ScopeGraph\nimport qualified Control.Effect.ScopeGraph.Properties.Declaration as Props\nimport qualified Control.Effect.ScopeGraph.Properties.Function as Props\nimport qualified Control.Effect.ScopeGraph.Properties.Reference as Props\nimport           Control.Lens (set, (^.))\nimport           Data.Foldable\nimport           Data.List.NonEmpty (NonEmpty (..))\nimport           Data.Maybe\nimport           Data.Monoid\nimport qualified Data.ScopeGraph as ScopeGraph\nimport           Data.Traversable\nimport           GHC.Records\nimport           GHC.TypeLits\nimport qualified Language.Python.AST as Py\nimport           Language.Python.Patterns\nimport           Scope.Graph.Convert (Result (..), complete, todo)\nimport           Scope.Types\nimport           Source.Loc (Loc)\nimport           Source.Span (Span, Pos (..), span_, point)\n\n-- This typeclass is internal-only, though it shares the same interface\n-- as the one defined in semantic-scope-graph. The somewhat-unconventional\n-- quantified constraint is to avoid having to define Show1 instances for\n-- every single Python AST type.\nclass (forall a . Show a => Show (t a)) => ToScopeGraph t where\n  scopeGraph ::\n    ( ScopeGraphEff sig m\n    , Monoid (m Result)\n    )\n    => t Loc\n    -> m Result\n\ninstance (ToScopeGraph l, ToScopeGraph r) => ToScopeGraph (l :+: r) where\n  scopeGraph (L1 l) = scopeGraph l\n  scopeGraph (R1 r) = scopeGraph r\n\nonField ::\n  forall (field :: Symbol) syn sig m r .\n  ( ScopeGraphEff sig m\n  , HasField field (r Loc) (syn Loc)\n  , ToScopeGraph syn\n  , Monoid (m Result)\n  )\n  => r Loc\n  -> m Result\nonField\n  = scopeGraph @syn\n  . getField @field\n\nonChildren ::\n  ( Traversable t\n  , ToScopeGraph syn\n  , ScopeGraphEff sig m\n  , HasField \"extraChildren\" (r Loc) (t (syn Loc))\n  , Monoid (m Result)\n  )\n  => r Loc\n  -> m Result\nonChildren\n  = fmap fold\n  . traverse scopeGraph\n  . getField @\"extraChildren\"\n\nscopeGraphModule :: ScopeGraphEff sig m => Py.Module Loc -> m Result\nscopeGraphModule = getAp . scopeGraph\n\ninstance ToScopeGraph Py.AssertStatement where scopeGraph = onChildren\n\ninstance ToScopeGraph Py.Assignment where\n  scopeGraph (Py.Assignment ann (Parse.Success (SingleIdentifier t)) val _typ) = do\n    declare t Props.Declaration\n      { Props.kind     = ScopeGraph.Assignment\n      , Props.relation = ScopeGraph.Default\n      , Props.associatedScope = Nothing\n      , Props.span = ann^.span_\n      }\n    maybe complete scopeGraph val\n  scopeGraph x = todo x\n\ninstance ToScopeGraph Py.Await where\n  scopeGraph (Py.Await _ a) = scopeGraph a\n\ninstance ToScopeGraph Py.BooleanOperator where\n  scopeGraph (Py.BooleanOperator _ _ left right) = scopeGraph left <> scopeGraph right\n\ninstance ToScopeGraph Py.BinaryOperator where\n  scopeGraph (Py.BinaryOperator _ _ left right) = scopeGraph left <> scopeGraph right\n\ninstance ToScopeGraph Py.AugmentedAssignment where scopeGraph = onField @\"right\"\n\ninstance ToScopeGraph Py.Attribute where scopeGraph = todo\n\ninstance ToScopeGraph Py.Block where scopeGraph = onChildren\n\ninstance ToScopeGraph Py.BreakStatement where scopeGraph = mempty\n\ninstance ToScopeGraph Py.Call where\n  scopeGraph Py.Call\n    { function = Parse.Success f\n    , arguments = Parse.Success (L1 Py.ArgumentList { extraChildren = args })\n    } = do\n      result <- scopeGraph f\n      let scopeGraphArg = \\case\n            EPrj expr -> scopeGraph @Py.Expression expr\n            other    -> todo other\n      args <- traverse scopeGraphArg args\n      pure (result <> mconcat args)\n  scopeGraph it = todo it\n\n\ninstance ToScopeGraph Py.ClassDefinition where scopeGraph = todo\n\ninstance ToScopeGraph Py.ConcatenatedString where scopeGraph = mempty\n\nderiving instance ToScopeGraph Py.CompoundStatement\n\ninstance ToScopeGraph Py.ConditionalExpression where scopeGraph = onChildren\n\ninstance ToScopeGraph Py.ContinueStatement where scopeGraph = mempty\n\ninstance ToScopeGraph Py.DecoratedDefinition where scopeGraph = todo\n\ninstance ToScopeGraph Py.ComparisonOperator where scopeGraph = onChildren\n\ninstance ToScopeGraph Py.DeleteStatement where scopeGraph = mempty\n\ninstance ToScopeGraph Py.Dictionary where scopeGraph = onChildren\n\ninstance ToScopeGraph Py.DictionaryComprehension where scopeGraph = todo\n\ninstance ToScopeGraph Py.DictionarySplat where scopeGraph = todo\n\nderiving instance ToScopeGraph Py.Expression\n\ninstance ToScopeGraph Py.ElseClause where scopeGraph = onField @\"body\"\n\ninstance ToScopeGraph Py.ElifClause where\n  scopeGraph (Py.ElifClause _ (Parse.Success body) (Parse.Success condition)) = scopeGraph condition <> scopeGraph body\n\ninstance ToScopeGraph Py.Ellipsis where scopeGraph = mempty\n\ninstance ToScopeGraph Py.ExceptClause where scopeGraph = onChildren\n\ninstance ToScopeGraph Py.ExecStatement where scopeGraph = mempty\n\ninstance ToScopeGraph Py.ExpressionStatement where scopeGraph = onChildren\n\ninstance ToScopeGraph Py.ExpressionList where scopeGraph = onChildren\n\ninstance ToScopeGraph Py.False where scopeGraph _ = pure mempty\n\ninstance ToScopeGraph Py.FinallyClause where scopeGraph = onField @\"extraChildren\"\n\ninstance ToScopeGraph Py.Float where scopeGraph = mempty\n\ninstance ToScopeGraph Py.ForStatement where scopeGraph = todo\n\ninstance ToScopeGraph Py.FunctionDefinition where\n  scopeGraph Py.FunctionDefinition\n    { ann\n    , name       = Parse.Success (Py.Identifier _ann1 name)\n    , parameters = Parse.Success (Py.Parameters _ann2 parameters)\n    , body = Parse.Success b\n    } = do\n    (_, associatedScope) <- declareFunction (Just $ Name.name name) Props.Function\n      { Props.kind = ScopeGraph.Function\n      , Props.span = ann^.span_\n      }\n    withScope (CurrentScope associatedScope) $ do\n      let declProps = Props.Declaration\n            { Props.kind = ScopeGraph.Parameter\n            , Props.relation = ScopeGraph.Default\n            , Props.associatedScope = Nothing\n            , Props.span = point (Pos 0 0)\n            }\n      let param (Py.Parameter (Prj (Py.Identifier pann pname))) = Just (pann, Name.name pname)\n          param _                                               = Nothing\n      let parameterMs = fmap param parameters\n      if any isNothing parameterMs\n        then todo parameterMs\n        else do\n          let parameters' = catMaybes parameterMs\n          paramDeclarations <- for parameters' $ \\(pos, parameter) ->\n            complete <* declare parameter (set span_ (pos^.span_) declProps)\n          bodyResult <- scopeGraph b\n          pure (mconcat paramDeclarations <> bodyResult)\n\ninstance ToScopeGraph Py.FutureImportStatement where scopeGraph = todo\n\ninstance ToScopeGraph Py.GeneratorExpression where scopeGraph = todo\n\ninstance ToScopeGraph Py.Identifier where\n  scopeGraph (Py.Identifier ann name) = do\n    let refProps = Props.Reference ScopeGraph.Identifier ScopeGraph.Default (ann^.span_ :: Span)\n    newReference (Name.name name) refProps\n    complete\n\ninstance ToScopeGraph Py.IfStatement where\n  scopeGraph (Py.IfStatement _ alternative (Parse.Success body) (Parse.Success condition))\n    = scopeGraph condition\n    <> scopeGraph body\n    <> foldMap scopeGraph alternative\n\ninstance ToScopeGraph Py.GlobalStatement where scopeGraph = todo\n\ninstance ToScopeGraph Py.Integer where scopeGraph = mempty\n\ninstance ToScopeGraph Py.ImportStatement where\n  scopeGraph (Py.ImportStatement _ ((R1 (Py.DottedName _ names@((Py.Identifier ann name) :| _))) :| [])) = do\n    let toName (Py.Identifier _ name) = Name.name name\n    newEdge ScopeGraph.Import (toName <$> names)\n\n    let referenceProps = Props.Reference ScopeGraph.Identifier ScopeGraph.Default (ann^.span_ :: Span)\n    newReference (Name.name name) referenceProps\n\n    let pairs = zip (toList names) (tail $ toList names)\n    for_ pairs $ \\pair -> do\n      case pair of\n        (scopeIdentifier, referenceIdentifier@(Py.Identifier ann2 _)) -> do\n          withScope (CurrentScope (toName scopeIdentifier)) $ do\n            let referenceProps = Props.Reference ScopeGraph.Identifier ScopeGraph.Default (ann2^.span_ :: Span)\n            newReference (toName referenceIdentifier) referenceProps\n\n    complete\n  scopeGraph term = todo (show term)\n\ninstance ToScopeGraph Py.ImportFromStatement where\n  scopeGraph (Py.ImportFromStatement _ [] (L1 (Py.DottedName _ names)) (Just (Py.WildcardImport _ _))) = do\n    let toName (Py.Identifier _ name) = Name.name name\n    complete <* newEdge ScopeGraph.Import (toName <$> names)\n  scopeGraph impossibleTerm@(Py.ImportFromStatement _ [] (L1 (Py.DottedName _ _)) Nothing) =\n    todo impossibleTerm\n  scopeGraph term = todo term\n\n\ninstance ToScopeGraph Py.Lambda where scopeGraph = todo\n\ninstance ToScopeGraph Py.List where scopeGraph = onChildren\n\ninstance ToScopeGraph Py.ListComprehension where scopeGraph = todo\n\ninstance ToScopeGraph Py.ListSplat where scopeGraph = onChildren\n\ninstance ToScopeGraph Py.NamedExpression where scopeGraph = todo\n\ninstance ToScopeGraph Py.None where scopeGraph = mempty\n\ninstance ToScopeGraph Py.NonlocalStatement where scopeGraph = todo\n\ninstance ToScopeGraph Py.Module where scopeGraph = onChildren\n\ninstance ToScopeGraph Py.ReturnStatement where\n  scopeGraph (Py.ReturnStatement _ mVal) = maybe (pure mempty) scopeGraph mVal\n\ninstance ToScopeGraph Py.True where scopeGraph = mempty\n\ninstance ToScopeGraph Py.NotOperator where scopeGraph = onField @\"argument\"\n\ninstance ToScopeGraph Py.Pair where\n  scopeGraph (Py.Pair _ value key) = scopeGraph key <> scopeGraph value\n\ninstance ToScopeGraph Py.ParenthesizedExpression where scopeGraph = onField @\"extraChildren\"\n\ninstance ToScopeGraph Py.PassStatement where scopeGraph = mempty\n\ninstance ToScopeGraph Py.PrintStatement where\n  scopeGraph (Py.PrintStatement _ args _chevron) = foldMap scopeGraph args\n\nderiving instance ToScopeGraph Py.PrimaryExpression\n\nderiving instance ToScopeGraph Py.SimpleStatement\n\ninstance ToScopeGraph Py.RaiseStatement where scopeGraph = todo\n\ninstance ToScopeGraph Py.Set where scopeGraph = onChildren\n\ninstance ToScopeGraph Py.SetComprehension where scopeGraph = todo\n\ninstance ToScopeGraph Py.String where scopeGraph = mempty\n\ninstance ToScopeGraph Py.Subscript where scopeGraph = todo\n\ninstance ToScopeGraph Py.Tuple where scopeGraph = onChildren\n\ninstance ToScopeGraph Py.TryStatement where\n  scopeGraph (Py.TryStatement _ body elseClauses)\n    = scopeGraph body\n    <> foldMap scopeGraph elseClauses\n\ninstance ToScopeGraph Py.UnaryOperator where scopeGraph = onField @\"argument\"\n\ninstance ToScopeGraph Py.WhileStatement where\n  scopeGraph Py.WhileStatement{ alternative, body, condition }\n    = scopeGraph condition\n    <> scopeGraph body\n    <> foldMap scopeGraph alternative\n\ninstance ToScopeGraph Py.WithStatement where\n  scopeGraph = todo\n\ninstance ToScopeGraph Py.Yield where scopeGraph = onChildren\n"
  },
  {
    "path": "semantic-python/src/Language/Python/Tags.hs",
    "content": "{-# LANGUAGE DefaultSignatures #-}\n{-# LANGUAGE DisambiguateRecordFields #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE NamedFieldPuns #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n\nmodule Language.Python.Tags\n  ( ToTags (..),\n  )\nwhere\n\nimport AST.Element\nimport qualified AST.Parse as Parse\nimport AST.Token\nimport AST.Traversable1\nimport Control.Effect.Reader\nimport Control.Effect.Writer\nimport Control.Effect.State\nimport Data.Foldable\nimport Data.Text as Text\nimport qualified Language.Python.AST as Py\nimport Proto.Semantic as P\nimport Source.Loc\nimport Source.Range\nimport Source.Source as Source\nimport qualified Tags.Tagging.Precise as Tags\n\nclass ToTags t where\n  tags ::\n    ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n      Has (Writer Tags.Tags) sig m\n    ) =>\n    t Loc ->\n    m ()\n  default tags ::\n    ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n      Has (Writer Tags.Tags) sig m,\n      Traversable1 ToTags t\n    ) =>\n    t Loc ->\n    m ()\n  tags = gtags\n\ninstance (ToTags l, ToTags r) => ToTags (l :+: r) where\n  tags (L1 l) = tags l\n  tags (R1 r) = tags r\n\ninstance ToTags (Token sym n) where tags _ = pure ()\n\nkeywordFunctionCall ::\n  ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n    Has (Writer Tags.Tags) sig m,\n    Traversable1 ToTags t\n  ) =>\n  t Loc ->\n  Loc ->\n  Range ->\n  Text ->\n  m ()\nkeywordFunctionCall t loc range name = Tags.yield name P.FUNCTION P.DEFINITION loc range >> gtags t\n\ninstance ToTags Py.String where\n  tags Py.String {extraChildren} = for_ extraChildren $ \\x -> case x of\n    Parse.Success (Prj t@Py.Interpolation {}) -> tags t\n    _ -> pure ()\n\ninstance ToTags Py.Interpolation where\n  tags Py.Interpolation {extraChildren} = for_ extraChildren $ \\x -> case x of\n    Parse.Success (Prj (Py.Expression expr)) -> tags expr\n    _ -> pure ()\n\ninstance ToTags Py.AssertStatement where\n  tags t@Py.AssertStatement {ann = loc@Loc {byteRange}} = keywordFunctionCall t loc byteRange \"assert\"\n\ninstance ToTags Py.Await where\n  tags t@Py.Await {ann = loc@Loc {byteRange}} = keywordFunctionCall t loc byteRange \"await\"\n\ninstance ToTags Py.DeleteStatement where\n  tags t@Py.DeleteStatement {ann = loc@Loc {byteRange}} = keywordFunctionCall t loc byteRange \"del\"\n\ninstance ToTags Py.ExecStatement where\n  tags t@Py.ExecStatement {ann = loc@Loc {byteRange}} = keywordFunctionCall t loc byteRange \"exec\"\n\ninstance ToTags Py.GlobalStatement where\n  tags t@Py.GlobalStatement {ann = loc@Loc {byteRange}} = keywordFunctionCall t loc byteRange \"global\"\n\ninstance ToTags Py.NonlocalStatement where\n  tags t@Py.NonlocalStatement {ann = loc@Loc {byteRange}} = keywordFunctionCall t loc byteRange \"nonlocal\"\n\ninstance ToTags Py.PrintStatement where\n  tags t@Py.PrintStatement {ann = loc@Loc {byteRange}} = keywordFunctionCall t loc byteRange \"print\"\n\ninstance ToTags Py.FunctionDefinition where\n  tags\n    t@Py.FunctionDefinition\n      { ann = Loc {byteRange = Range {start}},\n        name = Parse.Success (Py.Identifier {text, ann}),\n        body = Parse.Success (Py.Block {ann = Loc Range {start = end} _})\n      } = do\n      Tags.yield text P.FUNCTION P.DEFINITION ann (Range start end) >> gtags t\n  tags _ = pure ()\n\ninstance ToTags Py.ClassDefinition where\n  tags\n    t@Py.ClassDefinition\n      { ann = Loc {byteRange = Range {start}},\n        name = Parse.Success (Py.Identifier {text, ann}),\n        body = Parse.Success (Py.Block {ann = Loc Range {start = end} _})\n      } = do\n      Tags.yield text P.CLASS P.DEFINITION ann (Range start end) >> gtags t\n  tags _ = pure ()\n\ninstance ToTags Py.Call where\n  tags\n    t@Py.Call\n      { ann = Loc {byteRange},\n        function = Parse.Success (Py.PrimaryExpression expr)\n      } = match expr\n      where\n        match expr = case expr of\n          Prj Py.Attribute {attribute = Parse.Success (Py.Identifier {text, ann})} -> yield text ann\n          Prj Py.Identifier {text, ann} -> yield text ann\n          Prj Py.Call {function = Parse.Success (Py.PrimaryExpression expr')} -> match expr' -- Nested call expression like this in Python represent creating an instance of a class and calling it: e.g. AClass()()\n          Prj (Py.ParenthesizedExpression _ (Parse.Success (Prj (Py.Expression (Prj (Py.PrimaryExpression expr')))))) -> match expr' -- Parenthesized expressions\n          _ -> gtags t\n        yield name loc = Tags.yield name P.CALL P.REFERENCE loc byteRange >> gtags t\n  tags _ = pure ()\n\ngtags ::\n  ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n    Has (Writer Tags.Tags) sig m,\n    Traversable1 ToTags t\n  ) =>\n  t Loc ->\n  m ()\ngtags = traverse1_ @ToTags (const (pure ())) tags\n\n\ninstance ToTags Py.AliasedImport\ninstance ToTags Py.ArgumentList\n-- instance ToTags Py.AssertStatement\ninstance ToTags Py.Assignment\ninstance ToTags Py.Attribute\ninstance ToTags Py.AugmentedAssignment\n-- instance ToTags Py.Await\ninstance ToTags Py.BinaryOperator\ninstance ToTags Py.Block\ninstance ToTags Py.BooleanOperator\ninstance ToTags Py.BreakStatement\n-- instance ToTags Py.Call\ninstance ToTags Py.Chevron\n-- instance ToTags Py.ClassDefinition\ninstance ToTags Py.ComparisonOperator\ninstance ToTags Py.CompoundStatement\ninstance ToTags Py.ConcatenatedString\ninstance ToTags Py.ConditionalExpression\ninstance ToTags Py.ContinueStatement\ninstance ToTags Py.DecoratedDefinition\ninstance ToTags Py.Decorator\ninstance ToTags Py.DefaultParameter\n-- instance ToTags Py.DeleteStatement\ninstance ToTags Py.Dictionary\ninstance ToTags Py.DictionaryComprehension\ninstance ToTags Py.DictionarySplat\ninstance ToTags Py.DottedName\ninstance ToTags Py.ElifClause\ninstance ToTags Py.Ellipsis\ninstance ToTags Py.ElseClause\ninstance ToTags Py.EscapeSequence\ninstance ToTags Py.ExceptClause\n-- instance ToTags Py.ExecStatement\ninstance ToTags Py.Expression\ninstance ToTags Py.ExpressionList\ninstance ToTags Py.ExpressionStatement\ninstance ToTags Py.False\ninstance ToTags Py.FinallyClause\ninstance ToTags Py.Float\ninstance ToTags Py.ForInClause\ninstance ToTags Py.ForStatement\ninstance ToTags Py.FormatExpression\ninstance ToTags Py.FormatSpecifier\n-- instance ToTags Py.FunctionDefinition\ninstance ToTags Py.FutureImportStatement\ninstance ToTags Py.GeneratorExpression\n-- instance ToTags Py.GlobalStatement\ninstance ToTags Py.Identifier\ninstance ToTags Py.IfClause\ninstance ToTags Py.IfStatement\ninstance ToTags Py.ImportFromStatement\ninstance ToTags Py.ImportPrefix\ninstance ToTags Py.ImportStatement\ninstance ToTags Py.Integer\n-- instance ToTags Py.Interpolation\ninstance ToTags Py.KeywordArgument\ninstance ToTags Py.Lambda\ninstance ToTags Py.LambdaParameters\ninstance ToTags Py.List\ninstance ToTags Py.ListComprehension\ninstance ToTags Py.ListSplat\ninstance ToTags Py.Module\ninstance ToTags Py.NamedExpression\ninstance ToTags Py.None\n-- instance ToTags Py.NonlocalStatement\ninstance ToTags Py.NotOperator\ninstance ToTags Py.Pair\ninstance ToTags Py.Parameter\ninstance ToTags Py.Parameters\ninstance ToTags Py.ParenthesizedExpression\ninstance ToTags Py.PassStatement\ninstance ToTags Py.PrimaryExpression\n-- instance ToTags Py.PrintStatement\ninstance ToTags Py.RaiseStatement\ninstance ToTags Py.RelativeImport\ninstance ToTags Py.ReturnStatement\ninstance ToTags Py.Set\ninstance ToTags Py.SetComprehension\ninstance ToTags Py.SimpleStatement\ninstance ToTags Py.Slice\ninstance ToTags Py.Subscript\ninstance ToTags Py.True\ninstance ToTags Py.TryStatement\ninstance ToTags Py.Tuple\ninstance ToTags Py.Type\ninstance ToTags Py.TypeConversion\ninstance ToTags Py.TypedDefaultParameter\ninstance ToTags Py.TypedParameter\ninstance ToTags Py.UnaryOperator\ninstance ToTags Py.Variables\ninstance ToTags Py.WhileStatement\ninstance ToTags Py.WildcardImport\ninstance ToTags Py.WithItem\ninstance ToTags Py.WithStatement\ninstance ToTags Py.Yield\n"
  },
  {
    "path": "semantic-python/src/Language/Python.hs",
    "content": "{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n-- | Semantic functionality for Python programs.\nmodule Language.Python\n( Term(..)\n, Language.Python.Grammar.tree_sitter_python\n) where\n\nimport           AST.Marshal.JSON\nimport qualified AST.Unmarshal as TS\nimport           Data.Proxy\nimport qualified Language.Python.AST as Py\nimport qualified Language.Python.Grammar (tree_sitter_python)\n-- import           Language.Python.ScopeGraph\nimport qualified Language.Python.Tags as PyTags\n-- import           Scope.Graph.Convert\nimport qualified Tags.Tagging.Precise as Tags\n\nnewtype Term a = Term { getTerm :: Py.Module a }\n  deriving MarshalJSON\n\ninstance TS.SymbolMatching Term where\n  matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy Py.Module)\n  showFailure _ = TS.showFailure (Proxy :: Proxy Py.Module)\n\ninstance TS.Unmarshal Term where\n  matchers = fmap (fmap (TS.hoist Term)) TS.matchers\n\ninstance Tags.ToTags Term where\n  tags src = Tags.runTagging src . PyTags.tags . getTerm\n\n-- instance ToScopeGraph Term where\n--   scopeGraph = scopeGraphModule . getTerm\n"
  },
  {
    "path": "semantic-python/src/Prelude.score",
    "content": "{\n  type <- \\name -> \\super -> \\slots ->\n    #record { __name: name, __super: super, __slots: slots };\n\n  instance <- \\class -> \\prim -> \\slots ->\n    #record { __super: class, __prim: prim, __slots: slots };\n\n  // object's superclass is type itself\n  object <- type \"object\" type #record{};\n\n  str <- type \"str\" object #record { __new__: \\prim -> instance #unit prim #record{} };\n\n  // We will fill in the actual definition of these operators\n  // pending the presence of more eliminators.\n  not <- \\val -> if val then #false else #true;\n\n  NoneType <- type \"None\" object #record { __new__: \\prim -> instance #unit prim #record{} };\n  None <- NoneType.__slots.__new__ #unit;\n\n  getitem <- \\super -> \\item -> \\attr ->\n    if item.slots.?attr then item.slots.attr else #unit;\n\n  #record { type: type\n          , object: object\n          , str: str\n          , not: not\n          , NoneType: NoneType\n          , None: None\n          , getitem: getitem}\n}\n"
  },
  {
    "path": "semantic-python/test/CoreTest.hs",
    "content": "{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}\nmodule Main (main) where\n\nimport           Analysis.Concrete (Concrete)\nimport qualified Analysis.Concrete as Concrete\nimport           Analysis.File\nimport           Control.Algebra\nimport           Control.Carrier.Fail.Either\nimport           Control.Carrier.Reader\nimport           Control.Monad hiding (fail)\nimport           Control.Monad.IO.Class\n-- import           Core.Core\n-- import qualified Core.Eval as Eval\n-- import           Core.Name\n-- import qualified Core.Parser\n-- import           Core.Pretty\nimport qualified Data.ByteString.Char8 as ByteString\nimport           Data.Foldable\nimport           Data.Function\nimport qualified Data.IntMap as IntMap\nimport           Data.List (sort)\nimport qualified Data.Map as Map\nimport           Data.Maybe\nimport           Data.Text (Text)\nimport           GHC.Stack\n-- import qualified Language.Python.Core as Py\nimport           Language.Python.Failure\nimport           Prelude hiding (fail)\nimport           Source.Span\nimport           Syntax.Term\nimport           Syntax.Var (closed)\nimport           System.Directory\nimport           System.Exit\nimport           System.Path ((</>))\nimport qualified System.Path as Path\nimport qualified System.Path.Directory as Path\nimport qualified Text.Trifecta as Trifecta\nimport qualified Language.Python.Grammar as TSP\nimport qualified AST.Unmarshal as TS\n\nimport qualified Test.Tasty as Tasty\nimport qualified Test.Tasty.HUnit as HUnit\n\n-- import qualified Directive\nimport           Instances ()\n\nparsePrelude :: IO (Term (Ann Span :+: Core) Name)\nparsePrelude = do\n  preludesrc <- ByteString.readFile \"semantic-python/src/Prelude.score\"\n  let ePrelude = Trifecta.parseByteString (Core.Parser.core <* Trifecta.eof) mempty preludesrc\n  case Trifecta.foldResult (Left . show) Right ePrelude of\n    Right r -> pure r\n    Left s  -> HUnit.assertFailure (\"Couldn't parse prelude: \" <> s)\n\n-- handles CHECK-RESULT directives\nassertEvaluatesTo :: Term (Ann Span :+: Core) Name -> Text -> Concrete (Term (Ann Span :+: Core)) -> HUnit.Assertion\nassertEvaluatesTo core k val = do\n  prelude <- parsePrelude\n  let withPrelude = (named' \"__semantic_prelude\" :<- prelude) >>>= core\n  allTogether <- maybe (HUnit.assertFailure (\"Can’t evaluate open term: \" <> showCore (stripAnnotations withPrelude))) pure (closed withPrelude)\n  let filius = [File (Path.absRel \"<interactive>\") (Span (Pos 1 1) (Pos 1 1)) allTogether]\n\n  (heap, env) <- case Concrete.concrete Eval.eval filius of\n    (heap, [File _ _ (Right (Concrete.Record env))]) ->\n      pure (heap, env)\n    (_, [File _ _ (Left (_, span, err))]) ->\n      HUnit.assertFailure (\"Failed evaluation (\" <> show span <> \"): \" <> err)\n    (_, files) ->\n      HUnit.assertFailure (\"Unexpected number of files: \" <> show (length files))\n\n  let found = Map.lookup (name k) env >>= flip IntMap.lookup heap\n  found HUnit.@?= Just val\n{-# HLINT ignore assertEvaluatesTo #-}\n\n-- handles CHECK-TREE directives\nassertTreeEqual :: Term Core Name -> Term Core Name -> HUnit.Assertion\nassertTreeEqual t item = HUnit.assertEqual (\"got (pretty)\" <> showCore item) t item\n\n\ncheckPythonFile :: HasCallStack => Path.RelFile -> Tasty.TestTree\ncheckPythonFile fp = HUnit.testCaseSteps (Path.toString fp) $ \\step -> withFrozenCallStack $ do\n  -- Extract the directives and the core associated with the provided file\n  let fullPath  = Path.relDir \"semantic-python/test/fixtures\" </> fp\n  directives <- Directive.readDirectivesFromFile fullPath\n  result <- ByteString.readFile (Path.toString fullPath) >>= TS.parseByteString TSP.tree_sitter_python\n\n  -- Run the compiler\n  let coreResult = Control.Algebra.run\n                   . runFail\n                   . eliminateFailures\n                   . Control.Algebra.run\n                   . runReader @Py.Bindings mempty\n                   . Py.toplevelCompile @(Failure :+: Ann Span :+: Core) @(Term _)\n                   <$> result\n\n  -- Dispatch based on the result-directive pair\n  for_ directives $ \\directive -> do\n    step (Directive.describe directive)\n    case (coreResult, directive) of\n      (Right (Left _), Directive.Fails)          -> pure ()\n      (Left err, _)                              -> HUnit.assertFailure (\"Parsing failed: \" <> err)\n      (Right (Left err), _)                      -> HUnit.assertFailure (\"Compilation failed: \" <> err)\n      (Right (Right _), Directive.Fails)         -> HUnit.assertFailure \"Expected translation to fail\"\n      (Right (Right item), Directive.Result k v) -> assertEvaluatesTo item k v\n      (Right (Right item), Directive.Tree t)     -> assertTreeEqual (stripAnnotations item) t\n\nmilestoneFixtures :: IO Tasty.TestTree\nmilestoneFixtures = buildTests <$> readFiles\n  where\n    readFiles  = liftIO . Path.filesInDir . Path.relDir $ \"semantic-python/test/fixtures\"\n    buildTests = Tasty.testGroup \"Python\" . fmap checkPythonFile . sort . filter (Path.hasExtension \".py\")\n\nmain :: IO ()\nmain = do\n  jq <- findExecutable \"jq\"\n  when (isNothing jq) (die \"Error: jq(1) not found in $PATH.\")\n  milestoneFixtures >>= Tasty.defaultMain\n"
  },
  {
    "path": "semantic-python/test/Directive.hs",
    "content": "{-# LANGUAGE TypeApplications, TypeOperators #-}\n\n-- | FileCheck-style directives for testing Core compilers.\nmodule Directive ( Directive (..)\n                 , readDirectivesFromFile\n                 , describe\n                 ) where\n\nimport           Analysis.Concrete (Concrete (..))\nimport           Control.Algebra\nimport           Control.Monad\nimport           Control.Monad.Trans.Resource (ResourceT, runResourceT)\n-- import           Core.Core (Core)\n-- import qualified Core.Core as Core\n-- import           Core.Name (Name)\n-- import qualified Core.Parser\n-- import qualified Core.Pretty\nimport           Data.ByteString.Char8 (ByteString)\nimport qualified Data.ByteString.Char8 as ByteString\nimport qualified Data.ByteString.Streaming.Char8 as ByteStream\nimport           Data.Text (Text)\nimport qualified Data.Text as T\nimport qualified Source.Span as Source\nimport qualified Streaming.Prelude as Stream\nimport           Syntax.Term (Term)\nimport qualified System.Path as Path\nimport qualified System.Path.PartClass as Path.Class\nimport qualified Text.Parser.Token.Style as Style\nimport           Text.Trifecta (CharParsing, TokenParsing (..))\nimport qualified Text.Trifecta as Trifecta\n\n{- |\n\nDirectives are parsed from magic comments in test files and\ndescribe to the test suite how to query the results of a given test\ncase. A directive that looks like this:\n\n@\n  # CHECK-RESULT: key: value\n@\n\nwould test that the value for @key@ in the result evaluates to the given\nconcrete value.\n\nThis syntax was inspired by LLVM's\n[FileCheck](https://llvm.org/docs/CommandGuide/FileCheck.html). This\napproach is less direct than tests that pattern-match over an AST, but\nenable us to keep the text of test cases in close proximity to the\nassertions we want to make, which improves maintainability\nsignificantly and has been a successful strategy for the LLVM and Rust\nprojects.\n\n-}\ndata Directive = Tree (Term Core Name) -- | @# CHECK-TREE: core@\n               | Result Text (Concrete (Term (Core.Ann Source.Span :+: Core))) -- | @# CHECK-RESULT key: expected\n               | Fails -- | @# CHECK-FAILS@ fails unless translation fails.\n                 deriving (Eq, Show)\n\n-- | Extract all directives from a file.\nreadDirectivesFromFile :: Path.Class.AbsRel ar => Path.File ar -> IO [Directive]\nreadDirectivesFromFile\n  = runResourceT\n  . Stream.toList_\n  . Stream.mapM (either perish pure . parseDirective)\n  . Stream.takeWhile isComment\n  . Stream.mapped ByteStream.toStrict\n  . ByteStream.lines\n  . ByteStream.readFile @(ResourceT IO)\n  . Path.toString\n    where\n      perish s  = fail (\"Directive parsing error: \" <> s)\n      isComment = (== Just '#') . fmap fst . ByteString.uncons\n\n\ndescribe :: Directive -> String\ndescribe Fails        = \"<expect failure>\"\ndescribe (Tree t)     =  Core.Pretty.showCore t\ndescribe (Result t e) = T.unpack t <> \": \" <> show e\n\nfails :: CharParsing m => m Directive\nfails = Fails <$ Trifecta.string \"# CHECK-FAILS\"\n\ntree :: (Monad m, TokenParsing m) => m Directive\ntree = do\n  void $ Trifecta.string \"# CHECK-TREE: \"\n  Tree <$> Core.Parser.core\n\nresult :: (Monad m, TokenParsing m) => m Directive\nresult = do\n  void $ Trifecta.string \"# CHECK-RESULT \"\n  key <- Trifecta.ident Style.haskellIdents\n  void $ Trifecta.symbolic ':'\n  Result key <$> concrete\n\nconcrete :: TokenParsing m => m (Concrete term)\nconcrete = Trifecta.choice\n  [ String <$> Trifecta.stringLiteral\n  , Bool True <$ Trifecta.symbol \"#true\"\n  , Bool False <$ Trifecta.symbol \"#false\"\n  , Unit <$ Trifecta.symbol \"#unit\"\n  ]\n\ndirective :: (Monad m, TokenParsing m) => m Directive\ndirective = Trifecta.choice [ fails, result, tree ]\n\nparseDirective :: ByteString -> Either String Directive\nparseDirective = Trifecta.foldResult (Left . show) Right\n               . Trifecta.parseByteString (directive <* Trifecta.eof) mempty\n"
  },
  {
    "path": "semantic-python/test/Instances.hs",
    "content": "{-# LANGUAGE DerivingStrategies #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE NamedFieldPuns #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE QuantifiedConstraints #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\n{-# OPTIONS_GHC -fno-warn-orphans #-}\n\nmodule Instances () where\n\nimport           Analysis.File\nimport           Data.Aeson\nimport           Data.Text (pack)\nimport qualified System.Path as Path\n\ninstance ToJSON a => ToJSON (File a) where\n  toJSON File{filePath, fileSpan, fileBody} = object\n    [ \"path\" .= filePath\n    , \"span\" .= fileSpan\n    , \"body\" .= fileBody\n    ]\n\ninstance ToJSON Path.AbsRelFile where\n  toJSON p = toJSON (pack (Path.toString p))\n"
  },
  {
    "path": "semantic-python/test/PreciseTest.hs",
    "content": "{-# LANGUAGE CPP #-}\n{-# LANGUAGE DisambiguateRecordFields #-}\n{-# LANGUAGE ImplicitParams #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE TypeApplications #-}\n{-# OPTIONS_GHC -Wno-unused-imports #-}\nmodule Main (main) where\n\nimport           AST.TestHelpers\nimport           AST.Unmarshal\nimport qualified Language.Python.AST as Py\nimport qualified System.Path.Fixture as Fixture\nimport           Test.Tasty\nimport           TreeSitter.Python\n\nmain :: IO ()\nmain = do\n#if BAZEL_BUILD\n  rf <- Fixture.create\n  let ?project = \"external/tree-sitter-python\"\n      ?runfiles = rf\n  let dirs = Fixture.absRelDir \"test/corpus\"\n#else\n  dirs <- Py.getTestCorpusDir\n#endif\n\n  let parse = parseByteString @Py.Module @() tree_sitter_python\n\n  readCorpusFiles' dirs\n    >>= traverse (testCorpus parse)\n    >>= defaultMain . tests\n\ntests :: [TestTree] -> TestTree\ntests = testGroup \"tree-sitter-python corpus tests\"\n"
  },
  {
    "path": "semantic-python/test/fixtures/1-01-empty-module.py",
    "content": ""
  },
  {
    "path": "semantic-python/test/fixtures/1-02-pass-statement.py",
    "content": "pass\n"
  },
  {
    "path": "semantic-python/test/fixtures/1-03-empty-tuple.py",
    "content": "# CHECK-TREE: #record{}\n()\n"
  },
  {
    "path": "semantic-python/test/fixtures/1-04-toplevel-assignment.py",
    "content": "# CHECK-TREE: { hello <- #unit; goodbye <- #unit; #record { hello: hello, goodbye: goodbye }}\n# CHECK-RESULT hello: #unit\nhello = ()\ngoodbye = ()\n"
  },
  {
    "path": "semantic-python/test/fixtures/1-05-exec-statement-fails.py",
    "content": "# CHECK-FAILS\nexec \"'We will never support exec statements.'\"\n"
  },
  {
    "path": "semantic-python/test/fixtures/2-01-return-statement.py",
    "content": "# CHECK-TREE: { foo <- rec foo = \\a -> a; #record { foo: foo } }\ndef foo(a):\n    return a\n"
  },
  {
    "path": "semantic-python/test/fixtures/2-02-return-doesnt-translate.py",
    "content": "# CHECK-TREE: { foo <- rec foo = (\\a -> a); #record { foo: foo } }\n\ndef foo(a):\n    return a\n    a\n    ()\n"
  },
  {
    "path": "semantic-python/test/fixtures/2-03-return-in-if-statement.py",
    "content": "# CHECK-TREE: { foo <- rec foo = \\a -> if a then a else #unit; #record { foo: foo } }\n\ndef foo(a):\n    if a: return a\n    return ()\n    ()\n"
  },
  {
    "path": "semantic-python/test/fixtures/2-04-multiple-assign.py",
    "content": "# CHECK-TREE: { z <- #true; y <- z; x <- y; #record { z : z, y : y, x : x }}\nx = y = z = True\n"
  },
  {
    "path": "semantic-python/test/fixtures/2-05-function-call.py",
    "content": "# CHECK-TREE: { const <- rec const = \\x -> \\y -> x; y <- const #true #true; z <- const #false #false; #record { const: const, y : y, z: z, }}\ndef const(x, y): return x\ny = const(True, True)\nz = const(False, False)\n"
  },
  {
    "path": "semantic-python/test/fixtures/2-06-nested-function-definition.py",
    "content": "# CHECK-TREE: { const <- rec const = \\a -> \\b -> { identity <- rec identity = \\x -> x; identity a }; #record{ const: const }}\n\ndef const(a, b):\n    def identity(x):\n        return x\n\n    return identity(a)\n"
  },
  {
    "path": "semantic-python/test/fixtures/2-07-closure-over-scope.py",
    "content": "\ndef const(a, b):\n    def result():\n        return a\n\n    def zilch(b):\n        return b\n\n    return result()\n"
  },
  {
    "path": "semantic-python/test/fixtures/2-08-function-decorator.py",
    "content": "# CHECK-TREE: { passthru <- rec passthru = \\x -> x; decorated <- rec decorated = \\x -> x; decorated = passthru(decorated); #record { passthru: passthru, decorated: decorated }}\ndef passthru(x):\n    return x\n\n@passthru\ndef decorated(x):\n    return x\n"
  },
  {
    "path": "semantic-python/test/fixtures/3-01-empty-class-definition.py",
    "content": "# CHECK-TREE: { Foo <- rec Foo = __semantic_prelude.type \"Foo\" __semantic_prelude.object #record {}; #record { Foo: Foo }}\nclass Foo():\n    pass\n"
  },
  {
    "path": "semantic-python/test/fixtures/3-02-defining-instance-method.py",
    "content": "# CHECK-TREE: { Foo <- rec Foo = { identity <- rec identity = \\self -> \\x -> x; __semantic_prelude.type \"Foo\" __semantic_prelude.object #record { identity: identity } }; #record { Foo: Foo } }\n\nclass Foo():\n    def identity(self, x):\n        return x\n"
  },
  {
    "path": "semantic-python/test/fixtures/3-03-functions-know-their-own-names.py",
    "content": "# CHECK-TREE: { recursive <- rec recursive = \\a -> recursive; #record { recursive: recursive }}\ndef recursive(a): return recursive\n"
  },
  {
    "path": "semantic-python/test/fixtures/4-01-lambda-literals.py",
    "content": "# CHECK-TREE: { const <- \\x -> \\y -> x; y <- const #true #true; z <- const #false #false; #record { const: const, y : y, z: z, }}\nconst = lambda x, y: x\ny = const(True, True)\nz = const(False, False)\n"
  },
  {
    "path": "semantic-python/test/fixtures/4-02-nonetype.py",
    "content": "# CHECK-TREE: { x <- __semantic_prelude.None; #record { x : x }}\nx = None\n"
  },
  {
    "path": "semantic-python/test/fixtures/4-03-not-expression.py",
    "content": "# CHECK-TREE: { x <- __semantic_prelude.not #true; #record { x: x }}\nx = not True\n"
  },
  {
    "path": "semantic-python/test/fixtures/5-01-simple-reference.py",
    "content": "x = 5\nx\n"
  },
  {
    "path": "semantic-python/test/fixtures/5-02-simple-function.py",
    "content": "def foo():\n    return \"hello world\"\n\nfoo()\n"
  },
  {
    "path": "semantic-python/test/fixtures/5-03-function-argument.py",
    "content": "def foo(x):\n    return x\n\nfoo(1)\n"
  },
  {
    "path": "semantic-python/test/fixtures/cheese/6-01-imports.py",
    "content": "from cheese.ints import *\n"
  },
  {
    "path": "semantic-python/test/fixtures/cheese/6-01-qualified-imports.py",
    "content": "import cheese.ints\n"
  },
  {
    "path": "semantic-python/test/fixtures/cheese/ints.py",
    "content": "def one():\n    return 1\n\ndef two():\n    return 2\n"
  },
  {
    "path": "semantic-python/test-graphing/GraphTest.hs",
    "content": "{-# LANGUAGE AllowAmbiguousTypes #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\nmodule Main (main) where\n\nimport           Analysis.Name (Name)\nimport qualified Analysis.Name as Name\nimport qualified AST.Unmarshal as TS\nimport           Control.Algebra\nimport           Control.Carrier.Lift\nimport           Control.Carrier.Sketch.ScopeGraph\nimport qualified Control.Effect.ScopeGraph.Properties.Declaration as Props\nimport qualified Control.Effect.ScopeGraph.Properties.Function as Props\nimport qualified Control.Effect.ScopeGraph.Properties.Reference as Props\nimport           Control.Monad\nimport qualified Data.ByteString as ByteString\nimport qualified Data.List.NonEmpty as NonEmpty\nimport           Data.Module (ModuleInfo (..))\nimport qualified Data.ScopeGraph as ScopeGraph\nimport qualified Language.Python ()\nimport qualified Language.Python as Py (Term)\nimport qualified Language.Python.Grammar as TSP\nimport           Scope.Graph.Convert\nimport           Scope.Types\nimport           Source.Loc\nimport qualified Source.Source as Source\nimport           Source.Span\nimport           System.Exit (die)\nimport           System.Path ((</>))\nimport qualified System.Path as Path\nimport qualified System.Path.Directory as Path\nimport qualified Test.Tasty as Tasty\nimport qualified Test.Tasty.HUnit as HUnit\n\n{-\n\nThe Python code here is\n\nhello = ()\ngoodbye = ()\n\nThe graph should be\n\n  🏁\n  |\n  1️⃣----\"hello\"\n  |\n  |\n  |\n  |\n  2️⃣----\"goodbye\"\n\n-}\n\n\nrunScopeGraph :: ToScopeGraph t => Path.AbsRelFile -> Source.Source -> t Loc -> (ScopeGraph.ScopeGraph Name, Result)\nrunScopeGraph p _src item = run . runSketch info $ scopeGraph item\n  where\n    info = ModuleInfo p \"Python\" mempty\n\nsampleGraphThing :: ScopeGraphEff sig m => m Result\nsampleGraphThing = do\n  declare \"hello\" (Props.Declaration ScopeGraph.Assignment ScopeGraph.Default Nothing (Span (Pos 2 0) (Pos 2 10)))\n  declare \"goodbye\" (Props.Declaration ScopeGraph.Assignment ScopeGraph.Default Nothing (Span (Pos 3 0) (Pos 3 12)))\n  pure Complete\n\ngraphFile :: Path.AbsRelFile -> IO (ScopeGraph.ScopeGraph Name, Result)\ngraphFile fp = do\n  file <- ByteString.readFile $ Path.toString fp\n  tree <- TS.parseByteString @Py.Term @Loc TSP.tree_sitter_python file\n  pyModule <- either die pure tree\n  pure $ runScopeGraph fp (Source.fromUTF8 file) pyModule\n\n\nassertSimpleAssignment :: HUnit.Assertion\nassertSimpleAssignment = do\n  let path = Path.absRel \"semantic-python/test/fixtures/1-04-toplevel-assignment.py\"\n  (result, Complete) <- graphFile path\n  (expecto, Complete) <- runM $ runSketch (ModuleInfo path \"Python\" mempty) sampleGraphThing\n  HUnit.assertEqual \"Should work for simple case\" expecto result\n\nassertSimpleReference :: HUnit.Assertion\nassertSimpleReference = do\n  let path = Path.absRel \"semantic-python/test/fixtures/5-01-simple-reference.py\"\n  (result, Complete) <- graphFile path\n  (expecto, Complete) <- runM $ runSketch (ModuleInfo path \"Python\" mempty) expectedReference\n\n  HUnit.assertEqual \"Should work for simple case\" expecto result\n\nexpectedReference :: ScopeGraphEff sig m => m Result\nexpectedReference = do\n  declare \"x\" (Props.Declaration ScopeGraph.Assignment ScopeGraph.Default Nothing (Span (Pos 0 0) (Pos 0 5)))\n  let refProperties = Props.Reference ScopeGraph.Identifier ScopeGraph.Default (Span (Pos 1 0) (Pos 1 1))\n  newReference \"x\" refProperties\n  pure Complete\n\nexpectedQualifiedImport :: ScopeGraphEff sig m => m Result\nexpectedQualifiedImport = do\n  newEdge ScopeGraph.Import (NonEmpty.fromList [\"cheese\", \"ints\"])\n\n  let refProperties = Props.Reference ScopeGraph.Identifier ScopeGraph.Default (Span (Pos 0 7) (Pos 0 13))\n  newReference (Name.name \"cheese\") refProperties\n\n  withScope (CurrentScope \"cheese\") $ do\n    let refProperties = Props.Reference ScopeGraph.Identifier ScopeGraph.Default (Span (Pos 0 14) (Pos 0 18))\n    newReference (Name.name \"ints\") refProperties\n  pure Complete\n\nexpectedImportHole :: ScopeGraphEff sig m => m Result\nexpectedImportHole = do\n  newEdge ScopeGraph.Import (NonEmpty.fromList [\"cheese\", \"ints\"])\n  pure Complete\n\nassertLexicalScope :: HUnit.Assertion\nassertLexicalScope = do\n  let path = Path.absRel \"semantic-python/test/fixtures/5-02-simple-function.py\"\n  let info = ModuleInfo path \"Python\" mempty\n  (graph, _) <- graphFile path\n  case run (runSketch info expectedLexicalScope) of\n    (expecto, Complete) -> HUnit.assertEqual \"Should work for simple case\" expecto graph\n    (_, Todo msg)       -> HUnit.assertFailure (\"Failed to complete:\" <> show msg)\n\nexpectedLexicalScope :: ScopeGraphEff sig m => m Result\nexpectedLexicalScope = do\n  _ <- declareFunction (Just $ Name.name \"foo\") (Props.Function ScopeGraph.Function (Span (Pos 0 0) (Pos 1 24)))\n  let refProperties = Props.Reference ScopeGraph.Identifier ScopeGraph.Default (Span (Pos 3 0) (Pos 3 3))\n  newReference \"foo\" refProperties\n  pure Complete\n\n\nassertFunctionArg :: HUnit.Assertion\nassertFunctionArg = do\n  let path = Path.absRel \"semantic-python/test/fixtures/5-03-function-argument.py\"\n  (graph, _) <- graphFile path\n  let info = ModuleInfo path \"Python\" mempty\n  case run (runSketch info expectedFunctionArg) of\n    (expecto, Complete) -> HUnit.assertEqual \"Should work for simple case\" expecto graph\n    (_, Todo msg)       -> HUnit.assertFailure (\"Failed to complete:\" <>  show msg)\n\nexpectedFunctionArg :: ScopeGraphEff sig m => m Result\nexpectedFunctionArg = do\n  (_, associatedScope) <- declareFunction (Just $ Name.name \"foo\") (Props.Function ScopeGraph.Function (Span (Pos 0 0) (Pos 1 12)))\n  withScope (CurrentScope associatedScope) $ do\n    declare \"x\" (Props.Declaration ScopeGraph.Parameter ScopeGraph.Default Nothing (Span (Pos 0 8) (Pos 0 9)))\n    let refProperties = Props.Reference ScopeGraph.Identifier ScopeGraph.Default (Span (Pos 1 11) (Pos 1 12))\n    newReference \"x\" refProperties\n    pure ()\n  let refProperties = Props.Reference ScopeGraph.Identifier ScopeGraph.Default (Span (Pos 3 0) (Pos 3 3))\n  newReference \"foo\" refProperties\n  pure Complete\n\n\nassertImportHole :: HUnit.Assertion\nassertImportHole = do\n  let path = Path.absRel \"semantic-python/test/fixtures/cheese/6-01-imports.py\"\n  (graph, _) <- graphFile path\n  let info = ModuleInfo path \"Python\" mempty\n  case run (runSketch info expectedImportHole) of\n    (expecto, Complete) -> HUnit.assertEqual \"Should work for simple case\" expecto graph\n    (_, Todo msg)       -> HUnit.assertFailure (\"Failed to complete:\" <>  show msg)\n\nassertQualifiedImport :: HUnit.Assertion\nassertQualifiedImport = do\n  let path = Path.absRel \"semantic-python/test/fixtures/cheese/6-01-qualified-imports.py\"\n  (graph, _) <- graphFile path\n  let info = ModuleInfo path \"Python\" mempty\n  case run (runSketch info expectedQualifiedImport) of\n    (expecto, Complete) -> HUnit.assertEqual \"Should work for simple case\" expecto graph\n    (_, Todo msg)       -> HUnit.assertFailure (\"Failed to complete:\" <>  show msg)\n\nmain :: IO ()\nmain = do\n  -- make sure we're in the root directory so the paths resolve properly\n  cwd <- Path.getCurrentDirectory\n  when (Path.takeDirName cwd == Just (Path.relDir \"semantic-python\"))\n    (Path.setCurrentDirectory (cwd </> Path.relDir \"..\"))\n\n  Tasty.defaultMain $\n    Tasty.testGroup \"Tests\" [\n      Tasty.testGroup \"declare\" [\n        HUnit.testCase \"toplevel assignment\" assertSimpleAssignment\n      ],\n      Tasty.testGroup \"reference\" [\n        HUnit.testCase \"simple reference\" assertSimpleReference\n      ],\n      Tasty.testGroup \"lexical scopes\" [\n        HUnit.testCase \"simple function scope\" assertLexicalScope\n      , HUnit.testCase \"simple function argument\" assertFunctionArg\n      ],\n      Tasty.testGroup \"imports\" [\n        HUnit.testCase \"simple function argument\" assertImportHole\n        , HUnit.testCase \"qualified imports\" assertQualifiedImport\n      ]\n    ]\n"
  },
  {
    "path": "semantic-ruby/BUILD.bazel",
    "content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\n    \"//:build/common.bzl\",\n    \"semantic_language_library\",\n    \"semantic_language_parsing_test\",\n)\n\nsemantic_language_library(\n    name = \"semantic-ruby\",\n    srcs = glob([\"src/**/*.hs\"]),\n    language = \"ruby\",\n    nodetypes = \"@tree-sitter-ruby//:src/node-types.json\",\n)\n\nsemantic_language_parsing_test(language = \"ruby\")\n"
  },
  {
    "path": "semantic-ruby/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 GitHub\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "semantic-ruby/README.md",
    "content": "# Semantic support for Ruby\n\nThis package implements `semantic` support for Ruby.\n"
  },
  {
    "path": "semantic-ruby/Setup.hs",
    "content": "import Distribution.Simple\nmain = defaultMain\n"
  },
  {
    "path": "semantic-ruby/app/Main.hs",
    "content": "{-# LANGUAGE TypeApplications #-}\nmodule Main\n( main\n) where\n\nimport           Control.Monad\nimport qualified Data.ByteString as B\nimport           Data.Foldable (traverse_)\nimport           System.Exit (die)\nimport           System.Environment (getArgs)\nimport           Language.Ruby\nimport qualified Language.Ruby.AST as Rb\nimport           AST.Unmarshal\n\nmain :: IO ()\nmain = getArgs >>= traverse_ (print <=< parseFile)\n\nparseFile :: FilePath -> IO (Rb.Program ())\nparseFile = either die pure <=< parseByteString @Rb.Program @() tree_sitter_ruby <=< B.readFile\n"
  },
  {
    "path": "semantic-ruby/bench/Main.hs",
    "content": "module Main (main) where\n\nimport Gauge\nimport qualified Parsing\n\nmain :: IO ()\nmain = defaultMain [ Parsing.benchmarks ]\n"
  },
  {
    "path": "semantic-ruby/bench/Parsing.hs",
    "content": "{-# LANGUAGE TypeApplications #-}\n\nmodule Parsing (benchmarks) where\n\nimport           AST.Unmarshal\nimport           Control.Monad\nimport qualified Data.ByteString as B\nimport           Data.Foldable\nimport           Gauge\nimport           Language.Ruby\nimport qualified Language.Ruby.AST as Rb\nimport           System.Exit (die)\nimport           System.FilePath.Glob\n\nbenchmarks :: Benchmark\nbenchmarks = bgroup \"parsing\" [ rubyBenchmarks ]\n\nrubyBenchmarks :: Benchmark\nrubyBenchmarks = bench \"ruby\" $ parseAllFiles dir \"*.rb\"\n  where dir = \"../semantic/tmp/ruby-examples/ruby_spec/command_line\"\n\nparseAllFiles :: FilePath -> String -> Benchmarkable\nparseAllFiles dir glob = nfIO $ do\n  paths <- globDir1 (compile glob) dir\n  when (null paths) (die $ \"No files found in \" <> dir)\n  for_ paths $ \\ file -> do\n    -- print (Path.toString file)\n    contents <- B.readFile file\n    either die pure =<< parseByteString @Rb.Program @() tree_sitter_ruby contents\n"
  },
  {
    "path": "semantic-ruby/semantic-ruby.cabal",
    "content": "cabal-version:       2.4\n\nname:                semantic-ruby\nversion:             0.0.0.0\nsynopsis:            Semantic support for Ruby.\ndescription:         Semantic support for Ruby.\nhomepage:            https://github.com/github/semantic/tree/master/semantic-ruby#readme\nbug-reports:         https://github.com/github/semantic/issues\nlicense:             MIT\nlicense-file:        LICENSE\nauthor:              The Semantic authors\nmaintainer:          opensource+semantic@github.com\ncopyright:           (c) 2019 GitHub, Inc.\ncategory:            Language\nbuild-type:          Simple\nstability:           alpha\nextra-source-files:  README.md\n\ntested-with:         GHC == 8.6.5\n\ncommon haskell\n  default-language:    Haskell2010\n  ghc-options:\n    -Weverything\n    -Wno-missing-local-signatures\n    -Wno-missing-import-lists\n    -Wno-implicit-prelude\n    -Wno-safe\n    -Wno-unsafe\n    -Wno-name-shadowing\n    -Wno-monomorphism-restriction\n    -Wno-missed-specialisations\n    -Wno-all-missed-specialisations\n    -Wno-star-is-type\n  if (impl(ghc >= 8.8))\n    ghc-options: -Wno-missing-deriving-strategies\n  if (impl(ghc >= 8.10))\n    ghc-options:\n      -Wno-missing-safe-haskell-mode\n      -Wno-prepositive-qualified-module\n  if (impl(ghc >= 9.2))\n    ghc-options:\n      -Wno-missing-kind-signatures\n  cpp-options:\n    -DBAZEL_BUILD=0\n\nlibrary\n  import: haskell\n  exposed-modules:\n    Language.Ruby\n    Language.Ruby.AST\n    Language.Ruby.Grammar\n    Language.Ruby.Tags\n  hs-source-dirs: src\n  build-depends:\n    , base  >= 4.13 && < 5\n    , fused-effects ^>= 1.1\n    , semantic-ast\n    , semantic-proto ^>= 0\n    , semantic-source ^>= 0.2\n    , semantic-tags ^>= 0.0\n    , template-haskell  >= 2.15 && < 2.22\n    , text ^>= 1.2.3\n    , tree-sitter ^>= 0.9\n    , tree-sitter-ruby ^>= 0.5.0.2\n\ntest-suite test\n  import:           haskell\n  type:             exitcode-stdio-1.0\n  hs-source-dirs:   test\n  main-is:          PreciseTest.hs\n  build-depends:\n    , base\n    , semantic-ast\n    , semantic-ruby\n    , tasty\n    , tree-sitter-ruby ^>= 0.5.0.2\n\nexecutable benchmarks\n  import:              haskell\n  hs-source-dirs:      bench\n  -- type:                exitcode-stdio-1.0\n  main-is:             Main.hs\n  other-modules:       Parsing\n  ghc-options:         -static -threaded -rtsopts \"-with-rtsopts=-N -A4m -n2m\"\n  build-depends:\n    , base\n    , bytestring\n    , gauge ^>= 0.2.5\n    , Glob\n    , semantic-ast\n    , semantic-ruby\n\nexecutable tree-sitter-ruby\n  import: haskell\n  hs-source-dirs:      app\n  ghc-options:         -threaded -rtsopts \"-with-rtsopts=-N -A4m -n2m\"\n  main-is:             Main.hs\n  build-depends:\n    , base\n    , bytestring\n    , semantic-ast\n    , semantic-ruby\n"
  },
  {
    "path": "semantic-ruby/src/Language/Ruby/AST.hs",
    "content": "-- Language definition for Ruby, generated by ast-generate. Do not edit!\n{-# LANGUAGE CPP #-}\n{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE DeriveTraversable #-}\n{-# LANGUAGE DerivingStrategies #-}\n{-# LANGUAGE DuplicateRecordFields #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE QuantifiedConstraints #-}\n{-# LANGUAGE StandaloneDeriving #-}\n{-# LANGUAGE TemplateHaskell #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\n{-# OPTIONS_GHC -fno-warn-unused-imports #-}\n\nmodule Language.Ruby.AST (module Language.Ruby.AST, getTestCorpusDir) where\n\nimport qualified AST.Parse\nimport qualified AST.Token\nimport qualified AST.Traversable1.Class\nimport qualified AST.Unmarshal\nimport qualified Data.Foldable\nimport qualified Data.List as Data.OldList\nimport qualified Data.Maybe as GHC.Maybe\nimport qualified Data.Text.Internal\nimport qualified Data.Traversable\nimport qualified GHC.Base\nimport qualified GHC.Generics\nimport qualified GHC.Records\nimport qualified GHC.Show\nimport qualified TreeSitter.Node\nimport TreeSitter.Ruby (getTestCorpusDir)\nimport qualified Prelude as GHC.Classes\n\ndebugSymbolNames :: [GHC.Base.String]\ndebugSymbolNames = debugSymbolNames_0\n\ndebugSymbolNames_0 :: [GHC.Base.String]\ndebugSymbolNames_0 =\n  [ \"end\",\n    \"identifier\",\n    \"___END__\",\n    \"uninterpreted\",\n    \"_BEGIN\",\n    \"_{\",\n    \"_}\",\n    \"_END\",\n    \"_def\",\n    \"_(\",\n    \"_)\",\n    \"_.\",\n    \"_::\",\n    \"_,\",\n    \"_|\",\n    \"_;\",\n    \"_*\",\n    \"_**\",\n    \"_&\",\n    \"_:\",\n    \"_=\",\n    \"_class\",\n    \"_<\",\n    \"_module\",\n    \"_end\",\n    \"_return\",\n    \"_yield\",\n    \"_break\",\n    \"_next\",\n    \"_redo\",\n    \"_retry\",\n    \"_if\",\n    \"_unless\",\n    \"_while\",\n    \"_until\",\n    \"_rescue\",\n    \"_for\",\n    \"_in\",\n    \"_do\",\n    \"_case\",\n    \"_when\",\n    \"_elsif\",\n    \"_else\",\n    \"_then\",\n    \"_begin\",\n    \"_ensure\",\n    \"_=>\",\n    \"_[\",\n    \"_]\",\n    \"_::\",\n    \"_&.\",\n    \"_(\",\n    \"_+=\",\n    \"_-=\",\n    \"_*=\",\n    \"_**=\",\n    \"_/=\",\n    \"_||=\",\n    \"_|=\",\n    \"_&&=\",\n    \"_&=\",\n    \"_%=\",\n    \"_>>=\",\n    \"_<<=\",\n    \"_^=\",\n    \"_?\",\n    \"_:\",\n    \"_..\",\n    \"_...\",\n    \"_and\",\n    \"_or\",\n    \"_||\",\n    \"_&&\",\n    \"_<<\",\n    \"_>>\",\n    \"_<=\",\n    \"_>\",\n    \"_>=\",\n    \"_^\",\n    \"_+\",\n    \"_/\",\n    \"_%\",\n    \"_==\",\n    \"_!=\",\n    \"_===\",\n    \"_<=>\",\n    \"_=~\",\n    \"_!~\",\n    \"_defined?\",\n    \"_not\",\n    \"_!\",\n    \"_~\",\n    \"_-\",\n    \"_+@\",\n    \"_-@\",\n    \"_[]\",\n    \"_[]=\",\n    \"_`\",\n    \"_undef\",\n    \"_alias\",\n    \"comment\",\n    \"integer\",\n    \"float\",\n    \"complex\",\n    \"_r\",\n    \"super\",\n    \"self\",\n    \"true\",\n    \"false\",\n    \"nil\",\n    \"constant\",\n    \"instance_variable\",\n    \"class_variable\",\n    \"global_variable\",\n    \"character\",\n    \"_#{\",\n    \"_string_array_token1\",\n    \"escape_sequence\",\n    \"_[\",\n    \"_->\",\n    \"_line_break\",\n    \"_simple_symbol\",\n    \"_\\\"\",\n    \"_:\\\"\",\n    \"_`\",\n    \"_/\",\n    \"_%w(\",\n    \"_%i(\",\n    \"_heredoc_body_start\",\n    \"_string_content\",\n    \"_heredoc_content\",\n    \"_string_end\",\n    \"heredoc_end\",\n    \"heredoc_beginning\",\n    \"_&\",\n    \"_*\",\n    \"_-\",\n    \"_-\",\n    \"_*\",\n    \"_<<\",\n    \"symbol\",\n    \"program\",\n    \"_statements\",\n    \"begin_block\",\n    \"end_block\",\n    \"_statement\",\n    \"method\",\n    \"singleton_method\",\n    \"_method_rest\",\n    \"parameters\",\n    \"bare_parameters\",\n    \"block_parameters\",\n    \"_formal_parameter\",\n    \"_simple_formal_parameter\",\n    \"splat_parameter\",\n    \"hash_splat_parameter\",\n    \"block_parameter\",\n    \"keyword_parameter\",\n    \"optional_parameter\",\n    \"class\",\n    \"superclass\",\n    \"singleton_class\",\n    \"module\",\n    \"return\",\n    \"yield\",\n    \"break\",\n    \"next\",\n    \"return\",\n    \"yield\",\n    \"break\",\n    \"next\",\n    \"redo\",\n    \"retry\",\n    \"if_modifier\",\n    \"unless_modifier\",\n    \"while_modifier\",\n    \"until_modifier\",\n    \"rescue_modifier\",\n    \"while\",\n    \"until\",\n    \"for\",\n    \"in\",\n    \"do\",\n    \"case\",\n    \"when\",\n    \"pattern\",\n    \"if\",\n    \"unless\",\n    \"elsif\",\n    \"else\",\n    \"then\",\n    \"begin\",\n    \"ensure\",\n    \"rescue\",\n    \"exceptions\",\n    \"exception_variable\",\n    \"_body_statement\",\n    \"_expression\",\n    \"_arg\",\n    \"_primary\",\n    \"parenthesized_statements\",\n    \"element_reference\",\n    \"scope_resolution\",\n    \"call\",\n    \"method_call\",\n    \"method_call\",\n    \"argument_list\",\n    \"argument_list\",\n    \"_argument_list_with_trailing_comma\",\n    \"_argument\",\n    \"splat_argument\",\n    \"hash_splat_argument\",\n    \"block_argument\",\n    \"do_block\",\n    \"block\",\n    \"assignment\",\n    \"assignment\",\n    \"operator_assignment\",\n    \"operator_assignment\",\n    \"conditional\",\n    \"range\",\n    \"binary\",\n    \"binary\",\n    \"unary\",\n    \"unary\",\n    \"unary\",\n    \"right_assignment_list\",\n    \"left_assignment_list\",\n    \"_mlhs\",\n    \"destructured_left_assignment\",\n    \"rest_assignment\",\n    \"_lhs\",\n    \"_variable\",\n    \"operator\",\n    \"_method_name\",\n    \"setter\",\n    \"undef\",\n    \"alias\",\n    \"rational\",\n    \"chained_string\",\n    \"interpolation\",\n    \"string\",\n    \"subshell\",\n    \"string_array\",\n    \"symbol_array\",\n    \"symbol\",\n    \"regex\",\n    \"heredoc_body\",\n    \"__literal_contents\",\n    \"array\",\n    \"hash\",\n    \"pair\",\n    \"lambda\",\n    \"empty_statement\",\n    \"_terminator\",\n    \"__statements_repeat1\",\n    \"_parameters_repeat1\",\n    \"_block_parameters_repeat1\",\n    \"_for_repeat1\",\n    \"_case_repeat1\",\n    \"_case_repeat2\",\n    \"_when_repeat1\",\n    \"_exceptions_repeat1\",\n    \"__body_statement_repeat1\",\n    \"_command_argument_list_repeat1\",\n    \"__mlhs_repeat1\",\n    \"_undef_repeat1\",\n    \"_chained_string_repeat1\",\n    \"_string_array_repeat1\",\n    \"_symbol_array_repeat1\",\n    \"_heredoc_body_repeat1\",\n    \"_hash_repeat1\",\n    \"_\\\"\",\n    \"bare_string\",\n    \"bare_symbol\",\n    \"destructured_parameter\",\n    \"lambda_parameters\",\n    \"method_parameters\"\n  ]\n\nnewtype Arg a = Arg {getArg :: ((Primary GHC.Generics.:+: Assignment GHC.Generics.:+: Binary GHC.Generics.:+: Conditional GHC.Generics.:+: OperatorAssignment GHC.Generics.:+: Range GHC.Generics.:+: Unary) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1.\n      AST.Traversable1.Class.Traversable1 a_1\n    )\n\ninstance GHC.Records.HasField \"ann\" (Arg a_2) a_2 where\n  getField = AST.Unmarshal.gann GHC.Base.. getArg\n\nderiving instance GHC.Classes.Eq a_3 => GHC.Classes.Eq (Arg a_3)\n\nderiving instance GHC.Classes.Ord a_4 => GHC.Classes.Ord (Arg a_4)\n\nderiving instance GHC.Show.Show a_5 => GHC.Show.Show (Arg a_5)\n\ninstance AST.Unmarshal.Unmarshal Arg\n\ninstance Data.Foldable.Foldable Arg where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Arg where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Arg where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Lhs a = Lhs {getLhs :: ((Variable GHC.Generics.:+: Call GHC.Generics.:+: ElementReference GHC.Generics.:+: False GHC.Generics.:+: MethodCall GHC.Generics.:+: Nil GHC.Generics.:+: ScopeResolution GHC.Generics.:+: True) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_6.\n      AST.Traversable1.Class.Traversable1 a_6\n    )\n\ninstance GHC.Records.HasField \"ann\" (Lhs a_7) a_7 where\n  getField = AST.Unmarshal.gann GHC.Base.. getLhs\n\nderiving instance GHC.Classes.Eq a_8 => GHC.Classes.Eq (Lhs a_8)\n\nderiving instance GHC.Classes.Ord a_9 => GHC.Classes.Ord (Lhs a_9)\n\nderiving instance GHC.Show.Show a_10 => GHC.Show.Show (Lhs a_10)\n\ninstance AST.Unmarshal.Unmarshal Lhs\n\ninstance Data.Foldable.Foldable Lhs where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Lhs where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Lhs where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype MethodName a = MethodName {getMethodName :: ((ClassVariable GHC.Generics.:+: Constant GHC.Generics.:+: GlobalVariable GHC.Generics.:+: Identifier GHC.Generics.:+: InstanceVariable GHC.Generics.:+: Operator GHC.Generics.:+: Setter GHC.Generics.:+: Symbol) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_11.\n      AST.Traversable1.Class.Traversable1 a_11\n    )\n\ninstance GHC.Records.HasField \"ann\" (MethodName a_12) a_12 where\n  getField = AST.Unmarshal.gann GHC.Base.. getMethodName\n\nderiving instance GHC.Classes.Eq a_13 => GHC.Classes.Eq (MethodName a_13)\n\nderiving instance GHC.Classes.Ord a_14 => GHC.Classes.Ord (MethodName a_14)\n\nderiving instance GHC.Show.Show a_15 => GHC.Show.Show (MethodName a_15)\n\ninstance AST.Unmarshal.Unmarshal MethodName\n\ninstance Data.Foldable.Foldable MethodName where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MethodName where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MethodName where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Primary a = Primary {getPrimary :: ((Lhs GHC.Generics.:+: Array GHC.Generics.:+: Begin GHC.Generics.:+: Break GHC.Generics.:+: Case GHC.Generics.:+: ChainedString GHC.Generics.:+: Character GHC.Generics.:+: Class GHC.Generics.:+: Complex GHC.Generics.:+: Float GHC.Generics.:+: For GHC.Generics.:+: Hash GHC.Generics.:+: HeredocBeginning GHC.Generics.:+: If GHC.Generics.:+: Integer GHC.Generics.:+: Lambda GHC.Generics.:+: Method GHC.Generics.:+: Module GHC.Generics.:+: Next GHC.Generics.:+: ParenthesizedStatements GHC.Generics.:+: Rational GHC.Generics.:+: Redo GHC.Generics.:+: Regex GHC.Generics.:+: Retry GHC.Generics.:+: Return GHC.Generics.:+: SingletonClass GHC.Generics.:+: SingletonMethod GHC.Generics.:+: String GHC.Generics.:+: StringArray GHC.Generics.:+: Subshell GHC.Generics.:+: Symbol GHC.Generics.:+: SymbolArray GHC.Generics.:+: Unary GHC.Generics.:+: Unless GHC.Generics.:+: Until GHC.Generics.:+: While GHC.Generics.:+: Yield) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_16.\n      AST.Traversable1.Class.Traversable1 a_16\n    )\n\ninstance GHC.Records.HasField \"ann\" (Primary a_17) a_17 where\n  getField = AST.Unmarshal.gann GHC.Base.. getPrimary\n\nderiving instance GHC.Classes.Eq a_18 => GHC.Classes.Eq (Primary a_18)\n\nderiving instance GHC.Classes.Ord a_19 => GHC.Classes.Ord (Primary a_19)\n\nderiving instance GHC.Show.Show a_20 => GHC.Show.Show (Primary a_20)\n\ninstance AST.Unmarshal.Unmarshal Primary\n\ninstance Data.Foldable.Foldable Primary where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Primary where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Primary where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Statement a = Statement {getStatement :: ((Arg GHC.Generics.:+: Alias GHC.Generics.:+: Assignment GHC.Generics.:+: BeginBlock GHC.Generics.:+: Binary GHC.Generics.:+: Break GHC.Generics.:+: EndBlock GHC.Generics.:+: IfModifier GHC.Generics.:+: MethodCall GHC.Generics.:+: Next GHC.Generics.:+: OperatorAssignment GHC.Generics.:+: RescueModifier GHC.Generics.:+: Return GHC.Generics.:+: Undef GHC.Generics.:+: UnlessModifier GHC.Generics.:+: UntilModifier GHC.Generics.:+: WhileModifier GHC.Generics.:+: Yield) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_21.\n      AST.Traversable1.Class.Traversable1 a_21\n    )\n\ninstance GHC.Records.HasField \"ann\" (Statement a_22) a_22 where\n  getField = AST.Unmarshal.gann GHC.Base.. getStatement\n\nderiving instance GHC.Classes.Eq a_23 => GHC.Classes.Eq (Statement a_23)\n\nderiving instance GHC.Classes.Ord a_24 => GHC.Classes.Ord (Statement a_24)\n\nderiving instance GHC.Show.Show a_25 => GHC.Show.Show (Statement a_25)\n\ninstance AST.Unmarshal.Unmarshal Statement\n\ninstance Data.Foldable.Foldable Statement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Statement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Statement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Variable a = Variable {getVariable :: ((ClassVariable GHC.Generics.:+: Constant GHC.Generics.:+: GlobalVariable GHC.Generics.:+: Identifier GHC.Generics.:+: InstanceVariable GHC.Generics.:+: Self GHC.Generics.:+: Super) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_26.\n      AST.Traversable1.Class.Traversable1 a_26\n    )\n\ninstance GHC.Records.HasField \"ann\" (Variable a_27) a_27 where\n  getField = AST.Unmarshal.gann GHC.Base.. getVariable\n\nderiving instance GHC.Classes.Eq a_28 => GHC.Classes.Eq (Variable a_28)\n\nderiving instance GHC.Classes.Ord a_29 => GHC.Classes.Ord (Variable a_29)\n\nderiving instance GHC.Show.Show a_30 => GHC.Show.Show (Variable a_30)\n\ninstance AST.Unmarshal.Unmarshal Variable\n\ninstance Data.Foldable.Foldable Variable where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Variable where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Variable where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Alias a = Alias\n  { ann :: a,\n    alias :: (AST.Parse.Err (MethodName a)),\n    name :: (AST.Parse.Err (MethodName a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_31.\n      AST.Traversable1.Class.Traversable1 a_31\n    )\n\ninstance AST.Unmarshal.SymbolMatching Alias where\n  matchedSymbols _ = [237]\n  showFailure _ node_32 =\n    \"expected \"\n      GHC.Base.<> ( \"alias\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_32 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_32) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_33 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_34 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_35 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_36 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_33\n        c1_34 = TreeSitter.Node.nodeStartPoint node_32\n      TreeSitter.Node.TSPoint\n        r2_35\n        c2_36 = TreeSitter.Node.nodeEndPoint node_32\n\nderiving instance GHC.Classes.Eq a_37 => GHC.Classes.Eq (Alias a_37)\n\nderiving instance GHC.Classes.Ord a_38 => GHC.Classes.Ord (Alias a_38)\n\nderiving instance GHC.Show.Show a_39 => GHC.Show.Show (Alias a_39)\n\ninstance AST.Unmarshal.Unmarshal Alias\n\ninstance Data.Foldable.Foldable Alias where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Alias where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Alias where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ArgumentList a = ArgumentList\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Arg GHC.Generics.:+: BlockArgument GHC.Generics.:+: HashSplatArgument GHC.Generics.:+: MethodCall GHC.Generics.:+: Pair GHC.Generics.:+: SplatArgument) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_40.\n      AST.Traversable1.Class.Traversable1 a_40\n    )\n\ninstance AST.Unmarshal.SymbolMatching ArgumentList where\n  matchedSymbols _ = [206, 207]\n  showFailure _ node_41 =\n    \"expected \"\n      GHC.Base.<> ( \"argument_list, argument_list\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_41 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_41) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_42 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_43 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_44 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_45 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_42\n        c1_43 = TreeSitter.Node.nodeStartPoint node_41\n      TreeSitter.Node.TSPoint\n        r2_44\n        c2_45 = TreeSitter.Node.nodeEndPoint node_41\n\nderiving instance GHC.Classes.Eq a_46 => GHC.Classes.Eq (ArgumentList a_46)\n\nderiving instance GHC.Classes.Ord a_47 => GHC.Classes.Ord (ArgumentList a_47)\n\nderiving instance GHC.Show.Show a_48 => GHC.Show.Show (ArgumentList a_48)\n\ninstance AST.Unmarshal.Unmarshal ArgumentList\n\ninstance Data.Foldable.Foldable ArgumentList where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ArgumentList where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ArgumentList where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Array a = Array\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Arg GHC.Generics.:+: BlockArgument GHC.Generics.:+: HashSplatArgument GHC.Generics.:+: Pair GHC.Generics.:+: SplatArgument) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_49.\n      AST.Traversable1.Class.Traversable1 a_49\n    )\n\ninstance AST.Unmarshal.SymbolMatching Array where\n  matchedSymbols _ = [249]\n  showFailure _ node_50 =\n    \"expected \"\n      GHC.Base.<> ( \"array\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_50 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_50) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_51 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_52 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_53 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_54 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_51\n        c1_52 = TreeSitter.Node.nodeStartPoint node_50\n      TreeSitter.Node.TSPoint\n        r2_53\n        c2_54 = TreeSitter.Node.nodeEndPoint node_50\n\nderiving instance GHC.Classes.Eq a_55 => GHC.Classes.Eq (Array a_55)\n\nderiving instance GHC.Classes.Ord a_56 => GHC.Classes.Ord (Array a_56)\n\nderiving instance GHC.Show.Show a_57 => GHC.Show.Show (Array a_57)\n\ninstance AST.Unmarshal.Unmarshal Array\n\ninstance Data.Foldable.Foldable Array where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Array where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Array where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Assignment a = Assignment\n  { ann :: a,\n    left :: (AST.Parse.Err ((Lhs GHC.Generics.:+: LeftAssignmentList) a)),\n    right :: (AST.Parse.Err ((Arg GHC.Generics.:+: Break GHC.Generics.:+: MethodCall GHC.Generics.:+: Next GHC.Generics.:+: Return GHC.Generics.:+: RightAssignmentList GHC.Generics.:+: SplatArgument GHC.Generics.:+: Yield) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_58.\n      AST.Traversable1.Class.Traversable1 a_58\n    )\n\ninstance AST.Unmarshal.SymbolMatching Assignment where\n  matchedSymbols _ = [215, 216]\n  showFailure _ node_59 =\n    \"expected \"\n      GHC.Base.<> ( \"assignment, assignment\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_59 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_59) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_60 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_61 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_62 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_63 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_60\n        c1_61 = TreeSitter.Node.nodeStartPoint node_59\n      TreeSitter.Node.TSPoint\n        r2_62\n        c2_63 = TreeSitter.Node.nodeEndPoint node_59\n\nderiving instance GHC.Classes.Eq a_64 => GHC.Classes.Eq (Assignment a_64)\n\nderiving instance GHC.Classes.Ord a_65 => GHC.Classes.Ord (Assignment a_65)\n\nderiving instance GHC.Show.Show a_66 => GHC.Show.Show (Assignment a_66)\n\ninstance AST.Unmarshal.Unmarshal Assignment\n\ninstance Data.Foldable.Foldable Assignment where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Assignment where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Assignment where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BareString a = BareString\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((EscapeSequence GHC.Generics.:+: Interpolation) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_67.\n      AST.Traversable1.Class.Traversable1 a_67\n    )\n\ninstance AST.Unmarshal.SymbolMatching BareString where\n  matchedSymbols _ = [273]\n  showFailure _ node_68 =\n    \"expected \"\n      GHC.Base.<> ( \"bare_string\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_68 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_68) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_69 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_70 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_71 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_72 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_69\n        c1_70 = TreeSitter.Node.nodeStartPoint node_68\n      TreeSitter.Node.TSPoint\n        r2_71\n        c2_72 = TreeSitter.Node.nodeEndPoint node_68\n\nderiving instance GHC.Classes.Eq a_73 => GHC.Classes.Eq (BareString a_73)\n\nderiving instance GHC.Classes.Ord a_74 => GHC.Classes.Ord (BareString a_74)\n\nderiving instance GHC.Show.Show a_75 => GHC.Show.Show (BareString a_75)\n\ninstance AST.Unmarshal.Unmarshal BareString\n\ninstance Data.Foldable.Foldable BareString where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BareString where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BareString where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BareSymbol a = BareSymbol\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((EscapeSequence GHC.Generics.:+: Interpolation) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_76.\n      AST.Traversable1.Class.Traversable1 a_76\n    )\n\ninstance AST.Unmarshal.SymbolMatching BareSymbol where\n  matchedSymbols _ = [274]\n  showFailure _ node_77 =\n    \"expected \"\n      GHC.Base.<> ( \"bare_symbol\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_77 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_77) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_78 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_79 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_80 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_81 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_78\n        c1_79 = TreeSitter.Node.nodeStartPoint node_77\n      TreeSitter.Node.TSPoint\n        r2_80\n        c2_81 = TreeSitter.Node.nodeEndPoint node_77\n\nderiving instance GHC.Classes.Eq a_82 => GHC.Classes.Eq (BareSymbol a_82)\n\nderiving instance GHC.Classes.Ord a_83 => GHC.Classes.Ord (BareSymbol a_83)\n\nderiving instance GHC.Show.Show a_84 => GHC.Show.Show (BareSymbol a_84)\n\ninstance AST.Unmarshal.Unmarshal BareSymbol\n\ninstance Data.Foldable.Foldable BareSymbol where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BareSymbol where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BareSymbol where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Begin a = Begin\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: Else GHC.Generics.:+: EmptyStatement GHC.Generics.:+: Ensure GHC.Generics.:+: Rescue) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_85.\n      AST.Traversable1.Class.Traversable1 a_85\n    )\n\ninstance AST.Unmarshal.SymbolMatching Begin where\n  matchedSymbols _ = [191]\n  showFailure _ node_86 =\n    \"expected \"\n      GHC.Base.<> ( \"begin\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_86 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_86) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_87 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_88 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_89 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_90 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_87\n        c1_88 = TreeSitter.Node.nodeStartPoint node_86\n      TreeSitter.Node.TSPoint\n        r2_89\n        c2_90 = TreeSitter.Node.nodeEndPoint node_86\n\nderiving instance GHC.Classes.Eq a_91 => GHC.Classes.Eq (Begin a_91)\n\nderiving instance GHC.Classes.Ord a_92 => GHC.Classes.Ord (Begin a_92)\n\nderiving instance GHC.Show.Show a_93 => GHC.Show.Show (Begin a_93)\n\ninstance AST.Unmarshal.Unmarshal Begin\n\ninstance Data.Foldable.Foldable Begin where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Begin where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Begin where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BeginBlock a = BeginBlock\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: EmptyStatement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_94.\n      AST.Traversable1.Class.Traversable1 a_94\n    )\n\ninstance AST.Unmarshal.SymbolMatching BeginBlock where\n  matchedSymbols _ = [143]\n  showFailure _ node_95 =\n    \"expected \"\n      GHC.Base.<> ( \"begin_block\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_95 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_95) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_96 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_97 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_98 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_99 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_96\n        c1_97 = TreeSitter.Node.nodeStartPoint node_95\n      TreeSitter.Node.TSPoint\n        r2_98\n        c2_99 = TreeSitter.Node.nodeEndPoint node_95\n\nderiving instance GHC.Classes.Eq a_100 => GHC.Classes.Eq (BeginBlock a_100)\n\nderiving instance GHC.Classes.Ord a_101 => GHC.Classes.Ord (BeginBlock a_101)\n\nderiving instance GHC.Show.Show a_102 => GHC.Show.Show (BeginBlock a_102)\n\ninstance AST.Unmarshal.Unmarshal BeginBlock\n\ninstance Data.Foldable.Foldable BeginBlock where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BeginBlock where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BeginBlock where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Binary a = Binary\n  { ann :: a,\n    operator :: (AST.Parse.Err ((AnonymousBangEqual GHC.Generics.:+: AnonymousBangTilde GHC.Generics.:+: AnonymousPercent GHC.Generics.:+: AnonymousAmpersand GHC.Generics.:+: AnonymousAmpersandAmpersand GHC.Generics.:+: AnonymousStar GHC.Generics.:+: AnonymousStarStar GHC.Generics.:+: AnonymousPlus GHC.Generics.:+: AnonymousMinus GHC.Generics.:+: AnonymousSlash GHC.Generics.:+: AnonymousLAngle GHC.Generics.:+: AnonymousLAngleLAngle GHC.Generics.:+: AnonymousLAngleEqual GHC.Generics.:+: AnonymousLAngleEqualRAngle GHC.Generics.:+: AnonymousEqualEqual GHC.Generics.:+: AnonymousEqualEqualEqual GHC.Generics.:+: AnonymousEqualTilde GHC.Generics.:+: AnonymousRAngle GHC.Generics.:+: AnonymousRAngleEqual GHC.Generics.:+: AnonymousRAngleRAngle GHC.Generics.:+: AnonymousCaret GHC.Generics.:+: AnonymousAnd GHC.Generics.:+: AnonymousOr GHC.Generics.:+: AnonymousPipe GHC.Generics.:+: AnonymousPipePipe) a)),\n    left :: (AST.Parse.Err ((Arg GHC.Generics.:+: Break GHC.Generics.:+: MethodCall GHC.Generics.:+: Next GHC.Generics.:+: Return GHC.Generics.:+: Yield) a)),\n    right :: (AST.Parse.Err ((Arg GHC.Generics.:+: Break GHC.Generics.:+: MethodCall GHC.Generics.:+: Next GHC.Generics.:+: Return GHC.Generics.:+: Yield) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_103.\n      AST.Traversable1.Class.Traversable1 a_103\n    )\n\ninstance AST.Unmarshal.SymbolMatching Binary where\n  matchedSymbols _ = [221, 222]\n  showFailure _ node_104 =\n    \"expected \"\n      GHC.Base.<> ( \"binary, binary\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_104 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_104) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_105 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_106 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_107 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_108 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_105\n        c1_106 = TreeSitter.Node.nodeStartPoint node_104\n      TreeSitter.Node.TSPoint\n        r2_107\n        c2_108 = TreeSitter.Node.nodeEndPoint node_104\n\nderiving instance GHC.Classes.Eq a_109 => GHC.Classes.Eq (Binary a_109)\n\nderiving instance GHC.Classes.Ord a_110 => GHC.Classes.Ord (Binary a_110)\n\nderiving instance GHC.Show.Show a_111 => GHC.Show.Show (Binary a_111)\n\ninstance AST.Unmarshal.Unmarshal Binary\n\ninstance Data.Foldable.Foldable Binary where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Binary where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Binary where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Block a = Block\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: BlockParameters GHC.Generics.:+: EmptyStatement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_112.\n      AST.Traversable1.Class.Traversable1 a_112\n    )\n\ninstance AST.Unmarshal.SymbolMatching Block where\n  matchedSymbols _ = [214]\n  showFailure _ node_113 =\n    \"expected \"\n      GHC.Base.<> ( \"block\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_113 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_113) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_114 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_115 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_116 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_117 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_114\n        c1_115 = TreeSitter.Node.nodeStartPoint node_113\n      TreeSitter.Node.TSPoint\n        r2_116\n        c2_117 = TreeSitter.Node.nodeEndPoint node_113\n\nderiving instance GHC.Classes.Eq a_118 => GHC.Classes.Eq (Block a_118)\n\nderiving instance GHC.Classes.Ord a_119 => GHC.Classes.Ord (Block a_119)\n\nderiving instance GHC.Show.Show a_120 => GHC.Show.Show (Block a_120)\n\ninstance AST.Unmarshal.Unmarshal Block\n\ninstance Data.Foldable.Foldable Block where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Block where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Block where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BlockArgument a = BlockArgument\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Arg a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_121.\n      AST.Traversable1.Class.Traversable1 a_121\n    )\n\ninstance AST.Unmarshal.SymbolMatching BlockArgument where\n  matchedSymbols _ = [212]\n  showFailure _ node_122 =\n    \"expected \"\n      GHC.Base.<> ( \"block_argument\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_122 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_122) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_123 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_124 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_125 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_126 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_123\n        c1_124 = TreeSitter.Node.nodeStartPoint node_122\n      TreeSitter.Node.TSPoint\n        r2_125\n        c2_126 = TreeSitter.Node.nodeEndPoint node_122\n\nderiving instance GHC.Classes.Eq a_127 => GHC.Classes.Eq (BlockArgument a_127)\n\nderiving instance GHC.Classes.Ord a_128 => GHC.Classes.Ord (BlockArgument a_128)\n\nderiving instance GHC.Show.Show a_129 => GHC.Show.Show (BlockArgument a_129)\n\ninstance AST.Unmarshal.Unmarshal BlockArgument\n\ninstance Data.Foldable.Foldable BlockArgument where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BlockArgument where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BlockArgument where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BlockParameter a = BlockParameter {ann :: a, name :: (AST.Parse.Err (Identifier a))}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_130.\n      AST.Traversable1.Class.Traversable1 a_130\n    )\n\ninstance AST.Unmarshal.SymbolMatching BlockParameter where\n  matchedSymbols _ = [156]\n  showFailure _ node_131 =\n    \"expected \"\n      GHC.Base.<> ( \"block_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_131 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_131) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_132 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_133 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_134 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_135 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_132\n        c1_133 = TreeSitter.Node.nodeStartPoint node_131\n      TreeSitter.Node.TSPoint\n        r2_134\n        c2_135 = TreeSitter.Node.nodeEndPoint node_131\n\nderiving instance GHC.Classes.Eq a_136 => GHC.Classes.Eq (BlockParameter a_136)\n\nderiving instance GHC.Classes.Ord a_137 => GHC.Classes.Ord (BlockParameter a_137)\n\nderiving instance GHC.Show.Show a_138 => GHC.Show.Show (BlockParameter a_138)\n\ninstance AST.Unmarshal.Unmarshal BlockParameter\n\ninstance Data.Foldable.Foldable BlockParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BlockParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BlockParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BlockParameters a = BlockParameters\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((BlockParameter GHC.Generics.:+: DestructuredParameter GHC.Generics.:+: HashSplatParameter GHC.Generics.:+: Identifier GHC.Generics.:+: KeywordParameter GHC.Generics.:+: OptionalParameter GHC.Generics.:+: SplatParameter) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_139.\n      AST.Traversable1.Class.Traversable1 a_139\n    )\n\ninstance AST.Unmarshal.SymbolMatching BlockParameters where\n  matchedSymbols _ = [151]\n  showFailure _ node_140 =\n    \"expected \"\n      GHC.Base.<> ( \"block_parameters\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_140 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_140) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_141 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_142 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_143 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_144 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_141\n        c1_142 = TreeSitter.Node.nodeStartPoint node_140\n      TreeSitter.Node.TSPoint\n        r2_143\n        c2_144 = TreeSitter.Node.nodeEndPoint node_140\n\nderiving instance GHC.Classes.Eq a_145 => GHC.Classes.Eq (BlockParameters a_145)\n\nderiving instance GHC.Classes.Ord a_146 => GHC.Classes.Ord (BlockParameters a_146)\n\nderiving instance GHC.Show.Show a_147 => GHC.Show.Show (BlockParameters a_147)\n\ninstance AST.Unmarshal.Unmarshal BlockParameters\n\ninstance Data.Foldable.Foldable BlockParameters where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BlockParameters where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BlockParameters where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Break a = Break\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_148.\n      AST.Traversable1.Class.Traversable1 a_148\n    )\n\ninstance AST.Unmarshal.SymbolMatching Break where\n  matchedSymbols _ = [165, 169]\n  showFailure _ node_149 =\n    \"expected \"\n      GHC.Base.<> ( \"break, break\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_149 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_149) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_150 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_151 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_152 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_153 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_150\n        c1_151 = TreeSitter.Node.nodeStartPoint node_149\n      TreeSitter.Node.TSPoint\n        r2_152\n        c2_153 = TreeSitter.Node.nodeEndPoint node_149\n\nderiving instance GHC.Classes.Eq a_154 => GHC.Classes.Eq (Break a_154)\n\nderiving instance GHC.Classes.Ord a_155 => GHC.Classes.Ord (Break a_155)\n\nderiving instance GHC.Show.Show a_156 => GHC.Show.Show (Break a_156)\n\ninstance AST.Unmarshal.Unmarshal Break\n\ninstance Data.Foldable.Foldable Break where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Break where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Break where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Call a = Call\n  { ann :: a,\n    receiver :: (AST.Parse.Err (Primary a)),\n    method :: (AST.Parse.Err ((ArgumentList GHC.Generics.:+: Constant GHC.Generics.:+: Identifier GHC.Generics.:+: Operator) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_157.\n      AST.Traversable1.Class.Traversable1 a_157\n    )\n\ninstance AST.Unmarshal.SymbolMatching Call where\n  matchedSymbols _ = [203]\n  showFailure _ node_158 =\n    \"expected \"\n      GHC.Base.<> ( \"call\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_158 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_158) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_159 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_160 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_161 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_162 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_159\n        c1_160 = TreeSitter.Node.nodeStartPoint node_158\n      TreeSitter.Node.TSPoint\n        r2_161\n        c2_162 = TreeSitter.Node.nodeEndPoint node_158\n\nderiving instance GHC.Classes.Eq a_163 => GHC.Classes.Eq (Call a_163)\n\nderiving instance GHC.Classes.Ord a_164 => GHC.Classes.Ord (Call a_164)\n\nderiving instance GHC.Show.Show a_165 => GHC.Show.Show (Call a_165)\n\ninstance AST.Unmarshal.Unmarshal Call\n\ninstance Data.Foldable.Foldable Call where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Call where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Call where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Case a = Case\n  { ann :: a,\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err (Arg a))),\n    extraChildren :: ([AST.Parse.Err ((Else GHC.Generics.:+: When) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_166.\n      AST.Traversable1.Class.Traversable1 a_166\n    )\n\ninstance AST.Unmarshal.SymbolMatching Case where\n  matchedSymbols _ = [183]\n  showFailure _ node_167 =\n    \"expected \"\n      GHC.Base.<> ( \"case\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_167 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_167) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_168 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_169 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_170 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_171 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_168\n        c1_169 = TreeSitter.Node.nodeStartPoint node_167\n      TreeSitter.Node.TSPoint\n        r2_170\n        c2_171 = TreeSitter.Node.nodeEndPoint node_167\n\nderiving instance GHC.Classes.Eq a_172 => GHC.Classes.Eq (Case a_172)\n\nderiving instance GHC.Classes.Ord a_173 => GHC.Classes.Ord (Case a_173)\n\nderiving instance GHC.Show.Show a_174 => GHC.Show.Show (Case a_174)\n\ninstance AST.Unmarshal.Unmarshal Case\n\ninstance Data.Foldable.Foldable Case where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Case where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Case where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ChainedString a = ChainedString\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (String a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_175.\n      AST.Traversable1.Class.Traversable1 a_175\n    )\n\ninstance AST.Unmarshal.SymbolMatching ChainedString where\n  matchedSymbols _ = [239]\n  showFailure _ node_176 =\n    \"expected \"\n      GHC.Base.<> ( \"chained_string\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_176 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_176) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_177 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_178 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_179 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_180 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_177\n        c1_178 = TreeSitter.Node.nodeStartPoint node_176\n      TreeSitter.Node.TSPoint\n        r2_179\n        c2_180 = TreeSitter.Node.nodeEndPoint node_176\n\nderiving instance GHC.Classes.Eq a_181 => GHC.Classes.Eq (ChainedString a_181)\n\nderiving instance GHC.Classes.Ord a_182 => GHC.Classes.Ord (ChainedString a_182)\n\nderiving instance GHC.Show.Show a_183 => GHC.Show.Show (ChainedString a_183)\n\ninstance AST.Unmarshal.Unmarshal ChainedString\n\ninstance Data.Foldable.Foldable ChainedString where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ChainedString where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ChainedString where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Class a = Class\n  { ann :: a,\n    name :: (AST.Parse.Err ((Constant GHC.Generics.:+: ScopeResolution) a)),\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: Else GHC.Generics.:+: EmptyStatement GHC.Generics.:+: Ensure GHC.Generics.:+: Rescue GHC.Generics.:+: Superclass) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_184.\n      AST.Traversable1.Class.Traversable1 a_184\n    )\n\ninstance AST.Unmarshal.SymbolMatching Class where\n  matchedSymbols _ = [159]\n  showFailure _ node_185 =\n    \"expected \"\n      GHC.Base.<> ( \"class\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_185 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_185) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_186 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_187 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_188 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_189 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_186\n        c1_187 = TreeSitter.Node.nodeStartPoint node_185\n      TreeSitter.Node.TSPoint\n        r2_188\n        c2_189 = TreeSitter.Node.nodeEndPoint node_185\n\nderiving instance GHC.Classes.Eq a_190 => GHC.Classes.Eq (Class a_190)\n\nderiving instance GHC.Classes.Ord a_191 => GHC.Classes.Ord (Class a_191)\n\nderiving instance GHC.Show.Show a_192 => GHC.Show.Show (Class a_192)\n\ninstance AST.Unmarshal.Unmarshal Class\n\ninstance Data.Foldable.Foldable Class where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Class where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Class where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Conditional a = Conditional\n  { ann :: a,\n    alternative :: (AST.Parse.Err (Arg a)),\n    consequence :: (AST.Parse.Err (Arg a)),\n    condition :: (AST.Parse.Err (Arg a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_193.\n      AST.Traversable1.Class.Traversable1 a_193\n    )\n\ninstance AST.Unmarshal.SymbolMatching Conditional where\n  matchedSymbols _ = [219]\n  showFailure _ node_194 =\n    \"expected \"\n      GHC.Base.<> ( \"conditional\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_194 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_194) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_195 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_196 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_197 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_198 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_195\n        c1_196 = TreeSitter.Node.nodeStartPoint node_194\n      TreeSitter.Node.TSPoint\n        r2_197\n        c2_198 = TreeSitter.Node.nodeEndPoint node_194\n\nderiving instance GHC.Classes.Eq a_199 => GHC.Classes.Eq (Conditional a_199)\n\nderiving instance GHC.Classes.Ord a_200 => GHC.Classes.Ord (Conditional a_200)\n\nderiving instance GHC.Show.Show a_201 => GHC.Show.Show (Conditional a_201)\n\ninstance AST.Unmarshal.Unmarshal Conditional\n\ninstance Data.Foldable.Foldable Conditional where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Conditional where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Conditional where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DestructuredLeftAssignment a = DestructuredLeftAssignment\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Lhs GHC.Generics.:+: DestructuredLeftAssignment GHC.Generics.:+: RestAssignment) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_202.\n      AST.Traversable1.Class.Traversable1 a_202\n    )\n\ninstance AST.Unmarshal.SymbolMatching DestructuredLeftAssignment where\n  matchedSymbols _ = [229]\n  showFailure _ node_203 =\n    \"expected \"\n      GHC.Base.<> ( \"destructured_left_assignment\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_203 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_203) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_204 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_205 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_206 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_207 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_204\n        c1_205 = TreeSitter.Node.nodeStartPoint node_203\n      TreeSitter.Node.TSPoint\n        r2_206\n        c2_207 = TreeSitter.Node.nodeEndPoint node_203\n\nderiving instance GHC.Classes.Eq a_208 => GHC.Classes.Eq (DestructuredLeftAssignment a_208)\n\nderiving instance GHC.Classes.Ord a_209 => GHC.Classes.Ord (DestructuredLeftAssignment a_209)\n\nderiving instance GHC.Show.Show a_210 => GHC.Show.Show (DestructuredLeftAssignment a_210)\n\ninstance AST.Unmarshal.Unmarshal DestructuredLeftAssignment\n\ninstance Data.Foldable.Foldable DestructuredLeftAssignment where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DestructuredLeftAssignment where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DestructuredLeftAssignment where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DestructuredParameter a = DestructuredParameter\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((BlockParameter GHC.Generics.:+: DestructuredParameter GHC.Generics.:+: HashSplatParameter GHC.Generics.:+: Identifier GHC.Generics.:+: KeywordParameter GHC.Generics.:+: OptionalParameter GHC.Generics.:+: SplatParameter) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_211.\n      AST.Traversable1.Class.Traversable1 a_211\n    )\n\ninstance AST.Unmarshal.SymbolMatching DestructuredParameter where\n  matchedSymbols _ = [275]\n  showFailure _ node_212 =\n    \"expected \"\n      GHC.Base.<> ( \"destructured_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_212 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_212) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_213 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_214 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_215 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_216 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_213\n        c1_214 = TreeSitter.Node.nodeStartPoint node_212\n      TreeSitter.Node.TSPoint\n        r2_215\n        c2_216 = TreeSitter.Node.nodeEndPoint node_212\n\nderiving instance GHC.Classes.Eq a_217 => GHC.Classes.Eq (DestructuredParameter a_217)\n\nderiving instance GHC.Classes.Ord a_218 => GHC.Classes.Ord (DestructuredParameter a_218)\n\nderiving instance GHC.Show.Show a_219 => GHC.Show.Show (DestructuredParameter a_219)\n\ninstance AST.Unmarshal.Unmarshal DestructuredParameter\n\ninstance Data.Foldable.Foldable DestructuredParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DestructuredParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DestructuredParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Do a = Do\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: EmptyStatement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_220.\n      AST.Traversable1.Class.Traversable1 a_220\n    )\n\ninstance AST.Unmarshal.SymbolMatching Do where\n  matchedSymbols _ = [182]\n  showFailure _ node_221 =\n    \"expected \"\n      GHC.Base.<> ( \"do\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_221 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_221) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_222 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_223 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_224 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_225 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_222\n        c1_223 = TreeSitter.Node.nodeStartPoint node_221\n      TreeSitter.Node.TSPoint\n        r2_224\n        c2_225 = TreeSitter.Node.nodeEndPoint node_221\n\nderiving instance GHC.Classes.Eq a_226 => GHC.Classes.Eq (Do a_226)\n\nderiving instance GHC.Classes.Ord a_227 => GHC.Classes.Ord (Do a_227)\n\nderiving instance GHC.Show.Show a_228 => GHC.Show.Show (Do a_228)\n\ninstance AST.Unmarshal.Unmarshal Do\n\ninstance Data.Foldable.Foldable Do where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Do where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Do where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DoBlock a = DoBlock\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: BlockParameters GHC.Generics.:+: Else GHC.Generics.:+: EmptyStatement GHC.Generics.:+: Ensure GHC.Generics.:+: Rescue) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_229.\n      AST.Traversable1.Class.Traversable1 a_229\n    )\n\ninstance AST.Unmarshal.SymbolMatching DoBlock where\n  matchedSymbols _ = [213]\n  showFailure _ node_230 =\n    \"expected \"\n      GHC.Base.<> ( \"do_block\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_230 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_230) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_231 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_232 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_233 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_234 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_231\n        c1_232 = TreeSitter.Node.nodeStartPoint node_230\n      TreeSitter.Node.TSPoint\n        r2_233\n        c2_234 = TreeSitter.Node.nodeEndPoint node_230\n\nderiving instance GHC.Classes.Eq a_235 => GHC.Classes.Eq (DoBlock a_235)\n\nderiving instance GHC.Classes.Ord a_236 => GHC.Classes.Ord (DoBlock a_236)\n\nderiving instance GHC.Show.Show a_237 => GHC.Show.Show (DoBlock a_237)\n\ninstance AST.Unmarshal.Unmarshal DoBlock\n\ninstance Data.Foldable.Foldable DoBlock where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DoBlock where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DoBlock where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ElementReference a = ElementReference\n  { ann :: a,\n    object :: (AST.Parse.Err (Primary a)),\n    extraChildren :: ([AST.Parse.Err ((Arg GHC.Generics.:+: BlockArgument GHC.Generics.:+: HashSplatArgument GHC.Generics.:+: Pair GHC.Generics.:+: SplatArgument) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_238.\n      AST.Traversable1.Class.Traversable1 a_238\n    )\n\ninstance AST.Unmarshal.SymbolMatching ElementReference where\n  matchedSymbols _ = [201]\n  showFailure _ node_239 =\n    \"expected \"\n      GHC.Base.<> ( \"element_reference\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_239 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_239) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_240 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_241 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_242 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_243 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_240\n        c1_241 = TreeSitter.Node.nodeStartPoint node_239\n      TreeSitter.Node.TSPoint\n        r2_242\n        c2_243 = TreeSitter.Node.nodeEndPoint node_239\n\nderiving instance GHC.Classes.Eq a_244 => GHC.Classes.Eq (ElementReference a_244)\n\nderiving instance GHC.Classes.Ord a_245 => GHC.Classes.Ord (ElementReference a_245)\n\nderiving instance GHC.Show.Show a_246 => GHC.Show.Show (ElementReference a_246)\n\ninstance AST.Unmarshal.Unmarshal ElementReference\n\ninstance Data.Foldable.Foldable ElementReference where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ElementReference where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ElementReference where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Else a = Else\n  { ann :: a,\n    condition :: (GHC.Maybe.Maybe (AST.Parse.Err (AnonymousSemicolon a))),\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: EmptyStatement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_247.\n      AST.Traversable1.Class.Traversable1 a_247\n    )\n\ninstance AST.Unmarshal.SymbolMatching Else where\n  matchedSymbols _ = [189]\n  showFailure _ node_248 =\n    \"expected \"\n      GHC.Base.<> ( \"else\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_248 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_248) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_249 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_250 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_251 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_252 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_249\n        c1_250 = TreeSitter.Node.nodeStartPoint node_248\n      TreeSitter.Node.TSPoint\n        r2_251\n        c2_252 = TreeSitter.Node.nodeEndPoint node_248\n\nderiving instance GHC.Classes.Eq a_253 => GHC.Classes.Eq (Else a_253)\n\nderiving instance GHC.Classes.Ord a_254 => GHC.Classes.Ord (Else a_254)\n\nderiving instance GHC.Show.Show a_255 => GHC.Show.Show (Else a_255)\n\ninstance AST.Unmarshal.Unmarshal Else\n\ninstance Data.Foldable.Foldable Else where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Else where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Else where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Elsif a = Elsif\n  { ann :: a,\n    alternative :: (GHC.Maybe.Maybe (AST.Parse.Err ((Else GHC.Generics.:+: Elsif) a))),\n    consequence :: (GHC.Maybe.Maybe (AST.Parse.Err (Then a))),\n    condition :: (AST.Parse.Err (Statement a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_256.\n      AST.Traversable1.Class.Traversable1 a_256\n    )\n\ninstance AST.Unmarshal.SymbolMatching Elsif where\n  matchedSymbols _ = [188]\n  showFailure _ node_257 =\n    \"expected \"\n      GHC.Base.<> ( \"elsif\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_257 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_257) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_258 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_259 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_260 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_261 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_258\n        c1_259 = TreeSitter.Node.nodeStartPoint node_257\n      TreeSitter.Node.TSPoint\n        r2_260\n        c2_261 = TreeSitter.Node.nodeEndPoint node_257\n\nderiving instance GHC.Classes.Eq a_262 => GHC.Classes.Eq (Elsif a_262)\n\nderiving instance GHC.Classes.Ord a_263 => GHC.Classes.Ord (Elsif a_263)\n\nderiving instance GHC.Show.Show a_264 => GHC.Show.Show (Elsif a_264)\n\ninstance AST.Unmarshal.Unmarshal Elsif\n\ninstance Data.Foldable.Foldable Elsif where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Elsif where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Elsif where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata EmptyStatement a = EmptyStatement {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_265.\n      AST.Traversable1.Class.Traversable1 a_265\n    )\n\ninstance AST.Unmarshal.SymbolMatching EmptyStatement where\n  matchedSymbols _ = [253]\n  showFailure _ node_266 =\n    \"expected \"\n      GHC.Base.<> ( \"empty_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_266 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_266) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_267 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_268 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_269 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_270 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_267\n        c1_268 = TreeSitter.Node.nodeStartPoint node_266\n      TreeSitter.Node.TSPoint\n        r2_269\n        c2_270 = TreeSitter.Node.nodeEndPoint node_266\n\nderiving instance GHC.Classes.Eq a_271 => GHC.Classes.Eq (EmptyStatement a_271)\n\nderiving instance GHC.Classes.Ord a_272 => GHC.Classes.Ord (EmptyStatement a_272)\n\nderiving instance GHC.Show.Show a_273 => GHC.Show.Show (EmptyStatement a_273)\n\ninstance AST.Unmarshal.Unmarshal EmptyStatement\n\ninstance Data.Foldable.Foldable EmptyStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EmptyStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EmptyStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata EndBlock a = EndBlock\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: EmptyStatement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_274.\n      AST.Traversable1.Class.Traversable1 a_274\n    )\n\ninstance AST.Unmarshal.SymbolMatching EndBlock where\n  matchedSymbols _ = [144]\n  showFailure _ node_275 =\n    \"expected \"\n      GHC.Base.<> ( \"end_block\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_275 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_275) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_276 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_277 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_278 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_279 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_276\n        c1_277 = TreeSitter.Node.nodeStartPoint node_275\n      TreeSitter.Node.TSPoint\n        r2_278\n        c2_279 = TreeSitter.Node.nodeEndPoint node_275\n\nderiving instance GHC.Classes.Eq a_280 => GHC.Classes.Eq (EndBlock a_280)\n\nderiving instance GHC.Classes.Ord a_281 => GHC.Classes.Ord (EndBlock a_281)\n\nderiving instance GHC.Show.Show a_282 => GHC.Show.Show (EndBlock a_282)\n\ninstance AST.Unmarshal.Unmarshal EndBlock\n\ninstance Data.Foldable.Foldable EndBlock where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EndBlock where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EndBlock where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Ensure a = Ensure\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: EmptyStatement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_283.\n      AST.Traversable1.Class.Traversable1 a_283\n    )\n\ninstance AST.Unmarshal.SymbolMatching Ensure where\n  matchedSymbols _ = [192]\n  showFailure _ node_284 =\n    \"expected \"\n      GHC.Base.<> ( \"ensure\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_284 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_284) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_285 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_286 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_287 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_288 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_285\n        c1_286 = TreeSitter.Node.nodeStartPoint node_284\n      TreeSitter.Node.TSPoint\n        r2_287\n        c2_288 = TreeSitter.Node.nodeEndPoint node_284\n\nderiving instance GHC.Classes.Eq a_289 => GHC.Classes.Eq (Ensure a_289)\n\nderiving instance GHC.Classes.Ord a_290 => GHC.Classes.Ord (Ensure a_290)\n\nderiving instance GHC.Show.Show a_291 => GHC.Show.Show (Ensure a_291)\n\ninstance AST.Unmarshal.Unmarshal Ensure\n\ninstance Data.Foldable.Foldable Ensure where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Ensure where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Ensure where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExceptionVariable a = ExceptionVariable\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Lhs a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_292.\n      AST.Traversable1.Class.Traversable1 a_292\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExceptionVariable where\n  matchedSymbols _ = [195]\n  showFailure _ node_293 =\n    \"expected \"\n      GHC.Base.<> ( \"exception_variable\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_293 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_293) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_294 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_295 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_296 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_297 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_294\n        c1_295 = TreeSitter.Node.nodeStartPoint node_293\n      TreeSitter.Node.TSPoint\n        r2_296\n        c2_297 = TreeSitter.Node.nodeEndPoint node_293\n\nderiving instance GHC.Classes.Eq a_298 => GHC.Classes.Eq (ExceptionVariable a_298)\n\nderiving instance GHC.Classes.Ord a_299 => GHC.Classes.Ord (ExceptionVariable a_299)\n\nderiving instance GHC.Show.Show a_300 => GHC.Show.Show (ExceptionVariable a_300)\n\ninstance AST.Unmarshal.Unmarshal ExceptionVariable\n\ninstance Data.Foldable.Foldable ExceptionVariable where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExceptionVariable where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExceptionVariable where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Exceptions a = Exceptions\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Arg GHC.Generics.:+: SplatArgument) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_301.\n      AST.Traversable1.Class.Traversable1 a_301\n    )\n\ninstance AST.Unmarshal.SymbolMatching Exceptions where\n  matchedSymbols _ = [194]\n  showFailure _ node_302 =\n    \"expected \"\n      GHC.Base.<> ( \"exceptions\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_302 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_302) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_303 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_304 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_305 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_306 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_303\n        c1_304 = TreeSitter.Node.nodeStartPoint node_302\n      TreeSitter.Node.TSPoint\n        r2_305\n        c2_306 = TreeSitter.Node.nodeEndPoint node_302\n\nderiving instance GHC.Classes.Eq a_307 => GHC.Classes.Eq (Exceptions a_307)\n\nderiving instance GHC.Classes.Ord a_308 => GHC.Classes.Ord (Exceptions a_308)\n\nderiving instance GHC.Show.Show a_309 => GHC.Show.Show (Exceptions a_309)\n\ninstance AST.Unmarshal.Unmarshal Exceptions\n\ninstance Data.Foldable.Foldable Exceptions where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Exceptions where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Exceptions where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata For a = For\n  { ann :: a,\n    pattern :: (GHC.Base.NonEmpty (AST.Parse.Err ((Lhs GHC.Generics.:+: DestructuredLeftAssignment GHC.Generics.:+: RestAssignment) a))),\n    body :: (AST.Parse.Err (Do a)),\n    value :: (AST.Parse.Err (In a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_310.\n      AST.Traversable1.Class.Traversable1 a_310\n    )\n\ninstance AST.Unmarshal.SymbolMatching For where\n  matchedSymbols _ = [180]\n  showFailure _ node_311 =\n    \"expected \"\n      GHC.Base.<> ( \"for\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_311 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_311) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_312 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_313 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_314 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_315 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_312\n        c1_313 = TreeSitter.Node.nodeStartPoint node_311\n      TreeSitter.Node.TSPoint\n        r2_314\n        c2_315 = TreeSitter.Node.nodeEndPoint node_311\n\nderiving instance GHC.Classes.Eq a_316 => GHC.Classes.Eq (For a_316)\n\nderiving instance GHC.Classes.Ord a_317 => GHC.Classes.Ord (For a_317)\n\nderiving instance GHC.Show.Show a_318 => GHC.Show.Show (For a_318)\n\ninstance AST.Unmarshal.Unmarshal For\n\ninstance Data.Foldable.Foldable For where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor For where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable For where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Hash a = Hash\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((HashSplatArgument GHC.Generics.:+: Pair) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_319.\n      AST.Traversable1.Class.Traversable1 a_319\n    )\n\ninstance AST.Unmarshal.SymbolMatching Hash where\n  matchedSymbols _ = [250]\n  showFailure _ node_320 =\n    \"expected \"\n      GHC.Base.<> ( \"hash\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_320 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_320) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_321 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_322 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_323 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_324 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_321\n        c1_322 = TreeSitter.Node.nodeStartPoint node_320\n      TreeSitter.Node.TSPoint\n        r2_323\n        c2_324 = TreeSitter.Node.nodeEndPoint node_320\n\nderiving instance GHC.Classes.Eq a_325 => GHC.Classes.Eq (Hash a_325)\n\nderiving instance GHC.Classes.Ord a_326 => GHC.Classes.Ord (Hash a_326)\n\nderiving instance GHC.Show.Show a_327 => GHC.Show.Show (Hash a_327)\n\ninstance AST.Unmarshal.Unmarshal Hash\n\ninstance Data.Foldable.Foldable Hash where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Hash where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Hash where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata HashSplatArgument a = HashSplatArgument\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Arg a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_328.\n      AST.Traversable1.Class.Traversable1 a_328\n    )\n\ninstance AST.Unmarshal.SymbolMatching HashSplatArgument where\n  matchedSymbols _ = [211]\n  showFailure _ node_329 =\n    \"expected \"\n      GHC.Base.<> ( \"hash_splat_argument\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_329 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_329) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_330 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_331 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_332 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_333 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_330\n        c1_331 = TreeSitter.Node.nodeStartPoint node_329\n      TreeSitter.Node.TSPoint\n        r2_332\n        c2_333 = TreeSitter.Node.nodeEndPoint node_329\n\nderiving instance GHC.Classes.Eq a_334 => GHC.Classes.Eq (HashSplatArgument a_334)\n\nderiving instance GHC.Classes.Ord a_335 => GHC.Classes.Ord (HashSplatArgument a_335)\n\nderiving instance GHC.Show.Show a_336 => GHC.Show.Show (HashSplatArgument a_336)\n\ninstance AST.Unmarshal.Unmarshal HashSplatArgument\n\ninstance Data.Foldable.Foldable HashSplatArgument where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor HashSplatArgument where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable HashSplatArgument where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata HashSplatParameter a = HashSplatParameter\n  { ann :: a,\n    name :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_337.\n      AST.Traversable1.Class.Traversable1 a_337\n    )\n\ninstance AST.Unmarshal.SymbolMatching HashSplatParameter where\n  matchedSymbols _ = [155]\n  showFailure _ node_338 =\n    \"expected \"\n      GHC.Base.<> ( \"hash_splat_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_338 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_338) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_339 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_340 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_341 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_342 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_339\n        c1_340 = TreeSitter.Node.nodeStartPoint node_338\n      TreeSitter.Node.TSPoint\n        r2_341\n        c2_342 = TreeSitter.Node.nodeEndPoint node_338\n\nderiving instance GHC.Classes.Eq a_343 => GHC.Classes.Eq (HashSplatParameter a_343)\n\nderiving instance GHC.Classes.Ord a_344 => GHC.Classes.Ord (HashSplatParameter a_344)\n\nderiving instance GHC.Show.Show a_345 => GHC.Show.Show (HashSplatParameter a_345)\n\ninstance AST.Unmarshal.Unmarshal HashSplatParameter\n\ninstance Data.Foldable.Foldable HashSplatParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor HashSplatParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable HashSplatParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata If a = If\n  { ann :: a,\n    alternative :: (GHC.Maybe.Maybe (AST.Parse.Err ((Else GHC.Generics.:+: Elsif) a))),\n    consequence :: (GHC.Maybe.Maybe (AST.Parse.Err (Then a))),\n    condition :: (AST.Parse.Err (Statement a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_346.\n      AST.Traversable1.Class.Traversable1 a_346\n    )\n\ninstance AST.Unmarshal.SymbolMatching If where\n  matchedSymbols _ = [186]\n  showFailure _ node_347 =\n    \"expected \"\n      GHC.Base.<> ( \"if\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_347 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_347) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_348 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_349 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_350 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_351 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_348\n        c1_349 = TreeSitter.Node.nodeStartPoint node_347\n      TreeSitter.Node.TSPoint\n        r2_350\n        c2_351 = TreeSitter.Node.nodeEndPoint node_347\n\nderiving instance GHC.Classes.Eq a_352 => GHC.Classes.Eq (If a_352)\n\nderiving instance GHC.Classes.Ord a_353 => GHC.Classes.Ord (If a_353)\n\nderiving instance GHC.Show.Show a_354 => GHC.Show.Show (If a_354)\n\ninstance AST.Unmarshal.Unmarshal If\n\ninstance Data.Foldable.Foldable If where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor If where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable If where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IfModifier a = IfModifier\n  { ann :: a,\n    body :: (AST.Parse.Err (Statement a)),\n    condition :: (AST.Parse.Err ((Arg GHC.Generics.:+: Break GHC.Generics.:+: MethodCall GHC.Generics.:+: Next GHC.Generics.:+: Return GHC.Generics.:+: Yield) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_355.\n      AST.Traversable1.Class.Traversable1 a_355\n    )\n\ninstance AST.Unmarshal.SymbolMatching IfModifier where\n  matchedSymbols _ = [173]\n  showFailure _ node_356 =\n    \"expected \"\n      GHC.Base.<> ( \"if_modifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_356 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_356) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_357 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_358 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_359 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_360 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_357\n        c1_358 = TreeSitter.Node.nodeStartPoint node_356\n      TreeSitter.Node.TSPoint\n        r2_359\n        c2_360 = TreeSitter.Node.nodeEndPoint node_356\n\nderiving instance GHC.Classes.Eq a_361 => GHC.Classes.Eq (IfModifier a_361)\n\nderiving instance GHC.Classes.Ord a_362 => GHC.Classes.Ord (IfModifier a_362)\n\nderiving instance GHC.Show.Show a_363 => GHC.Show.Show (IfModifier a_363)\n\ninstance AST.Unmarshal.Unmarshal IfModifier\n\ninstance Data.Foldable.Foldable IfModifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IfModifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IfModifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata In a = In {ann :: a, extraChildren :: (AST.Parse.Err (Arg a))}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_364.\n      AST.Traversable1.Class.Traversable1 a_364\n    )\n\ninstance AST.Unmarshal.SymbolMatching In where\n  matchedSymbols _ = [181]\n  showFailure _ node_365 =\n    \"expected \"\n      GHC.Base.<> ( \"in\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_365 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_365) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_366 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_367 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_368 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_369 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_366\n        c1_367 = TreeSitter.Node.nodeStartPoint node_365\n      TreeSitter.Node.TSPoint\n        r2_368\n        c2_369 = TreeSitter.Node.nodeEndPoint node_365\n\nderiving instance GHC.Classes.Eq a_370 => GHC.Classes.Eq (In a_370)\n\nderiving instance GHC.Classes.Ord a_371 => GHC.Classes.Ord (In a_371)\n\nderiving instance GHC.Show.Show a_372 => GHC.Show.Show (In a_372)\n\ninstance AST.Unmarshal.Unmarshal In\n\ninstance Data.Foldable.Foldable In where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor In where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable In where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Interpolation a = Interpolation\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Statement a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_373.\n      AST.Traversable1.Class.Traversable1 a_373\n    )\n\ninstance AST.Unmarshal.SymbolMatching Interpolation where\n  matchedSymbols _ = [240]\n  showFailure _ node_374 =\n    \"expected \"\n      GHC.Base.<> ( \"interpolation\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_374 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_374) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_375 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_376 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_377 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_378 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_375\n        c1_376 = TreeSitter.Node.nodeStartPoint node_374\n      TreeSitter.Node.TSPoint\n        r2_377\n        c2_378 = TreeSitter.Node.nodeEndPoint node_374\n\nderiving instance GHC.Classes.Eq a_379 => GHC.Classes.Eq (Interpolation a_379)\n\nderiving instance GHC.Classes.Ord a_380 => GHC.Classes.Ord (Interpolation a_380)\n\nderiving instance GHC.Show.Show a_381 => GHC.Show.Show (Interpolation a_381)\n\ninstance AST.Unmarshal.Unmarshal Interpolation\n\ninstance Data.Foldable.Foldable Interpolation where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Interpolation where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Interpolation where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata KeywordParameter a = KeywordParameter\n  { ann :: a,\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err (Arg a))),\n    name :: (AST.Parse.Err (Identifier a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_382.\n      AST.Traversable1.Class.Traversable1 a_382\n    )\n\ninstance AST.Unmarshal.SymbolMatching KeywordParameter where\n  matchedSymbols _ = [157]\n  showFailure _ node_383 =\n    \"expected \"\n      GHC.Base.<> ( \"keyword_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_383 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_383) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_384 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_385 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_386 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_387 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_384\n        c1_385 = TreeSitter.Node.nodeStartPoint node_383\n      TreeSitter.Node.TSPoint\n        r2_386\n        c2_387 = TreeSitter.Node.nodeEndPoint node_383\n\nderiving instance GHC.Classes.Eq a_388 => GHC.Classes.Eq (KeywordParameter a_388)\n\nderiving instance GHC.Classes.Ord a_389 => GHC.Classes.Ord (KeywordParameter a_389)\n\nderiving instance GHC.Show.Show a_390 => GHC.Show.Show (KeywordParameter a_390)\n\ninstance AST.Unmarshal.Unmarshal KeywordParameter\n\ninstance Data.Foldable.Foldable KeywordParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor KeywordParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable KeywordParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Lambda a = Lambda\n  { ann :: a,\n    body :: (AST.Parse.Err ((Block GHC.Generics.:+: DoBlock) a)),\n    parameters :: (GHC.Maybe.Maybe (AST.Parse.Err (LambdaParameters a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_391.\n      AST.Traversable1.Class.Traversable1 a_391\n    )\n\ninstance AST.Unmarshal.SymbolMatching Lambda where\n  matchedSymbols _ = [252]\n  showFailure _ node_392 =\n    \"expected \"\n      GHC.Base.<> ( \"lambda\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_392 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_392) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_393 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_394 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_395 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_396 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_393\n        c1_394 = TreeSitter.Node.nodeStartPoint node_392\n      TreeSitter.Node.TSPoint\n        r2_395\n        c2_396 = TreeSitter.Node.nodeEndPoint node_392\n\nderiving instance GHC.Classes.Eq a_397 => GHC.Classes.Eq (Lambda a_397)\n\nderiving instance GHC.Classes.Ord a_398 => GHC.Classes.Ord (Lambda a_398)\n\nderiving instance GHC.Show.Show a_399 => GHC.Show.Show (Lambda a_399)\n\ninstance AST.Unmarshal.Unmarshal Lambda\n\ninstance Data.Foldable.Foldable Lambda where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Lambda where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Lambda where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata LambdaParameters a = LambdaParameters\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((BlockParameter GHC.Generics.:+: DestructuredParameter GHC.Generics.:+: HashSplatParameter GHC.Generics.:+: Identifier GHC.Generics.:+: KeywordParameter GHC.Generics.:+: OptionalParameter GHC.Generics.:+: SplatParameter) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_400.\n      AST.Traversable1.Class.Traversable1 a_400\n    )\n\ninstance AST.Unmarshal.SymbolMatching LambdaParameters where\n  matchedSymbols _ = [276]\n  showFailure _ node_401 =\n    \"expected \"\n      GHC.Base.<> ( \"lambda_parameters\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_401 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_401) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_402 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_403 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_404 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_405 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_402\n        c1_403 = TreeSitter.Node.nodeStartPoint node_401\n      TreeSitter.Node.TSPoint\n        r2_404\n        c2_405 = TreeSitter.Node.nodeEndPoint node_401\n\nderiving instance GHC.Classes.Eq a_406 => GHC.Classes.Eq (LambdaParameters a_406)\n\nderiving instance GHC.Classes.Ord a_407 => GHC.Classes.Ord (LambdaParameters a_407)\n\nderiving instance GHC.Show.Show a_408 => GHC.Show.Show (LambdaParameters a_408)\n\ninstance AST.Unmarshal.Unmarshal LambdaParameters\n\ninstance Data.Foldable.Foldable LambdaParameters where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor LambdaParameters where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable LambdaParameters where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata LeftAssignmentList a = LeftAssignmentList\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Lhs GHC.Generics.:+: DestructuredLeftAssignment GHC.Generics.:+: RestAssignment) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_409.\n      AST.Traversable1.Class.Traversable1 a_409\n    )\n\ninstance AST.Unmarshal.SymbolMatching LeftAssignmentList where\n  matchedSymbols _ = [227]\n  showFailure _ node_410 =\n    \"expected \"\n      GHC.Base.<> ( \"left_assignment_list\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_410 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_410) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_411 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_412 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_413 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_414 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_411\n        c1_412 = TreeSitter.Node.nodeStartPoint node_410\n      TreeSitter.Node.TSPoint\n        r2_413\n        c2_414 = TreeSitter.Node.nodeEndPoint node_410\n\nderiving instance GHC.Classes.Eq a_415 => GHC.Classes.Eq (LeftAssignmentList a_415)\n\nderiving instance GHC.Classes.Ord a_416 => GHC.Classes.Ord (LeftAssignmentList a_416)\n\nderiving instance GHC.Show.Show a_417 => GHC.Show.Show (LeftAssignmentList a_417)\n\ninstance AST.Unmarshal.Unmarshal LeftAssignmentList\n\ninstance Data.Foldable.Foldable LeftAssignmentList where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor LeftAssignmentList where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable LeftAssignmentList where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Method a = Method\n  { ann :: a,\n    name :: (AST.Parse.Err (MethodName a)),\n    parameters :: (GHC.Maybe.Maybe (AST.Parse.Err (MethodParameters a))),\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: Else GHC.Generics.:+: EmptyStatement GHC.Generics.:+: Ensure GHC.Generics.:+: Rescue) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_418.\n      AST.Traversable1.Class.Traversable1 a_418\n    )\n\ninstance AST.Unmarshal.SymbolMatching Method where\n  matchedSymbols _ = [146]\n  showFailure _ node_419 =\n    \"expected \"\n      GHC.Base.<> ( \"method\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_419 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_419) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_420 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_421 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_422 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_423 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_420\n        c1_421 = TreeSitter.Node.nodeStartPoint node_419\n      TreeSitter.Node.TSPoint\n        r2_422\n        c2_423 = TreeSitter.Node.nodeEndPoint node_419\n\nderiving instance GHC.Classes.Eq a_424 => GHC.Classes.Eq (Method a_424)\n\nderiving instance GHC.Classes.Ord a_425 => GHC.Classes.Ord (Method a_425)\n\nderiving instance GHC.Show.Show a_426 => GHC.Show.Show (Method a_426)\n\ninstance AST.Unmarshal.Unmarshal Method\n\ninstance Data.Foldable.Foldable Method where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Method where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Method where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MethodCall a = MethodCall\n  { ann :: a,\n    arguments :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a))),\n    block :: (GHC.Maybe.Maybe (AST.Parse.Err ((Block GHC.Generics.:+: DoBlock) a))),\n    method :: (AST.Parse.Err ((Variable GHC.Generics.:+: Call GHC.Generics.:+: ScopeResolution) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_427.\n      AST.Traversable1.Class.Traversable1 a_427\n    )\n\ninstance AST.Unmarshal.SymbolMatching MethodCall where\n  matchedSymbols _ = [204, 205]\n  showFailure _ node_428 =\n    \"expected \"\n      GHC.Base.<> ( \"method_call, method_call\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_428 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_428) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_429 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_430 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_431 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_432 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_429\n        c1_430 = TreeSitter.Node.nodeStartPoint node_428\n      TreeSitter.Node.TSPoint\n        r2_431\n        c2_432 = TreeSitter.Node.nodeEndPoint node_428\n\nderiving instance GHC.Classes.Eq a_433 => GHC.Classes.Eq (MethodCall a_433)\n\nderiving instance GHC.Classes.Ord a_434 => GHC.Classes.Ord (MethodCall a_434)\n\nderiving instance GHC.Show.Show a_435 => GHC.Show.Show (MethodCall a_435)\n\ninstance AST.Unmarshal.Unmarshal MethodCall\n\ninstance Data.Foldable.Foldable MethodCall where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MethodCall where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MethodCall where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MethodParameters a = MethodParameters\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((BlockParameter GHC.Generics.:+: DestructuredParameter GHC.Generics.:+: HashSplatParameter GHC.Generics.:+: Identifier GHC.Generics.:+: KeywordParameter GHC.Generics.:+: OptionalParameter GHC.Generics.:+: SplatParameter) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_436.\n      AST.Traversable1.Class.Traversable1 a_436\n    )\n\ninstance AST.Unmarshal.SymbolMatching MethodParameters where\n  matchedSymbols _ = [277]\n  showFailure _ node_437 =\n    \"expected \"\n      GHC.Base.<> ( \"method_parameters\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_437 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_437) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_438 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_439 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_440 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_441 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_438\n        c1_439 = TreeSitter.Node.nodeStartPoint node_437\n      TreeSitter.Node.TSPoint\n        r2_440\n        c2_441 = TreeSitter.Node.nodeEndPoint node_437\n\nderiving instance GHC.Classes.Eq a_442 => GHC.Classes.Eq (MethodParameters a_442)\n\nderiving instance GHC.Classes.Ord a_443 => GHC.Classes.Ord (MethodParameters a_443)\n\nderiving instance GHC.Show.Show a_444 => GHC.Show.Show (MethodParameters a_444)\n\ninstance AST.Unmarshal.Unmarshal MethodParameters\n\ninstance Data.Foldable.Foldable MethodParameters where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MethodParameters where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MethodParameters where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Module a = Module\n  { ann :: a,\n    name :: (AST.Parse.Err ((Constant GHC.Generics.:+: ScopeResolution) a)),\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: Else GHC.Generics.:+: EmptyStatement GHC.Generics.:+: Ensure GHC.Generics.:+: Rescue) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_445.\n      AST.Traversable1.Class.Traversable1 a_445\n    )\n\ninstance AST.Unmarshal.SymbolMatching Module where\n  matchedSymbols _ = [162]\n  showFailure _ node_446 =\n    \"expected \"\n      GHC.Base.<> ( \"module\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_446 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_446) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_447 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_448 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_449 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_450 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_447\n        c1_448 = TreeSitter.Node.nodeStartPoint node_446\n      TreeSitter.Node.TSPoint\n        r2_449\n        c2_450 = TreeSitter.Node.nodeEndPoint node_446\n\nderiving instance GHC.Classes.Eq a_451 => GHC.Classes.Eq (Module a_451)\n\nderiving instance GHC.Classes.Ord a_452 => GHC.Classes.Ord (Module a_452)\n\nderiving instance GHC.Show.Show a_453 => GHC.Show.Show (Module a_453)\n\ninstance AST.Unmarshal.Unmarshal Module\n\ninstance Data.Foldable.Foldable Module where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Module where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Module where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Next a = Next\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_454.\n      AST.Traversable1.Class.Traversable1 a_454\n    )\n\ninstance AST.Unmarshal.SymbolMatching Next where\n  matchedSymbols _ = [166, 170]\n  showFailure _ node_455 =\n    \"expected \"\n      GHC.Base.<> ( \"next, next\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_455 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_455) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_456 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_457 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_458 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_459 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_456\n        c1_457 = TreeSitter.Node.nodeStartPoint node_455\n      TreeSitter.Node.TSPoint\n        r2_458\n        c2_459 = TreeSitter.Node.nodeEndPoint node_455\n\nderiving instance GHC.Classes.Eq a_460 => GHC.Classes.Eq (Next a_460)\n\nderiving instance GHC.Classes.Ord a_461 => GHC.Classes.Ord (Next a_461)\n\nderiving instance GHC.Show.Show a_462 => GHC.Show.Show (Next a_462)\n\ninstance AST.Unmarshal.Unmarshal Next\n\ninstance Data.Foldable.Foldable Next where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Next where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Next where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Operator a = Operator {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_463.\n      AST.Traversable1.Class.Traversable1 a_463\n    )\n\ninstance AST.Unmarshal.SymbolMatching Operator where\n  matchedSymbols _ = [233]\n  showFailure _ node_464 =\n    \"expected \"\n      GHC.Base.<> ( \"operator\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_464 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_464) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_465 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_466 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_467 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_468 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_465\n        c1_466 = TreeSitter.Node.nodeStartPoint node_464\n      TreeSitter.Node.TSPoint\n        r2_467\n        c2_468 = TreeSitter.Node.nodeEndPoint node_464\n\nderiving instance GHC.Classes.Eq a_469 => GHC.Classes.Eq (Operator a_469)\n\nderiving instance GHC.Classes.Ord a_470 => GHC.Classes.Ord (Operator a_470)\n\nderiving instance GHC.Show.Show a_471 => GHC.Show.Show (Operator a_471)\n\ninstance AST.Unmarshal.Unmarshal Operator\n\ninstance Data.Foldable.Foldable Operator where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Operator where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Operator where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata OperatorAssignment a = OperatorAssignment\n  { ann :: a,\n    left :: (AST.Parse.Err (Lhs a)),\n    right :: (AST.Parse.Err ((Arg GHC.Generics.:+: Break GHC.Generics.:+: MethodCall GHC.Generics.:+: Next GHC.Generics.:+: Return GHC.Generics.:+: Yield) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_472.\n      AST.Traversable1.Class.Traversable1 a_472\n    )\n\ninstance AST.Unmarshal.SymbolMatching OperatorAssignment where\n  matchedSymbols _ = [217, 218]\n  showFailure _ node_473 =\n    \"expected \"\n      GHC.Base.<> ( \"operator_assignment, operator_assignment\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_473 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_473) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_474 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_475 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_476 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_477 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_474\n        c1_475 = TreeSitter.Node.nodeStartPoint node_473\n      TreeSitter.Node.TSPoint\n        r2_476\n        c2_477 = TreeSitter.Node.nodeEndPoint node_473\n\nderiving instance GHC.Classes.Eq a_478 => GHC.Classes.Eq (OperatorAssignment a_478)\n\nderiving instance GHC.Classes.Ord a_479 => GHC.Classes.Ord (OperatorAssignment a_479)\n\nderiving instance GHC.Show.Show a_480 => GHC.Show.Show (OperatorAssignment a_480)\n\ninstance AST.Unmarshal.Unmarshal OperatorAssignment\n\ninstance Data.Foldable.Foldable OperatorAssignment where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor OperatorAssignment where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable OperatorAssignment where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata OptionalParameter a = OptionalParameter\n  { ann :: a,\n    value :: (AST.Parse.Err (Arg a)),\n    name :: (AST.Parse.Err (Identifier a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_481.\n      AST.Traversable1.Class.Traversable1 a_481\n    )\n\ninstance AST.Unmarshal.SymbolMatching OptionalParameter where\n  matchedSymbols _ = [158]\n  showFailure _ node_482 =\n    \"expected \"\n      GHC.Base.<> ( \"optional_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_482 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_482) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_483 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_484 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_485 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_486 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_483\n        c1_484 = TreeSitter.Node.nodeStartPoint node_482\n      TreeSitter.Node.TSPoint\n        r2_485\n        c2_486 = TreeSitter.Node.nodeEndPoint node_482\n\nderiving instance GHC.Classes.Eq a_487 => GHC.Classes.Eq (OptionalParameter a_487)\n\nderiving instance GHC.Classes.Ord a_488 => GHC.Classes.Ord (OptionalParameter a_488)\n\nderiving instance GHC.Show.Show a_489 => GHC.Show.Show (OptionalParameter a_489)\n\ninstance AST.Unmarshal.Unmarshal OptionalParameter\n\ninstance Data.Foldable.Foldable OptionalParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor OptionalParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable OptionalParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Pair a = Pair\n  { ann :: a,\n    value :: (AST.Parse.Err (Arg a)),\n    key :: (AST.Parse.Err ((Arg GHC.Generics.:+: String GHC.Generics.:+: Symbol) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_490.\n      AST.Traversable1.Class.Traversable1 a_490\n    )\n\ninstance AST.Unmarshal.SymbolMatching Pair where\n  matchedSymbols _ = [251]\n  showFailure _ node_491 =\n    \"expected \"\n      GHC.Base.<> ( \"pair\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_491 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_491) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_492 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_493 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_494 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_495 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_492\n        c1_493 = TreeSitter.Node.nodeStartPoint node_491\n      TreeSitter.Node.TSPoint\n        r2_494\n        c2_495 = TreeSitter.Node.nodeEndPoint node_491\n\nderiving instance GHC.Classes.Eq a_496 => GHC.Classes.Eq (Pair a_496)\n\nderiving instance GHC.Classes.Ord a_497 => GHC.Classes.Ord (Pair a_497)\n\nderiving instance GHC.Show.Show a_498 => GHC.Show.Show (Pair a_498)\n\ninstance AST.Unmarshal.Unmarshal Pair\n\ninstance Data.Foldable.Foldable Pair where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Pair where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Pair where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ParenthesizedStatements a = ParenthesizedStatements\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: EmptyStatement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_499.\n      AST.Traversable1.Class.Traversable1 a_499\n    )\n\ninstance AST.Unmarshal.SymbolMatching ParenthesizedStatements where\n  matchedSymbols _ = [200]\n  showFailure _ node_500 =\n    \"expected \"\n      GHC.Base.<> ( \"parenthesized_statements\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_500 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_500) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_501 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_502 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_503 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_504 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_501\n        c1_502 = TreeSitter.Node.nodeStartPoint node_500\n      TreeSitter.Node.TSPoint\n        r2_503\n        c2_504 = TreeSitter.Node.nodeEndPoint node_500\n\nderiving instance GHC.Classes.Eq a_505 => GHC.Classes.Eq (ParenthesizedStatements a_505)\n\nderiving instance GHC.Classes.Ord a_506 => GHC.Classes.Ord (ParenthesizedStatements a_506)\n\nderiving instance GHC.Show.Show a_507 => GHC.Show.Show (ParenthesizedStatements a_507)\n\ninstance AST.Unmarshal.Unmarshal ParenthesizedStatements\n\ninstance Data.Foldable.Foldable ParenthesizedStatements where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ParenthesizedStatements where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ParenthesizedStatements where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Pattern a = Pattern\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Arg GHC.Generics.:+: SplatArgument) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_508.\n      AST.Traversable1.Class.Traversable1 a_508\n    )\n\ninstance AST.Unmarshal.SymbolMatching Pattern where\n  matchedSymbols _ = [185]\n  showFailure _ node_509 =\n    \"expected \"\n      GHC.Base.<> ( \"pattern\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_509 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_509) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_510 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_511 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_512 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_513 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_510\n        c1_511 = TreeSitter.Node.nodeStartPoint node_509\n      TreeSitter.Node.TSPoint\n        r2_512\n        c2_513 = TreeSitter.Node.nodeEndPoint node_509\n\nderiving instance GHC.Classes.Eq a_514 => GHC.Classes.Eq (Pattern a_514)\n\nderiving instance GHC.Classes.Ord a_515 => GHC.Classes.Ord (Pattern a_515)\n\nderiving instance GHC.Show.Show a_516 => GHC.Show.Show (Pattern a_516)\n\ninstance AST.Unmarshal.Unmarshal Pattern\n\ninstance Data.Foldable.Foldable Pattern where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Pattern where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Pattern where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Program a = Program\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: EmptyStatement GHC.Generics.:+: Uninterpreted) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_517.\n      AST.Traversable1.Class.Traversable1 a_517\n    )\n\ninstance AST.Unmarshal.SymbolMatching Program where\n  matchedSymbols _ = [141]\n  showFailure _ node_518 =\n    \"expected \"\n      GHC.Base.<> ( \"program\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_518 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_518) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_519 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_520 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_521 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_522 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_519\n        c1_520 = TreeSitter.Node.nodeStartPoint node_518\n      TreeSitter.Node.TSPoint\n        r2_521\n        c2_522 = TreeSitter.Node.nodeEndPoint node_518\n\nderiving instance GHC.Classes.Eq a_523 => GHC.Classes.Eq (Program a_523)\n\nderiving instance GHC.Classes.Ord a_524 => GHC.Classes.Ord (Program a_524)\n\nderiving instance GHC.Show.Show a_525 => GHC.Show.Show (Program a_525)\n\ninstance AST.Unmarshal.Unmarshal Program\n\ninstance Data.Foldable.Foldable Program where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Program where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Program where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Range a = Range\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Arg a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_526.\n      AST.Traversable1.Class.Traversable1 a_526\n    )\n\ninstance AST.Unmarshal.SymbolMatching Range where\n  matchedSymbols _ = [220]\n  showFailure _ node_527 =\n    \"expected \"\n      GHC.Base.<> ( \"range\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_527 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_527) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_528 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_529 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_530 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_531 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_528\n        c1_529 = TreeSitter.Node.nodeStartPoint node_527\n      TreeSitter.Node.TSPoint\n        r2_530\n        c2_531 = TreeSitter.Node.nodeEndPoint node_527\n\nderiving instance GHC.Classes.Eq a_532 => GHC.Classes.Eq (Range a_532)\n\nderiving instance GHC.Classes.Ord a_533 => GHC.Classes.Ord (Range a_533)\n\nderiving instance GHC.Show.Show a_534 => GHC.Show.Show (Range a_534)\n\ninstance AST.Unmarshal.Unmarshal Range\n\ninstance Data.Foldable.Foldable Range where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Range where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Range where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Rational a = Rational {ann :: a, extraChildren :: (AST.Parse.Err (Integer a))}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_535.\n      AST.Traversable1.Class.Traversable1 a_535\n    )\n\ninstance AST.Unmarshal.SymbolMatching Rational where\n  matchedSymbols _ = [238]\n  showFailure _ node_536 =\n    \"expected \"\n      GHC.Base.<> ( \"rational\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_536 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_536) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_537 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_538 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_539 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_540 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_537\n        c1_538 = TreeSitter.Node.nodeStartPoint node_536\n      TreeSitter.Node.TSPoint\n        r2_539\n        c2_540 = TreeSitter.Node.nodeEndPoint node_536\n\nderiving instance GHC.Classes.Eq a_541 => GHC.Classes.Eq (Rational a_541)\n\nderiving instance GHC.Classes.Ord a_542 => GHC.Classes.Ord (Rational a_542)\n\nderiving instance GHC.Show.Show a_543 => GHC.Show.Show (Rational a_543)\n\ninstance AST.Unmarshal.Unmarshal Rational\n\ninstance Data.Foldable.Foldable Rational where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Rational where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Rational where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Redo a = Redo\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_544.\n      AST.Traversable1.Class.Traversable1 a_544\n    )\n\ninstance AST.Unmarshal.SymbolMatching Redo where\n  matchedSymbols _ = [171]\n  showFailure _ node_545 =\n    \"expected \"\n      GHC.Base.<> ( \"redo\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_545 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_545) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_546 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_547 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_548 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_549 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_546\n        c1_547 = TreeSitter.Node.nodeStartPoint node_545\n      TreeSitter.Node.TSPoint\n        r2_548\n        c2_549 = TreeSitter.Node.nodeEndPoint node_545\n\nderiving instance GHC.Classes.Eq a_550 => GHC.Classes.Eq (Redo a_550)\n\nderiving instance GHC.Classes.Ord a_551 => GHC.Classes.Ord (Redo a_551)\n\nderiving instance GHC.Show.Show a_552 => GHC.Show.Show (Redo a_552)\n\ninstance AST.Unmarshal.Unmarshal Redo\n\ninstance Data.Foldable.Foldable Redo where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Redo where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Redo where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Regex a = Regex\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((EscapeSequence GHC.Generics.:+: Interpolation) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_553.\n      AST.Traversable1.Class.Traversable1 a_553\n    )\n\ninstance AST.Unmarshal.SymbolMatching Regex where\n  matchedSymbols _ = [246]\n  showFailure _ node_554 =\n    \"expected \"\n      GHC.Base.<> ( \"regex\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_554 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_554) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_555 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_556 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_557 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_558 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_555\n        c1_556 = TreeSitter.Node.nodeStartPoint node_554\n      TreeSitter.Node.TSPoint\n        r2_557\n        c2_558 = TreeSitter.Node.nodeEndPoint node_554\n\nderiving instance GHC.Classes.Eq a_559 => GHC.Classes.Eq (Regex a_559)\n\nderiving instance GHC.Classes.Ord a_560 => GHC.Classes.Ord (Regex a_560)\n\nderiving instance GHC.Show.Show a_561 => GHC.Show.Show (Regex a_561)\n\ninstance AST.Unmarshal.Unmarshal Regex\n\ninstance Data.Foldable.Foldable Regex where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Regex where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Regex where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Rescue a = Rescue\n  { ann :: a,\n    exceptions :: (GHC.Maybe.Maybe (AST.Parse.Err (Exceptions a))),\n    body :: (GHC.Maybe.Maybe (AST.Parse.Err (Then a))),\n    variable :: (GHC.Maybe.Maybe (AST.Parse.Err (ExceptionVariable a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_562.\n      AST.Traversable1.Class.Traversable1 a_562\n    )\n\ninstance AST.Unmarshal.SymbolMatching Rescue where\n  matchedSymbols _ = [193]\n  showFailure _ node_563 =\n    \"expected \"\n      GHC.Base.<> ( \"rescue\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_563 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_563) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_564 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_565 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_566 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_567 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_564\n        c1_565 = TreeSitter.Node.nodeStartPoint node_563\n      TreeSitter.Node.TSPoint\n        r2_566\n        c2_567 = TreeSitter.Node.nodeEndPoint node_563\n\nderiving instance GHC.Classes.Eq a_568 => GHC.Classes.Eq (Rescue a_568)\n\nderiving instance GHC.Classes.Ord a_569 => GHC.Classes.Ord (Rescue a_569)\n\nderiving instance GHC.Show.Show a_570 => GHC.Show.Show (Rescue a_570)\n\ninstance AST.Unmarshal.Unmarshal Rescue\n\ninstance Data.Foldable.Foldable Rescue where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Rescue where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Rescue where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata RescueModifier a = RescueModifier\n  { ann :: a,\n    body :: (AST.Parse.Err (Statement a)),\n    handler :: (AST.Parse.Err ((Arg GHC.Generics.:+: Break GHC.Generics.:+: MethodCall GHC.Generics.:+: Next GHC.Generics.:+: Return GHC.Generics.:+: Yield) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_571.\n      AST.Traversable1.Class.Traversable1 a_571\n    )\n\ninstance AST.Unmarshal.SymbolMatching RescueModifier where\n  matchedSymbols _ = [177]\n  showFailure _ node_572 =\n    \"expected \"\n      GHC.Base.<> ( \"rescue_modifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_572 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_572) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_573 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_574 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_575 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_576 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_573\n        c1_574 = TreeSitter.Node.nodeStartPoint node_572\n      TreeSitter.Node.TSPoint\n        r2_575\n        c2_576 = TreeSitter.Node.nodeEndPoint node_572\n\nderiving instance GHC.Classes.Eq a_577 => GHC.Classes.Eq (RescueModifier a_577)\n\nderiving instance GHC.Classes.Ord a_578 => GHC.Classes.Ord (RescueModifier a_578)\n\nderiving instance GHC.Show.Show a_579 => GHC.Show.Show (RescueModifier a_579)\n\ninstance AST.Unmarshal.Unmarshal RescueModifier\n\ninstance Data.Foldable.Foldable RescueModifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RescueModifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RescueModifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata RestAssignment a = RestAssignment\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Lhs a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_580.\n      AST.Traversable1.Class.Traversable1 a_580\n    )\n\ninstance AST.Unmarshal.SymbolMatching RestAssignment where\n  matchedSymbols _ = [230]\n  showFailure _ node_581 =\n    \"expected \"\n      GHC.Base.<> ( \"rest_assignment\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_581 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_581) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_582 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_583 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_584 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_585 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_582\n        c1_583 = TreeSitter.Node.nodeStartPoint node_581\n      TreeSitter.Node.TSPoint\n        r2_584\n        c2_585 = TreeSitter.Node.nodeEndPoint node_581\n\nderiving instance GHC.Classes.Eq a_586 => GHC.Classes.Eq (RestAssignment a_586)\n\nderiving instance GHC.Classes.Ord a_587 => GHC.Classes.Ord (RestAssignment a_587)\n\nderiving instance GHC.Show.Show a_588 => GHC.Show.Show (RestAssignment a_588)\n\ninstance AST.Unmarshal.Unmarshal RestAssignment\n\ninstance Data.Foldable.Foldable RestAssignment where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RestAssignment where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RestAssignment where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Retry a = Retry\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_589.\n      AST.Traversable1.Class.Traversable1 a_589\n    )\n\ninstance AST.Unmarshal.SymbolMatching Retry where\n  matchedSymbols _ = [172]\n  showFailure _ node_590 =\n    \"expected \"\n      GHC.Base.<> ( \"retry\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_590 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_590) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_591 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_592 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_593 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_594 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_591\n        c1_592 = TreeSitter.Node.nodeStartPoint node_590\n      TreeSitter.Node.TSPoint\n        r2_593\n        c2_594 = TreeSitter.Node.nodeEndPoint node_590\n\nderiving instance GHC.Classes.Eq a_595 => GHC.Classes.Eq (Retry a_595)\n\nderiving instance GHC.Classes.Ord a_596 => GHC.Classes.Ord (Retry a_596)\n\nderiving instance GHC.Show.Show a_597 => GHC.Show.Show (Retry a_597)\n\ninstance AST.Unmarshal.Unmarshal Retry\n\ninstance Data.Foldable.Foldable Retry where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Retry where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Retry where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Return a = Return\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_598.\n      AST.Traversable1.Class.Traversable1 a_598\n    )\n\ninstance AST.Unmarshal.SymbolMatching Return where\n  matchedSymbols _ = [163, 167]\n  showFailure _ node_599 =\n    \"expected \"\n      GHC.Base.<> ( \"return, return\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_599 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_599) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_600 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_601 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_602 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_603 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_600\n        c1_601 = TreeSitter.Node.nodeStartPoint node_599\n      TreeSitter.Node.TSPoint\n        r2_602\n        c2_603 = TreeSitter.Node.nodeEndPoint node_599\n\nderiving instance GHC.Classes.Eq a_604 => GHC.Classes.Eq (Return a_604)\n\nderiving instance GHC.Classes.Ord a_605 => GHC.Classes.Ord (Return a_605)\n\nderiving instance GHC.Show.Show a_606 => GHC.Show.Show (Return a_606)\n\ninstance AST.Unmarshal.Unmarshal Return\n\ninstance Data.Foldable.Foldable Return where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Return where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Return where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata RightAssignmentList a = RightAssignmentList\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Arg GHC.Generics.:+: SplatArgument) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_607.\n      AST.Traversable1.Class.Traversable1 a_607\n    )\n\ninstance AST.Unmarshal.SymbolMatching RightAssignmentList where\n  matchedSymbols _ = [226]\n  showFailure _ node_608 =\n    \"expected \"\n      GHC.Base.<> ( \"right_assignment_list\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_608 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_608) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_609 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_610 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_611 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_612 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_609\n        c1_610 = TreeSitter.Node.nodeStartPoint node_608\n      TreeSitter.Node.TSPoint\n        r2_611\n        c2_612 = TreeSitter.Node.nodeEndPoint node_608\n\nderiving instance GHC.Classes.Eq a_613 => GHC.Classes.Eq (RightAssignmentList a_613)\n\nderiving instance GHC.Classes.Ord a_614 => GHC.Classes.Ord (RightAssignmentList a_614)\n\nderiving instance GHC.Show.Show a_615 => GHC.Show.Show (RightAssignmentList a_615)\n\ninstance AST.Unmarshal.Unmarshal RightAssignmentList\n\ninstance Data.Foldable.Foldable RightAssignmentList where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RightAssignmentList where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RightAssignmentList where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ScopeResolution a = ScopeResolution\n  { ann :: a,\n    name :: (AST.Parse.Err ((Constant GHC.Generics.:+: Identifier) a)),\n    scope :: (GHC.Maybe.Maybe (AST.Parse.Err (Primary a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_616.\n      AST.Traversable1.Class.Traversable1 a_616\n    )\n\ninstance AST.Unmarshal.SymbolMatching ScopeResolution where\n  matchedSymbols _ = [202]\n  showFailure _ node_617 =\n    \"expected \"\n      GHC.Base.<> ( \"scope_resolution\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_617 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_617) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_618 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_619 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_620 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_621 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_618\n        c1_619 = TreeSitter.Node.nodeStartPoint node_617\n      TreeSitter.Node.TSPoint\n        r2_620\n        c2_621 = TreeSitter.Node.nodeEndPoint node_617\n\nderiving instance GHC.Classes.Eq a_622 => GHC.Classes.Eq (ScopeResolution a_622)\n\nderiving instance GHC.Classes.Ord a_623 => GHC.Classes.Ord (ScopeResolution a_623)\n\nderiving instance GHC.Show.Show a_624 => GHC.Show.Show (ScopeResolution a_624)\n\ninstance AST.Unmarshal.Unmarshal ScopeResolution\n\ninstance Data.Foldable.Foldable ScopeResolution where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ScopeResolution where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ScopeResolution where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Setter a = Setter\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Identifier a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_625.\n      AST.Traversable1.Class.Traversable1 a_625\n    )\n\ninstance AST.Unmarshal.SymbolMatching Setter where\n  matchedSymbols _ = [235]\n  showFailure _ node_626 =\n    \"expected \"\n      GHC.Base.<> ( \"setter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_626 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_626) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_627 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_628 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_629 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_630 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_627\n        c1_628 = TreeSitter.Node.nodeStartPoint node_626\n      TreeSitter.Node.TSPoint\n        r2_629\n        c2_630 = TreeSitter.Node.nodeEndPoint node_626\n\nderiving instance GHC.Classes.Eq a_631 => GHC.Classes.Eq (Setter a_631)\n\nderiving instance GHC.Classes.Ord a_632 => GHC.Classes.Ord (Setter a_632)\n\nderiving instance GHC.Show.Show a_633 => GHC.Show.Show (Setter a_633)\n\ninstance AST.Unmarshal.Unmarshal Setter\n\ninstance Data.Foldable.Foldable Setter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Setter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Setter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SingletonClass a = SingletonClass\n  { ann :: a,\n    value :: (AST.Parse.Err (Arg a)),\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: Else GHC.Generics.:+: EmptyStatement GHC.Generics.:+: Ensure GHC.Generics.:+: Rescue) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_634.\n      AST.Traversable1.Class.Traversable1 a_634\n    )\n\ninstance AST.Unmarshal.SymbolMatching SingletonClass where\n  matchedSymbols _ = [161]\n  showFailure _ node_635 =\n    \"expected \"\n      GHC.Base.<> ( \"singleton_class\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_635 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_635) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_636 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_637 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_638 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_639 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_636\n        c1_637 = TreeSitter.Node.nodeStartPoint node_635\n      TreeSitter.Node.TSPoint\n        r2_638\n        c2_639 = TreeSitter.Node.nodeEndPoint node_635\n\nderiving instance GHC.Classes.Eq a_640 => GHC.Classes.Eq (SingletonClass a_640)\n\nderiving instance GHC.Classes.Ord a_641 => GHC.Classes.Ord (SingletonClass a_641)\n\nderiving instance GHC.Show.Show a_642 => GHC.Show.Show (SingletonClass a_642)\n\ninstance AST.Unmarshal.Unmarshal SingletonClass\n\ninstance Data.Foldable.Foldable SingletonClass where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SingletonClass where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SingletonClass where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SingletonMethod a = SingletonMethod\n  { ann :: a,\n    name :: (AST.Parse.Err (MethodName a)),\n    parameters :: (GHC.Maybe.Maybe (AST.Parse.Err (MethodParameters a))),\n    object :: (AST.Parse.Err ((Arg GHC.Generics.:+: Variable) a)),\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: Else GHC.Generics.:+: EmptyStatement GHC.Generics.:+: Ensure GHC.Generics.:+: Rescue) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_643.\n      AST.Traversable1.Class.Traversable1 a_643\n    )\n\ninstance AST.Unmarshal.SymbolMatching SingletonMethod where\n  matchedSymbols _ = [147]\n  showFailure _ node_644 =\n    \"expected \"\n      GHC.Base.<> ( \"singleton_method\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_644 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_644) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_645 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_646 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_647 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_648 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_645\n        c1_646 = TreeSitter.Node.nodeStartPoint node_644\n      TreeSitter.Node.TSPoint\n        r2_647\n        c2_648 = TreeSitter.Node.nodeEndPoint node_644\n\nderiving instance GHC.Classes.Eq a_649 => GHC.Classes.Eq (SingletonMethod a_649)\n\nderiving instance GHC.Classes.Ord a_650 => GHC.Classes.Ord (SingletonMethod a_650)\n\nderiving instance GHC.Show.Show a_651 => GHC.Show.Show (SingletonMethod a_651)\n\ninstance AST.Unmarshal.Unmarshal SingletonMethod\n\ninstance Data.Foldable.Foldable SingletonMethod where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SingletonMethod where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SingletonMethod where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SplatArgument a = SplatArgument\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Arg a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_652.\n      AST.Traversable1.Class.Traversable1 a_652\n    )\n\ninstance AST.Unmarshal.SymbolMatching SplatArgument where\n  matchedSymbols _ = [210]\n  showFailure _ node_653 =\n    \"expected \"\n      GHC.Base.<> ( \"splat_argument\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_653 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_653) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_654 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_655 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_656 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_657 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_654\n        c1_655 = TreeSitter.Node.nodeStartPoint node_653\n      TreeSitter.Node.TSPoint\n        r2_656\n        c2_657 = TreeSitter.Node.nodeEndPoint node_653\n\nderiving instance GHC.Classes.Eq a_658 => GHC.Classes.Eq (SplatArgument a_658)\n\nderiving instance GHC.Classes.Ord a_659 => GHC.Classes.Ord (SplatArgument a_659)\n\nderiving instance GHC.Show.Show a_660 => GHC.Show.Show (SplatArgument a_660)\n\ninstance AST.Unmarshal.Unmarshal SplatArgument\n\ninstance Data.Foldable.Foldable SplatArgument where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SplatArgument where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SplatArgument where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SplatParameter a = SplatParameter\n  { ann :: a,\n    name :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_661.\n      AST.Traversable1.Class.Traversable1 a_661\n    )\n\ninstance AST.Unmarshal.SymbolMatching SplatParameter where\n  matchedSymbols _ = [154]\n  showFailure _ node_662 =\n    \"expected \"\n      GHC.Base.<> ( \"splat_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_662 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_662) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_663 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_664 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_665 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_666 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_663\n        c1_664 = TreeSitter.Node.nodeStartPoint node_662\n      TreeSitter.Node.TSPoint\n        r2_665\n        c2_666 = TreeSitter.Node.nodeEndPoint node_662\n\nderiving instance GHC.Classes.Eq a_667 => GHC.Classes.Eq (SplatParameter a_667)\n\nderiving instance GHC.Classes.Ord a_668 => GHC.Classes.Ord (SplatParameter a_668)\n\nderiving instance GHC.Show.Show a_669 => GHC.Show.Show (SplatParameter a_669)\n\ninstance AST.Unmarshal.Unmarshal SplatParameter\n\ninstance Data.Foldable.Foldable SplatParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SplatParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SplatParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata String a = String\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((EscapeSequence GHC.Generics.:+: Interpolation) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_670.\n      AST.Traversable1.Class.Traversable1 a_670\n    )\n\ninstance AST.Unmarshal.SymbolMatching String where\n  matchedSymbols _ = [241]\n  showFailure _ node_671 =\n    \"expected \"\n      GHC.Base.<> ( \"string\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_671 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_671) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_672 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_673 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_674 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_675 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_672\n        c1_673 = TreeSitter.Node.nodeStartPoint node_671\n      TreeSitter.Node.TSPoint\n        r2_674\n        c2_675 = TreeSitter.Node.nodeEndPoint node_671\n\nderiving instance GHC.Classes.Eq a_676 => GHC.Classes.Eq (String a_676)\n\nderiving instance GHC.Classes.Ord a_677 => GHC.Classes.Ord (String a_677)\n\nderiving instance GHC.Show.Show a_678 => GHC.Show.Show (String a_678)\n\ninstance AST.Unmarshal.Unmarshal String\n\ninstance Data.Foldable.Foldable String where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor String where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable String where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata StringArray a = StringArray\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (BareString a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_679.\n      AST.Traversable1.Class.Traversable1 a_679\n    )\n\ninstance AST.Unmarshal.SymbolMatching StringArray where\n  matchedSymbols _ = [243]\n  showFailure _ node_680 =\n    \"expected \"\n      GHC.Base.<> ( \"string_array\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_680 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_680) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_681 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_682 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_683 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_684 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_681\n        c1_682 = TreeSitter.Node.nodeStartPoint node_680\n      TreeSitter.Node.TSPoint\n        r2_683\n        c2_684 = TreeSitter.Node.nodeEndPoint node_680\n\nderiving instance GHC.Classes.Eq a_685 => GHC.Classes.Eq (StringArray a_685)\n\nderiving instance GHC.Classes.Ord a_686 => GHC.Classes.Ord (StringArray a_686)\n\nderiving instance GHC.Show.Show a_687 => GHC.Show.Show (StringArray a_687)\n\ninstance AST.Unmarshal.Unmarshal StringArray\n\ninstance Data.Foldable.Foldable StringArray where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor StringArray where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable StringArray where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Subshell a = Subshell\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((EscapeSequence GHC.Generics.:+: Interpolation) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_688.\n      AST.Traversable1.Class.Traversable1 a_688\n    )\n\ninstance AST.Unmarshal.SymbolMatching Subshell where\n  matchedSymbols _ = [242]\n  showFailure _ node_689 =\n    \"expected \"\n      GHC.Base.<> ( \"subshell\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_689 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_689) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_690 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_691 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_692 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_693 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_690\n        c1_691 = TreeSitter.Node.nodeStartPoint node_689\n      TreeSitter.Node.TSPoint\n        r2_692\n        c2_693 = TreeSitter.Node.nodeEndPoint node_689\n\nderiving instance GHC.Classes.Eq a_694 => GHC.Classes.Eq (Subshell a_694)\n\nderiving instance GHC.Classes.Ord a_695 => GHC.Classes.Ord (Subshell a_695)\n\nderiving instance GHC.Show.Show a_696 => GHC.Show.Show (Subshell a_696)\n\ninstance AST.Unmarshal.Unmarshal Subshell\n\ninstance Data.Foldable.Foldable Subshell where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Subshell where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Subshell where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Superclass a = Superclass {ann :: a, extraChildren :: (AST.Parse.Err (Arg a))}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_697.\n      AST.Traversable1.Class.Traversable1 a_697\n    )\n\ninstance AST.Unmarshal.SymbolMatching Superclass where\n  matchedSymbols _ = [160]\n  showFailure _ node_698 =\n    \"expected \"\n      GHC.Base.<> ( \"superclass\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_698 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_698) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_699 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_700 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_701 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_702 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_699\n        c1_700 = TreeSitter.Node.nodeStartPoint node_698\n      TreeSitter.Node.TSPoint\n        r2_701\n        c2_702 = TreeSitter.Node.nodeEndPoint node_698\n\nderiving instance GHC.Classes.Eq a_703 => GHC.Classes.Eq (Superclass a_703)\n\nderiving instance GHC.Classes.Ord a_704 => GHC.Classes.Ord (Superclass a_704)\n\nderiving instance GHC.Show.Show a_705 => GHC.Show.Show (Superclass a_705)\n\ninstance AST.Unmarshal.Unmarshal Superclass\n\ninstance Data.Foldable.Foldable Superclass where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Superclass where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Superclass where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Symbol a = Symbol\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((EscapeSequence GHC.Generics.:+: Interpolation) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_706.\n      AST.Traversable1.Class.Traversable1 a_706\n    )\n\ninstance AST.Unmarshal.SymbolMatching Symbol where\n  matchedSymbols _ = [140, 245]\n  showFailure _ node_707 =\n    \"expected \"\n      GHC.Base.<> ( \"symbol, symbol\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_707 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_707) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_708 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_709 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_710 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_711 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_708\n        c1_709 = TreeSitter.Node.nodeStartPoint node_707\n      TreeSitter.Node.TSPoint\n        r2_710\n        c2_711 = TreeSitter.Node.nodeEndPoint node_707\n\nderiving instance GHC.Classes.Eq a_712 => GHC.Classes.Eq (Symbol a_712)\n\nderiving instance GHC.Classes.Ord a_713 => GHC.Classes.Ord (Symbol a_713)\n\nderiving instance GHC.Show.Show a_714 => GHC.Show.Show (Symbol a_714)\n\ninstance AST.Unmarshal.Unmarshal Symbol\n\ninstance Data.Foldable.Foldable Symbol where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Symbol where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Symbol where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SymbolArray a = SymbolArray\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (BareSymbol a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_715.\n      AST.Traversable1.Class.Traversable1 a_715\n    )\n\ninstance AST.Unmarshal.SymbolMatching SymbolArray where\n  matchedSymbols _ = [244]\n  showFailure _ node_716 =\n    \"expected \"\n      GHC.Base.<> ( \"symbol_array\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_716 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_716) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_717 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_718 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_719 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_720 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_717\n        c1_718 = TreeSitter.Node.nodeStartPoint node_716\n      TreeSitter.Node.TSPoint\n        r2_719\n        c2_720 = TreeSitter.Node.nodeEndPoint node_716\n\nderiving instance GHC.Classes.Eq a_721 => GHC.Classes.Eq (SymbolArray a_721)\n\nderiving instance GHC.Classes.Ord a_722 => GHC.Classes.Ord (SymbolArray a_722)\n\nderiving instance GHC.Show.Show a_723 => GHC.Show.Show (SymbolArray a_723)\n\ninstance AST.Unmarshal.Unmarshal SymbolArray\n\ninstance Data.Foldable.Foldable SymbolArray where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SymbolArray where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SymbolArray where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Then a = Then\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: EmptyStatement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_724.\n      AST.Traversable1.Class.Traversable1 a_724\n    )\n\ninstance AST.Unmarshal.SymbolMatching Then where\n  matchedSymbols _ = [190]\n  showFailure _ node_725 =\n    \"expected \"\n      GHC.Base.<> ( \"then\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_725 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_725) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_726 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_727 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_728 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_729 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_726\n        c1_727 = TreeSitter.Node.nodeStartPoint node_725\n      TreeSitter.Node.TSPoint\n        r2_728\n        c2_729 = TreeSitter.Node.nodeEndPoint node_725\n\nderiving instance GHC.Classes.Eq a_730 => GHC.Classes.Eq (Then a_730)\n\nderiving instance GHC.Classes.Ord a_731 => GHC.Classes.Ord (Then a_731)\n\nderiving instance GHC.Show.Show a_732 => GHC.Show.Show (Then a_732)\n\ninstance AST.Unmarshal.Unmarshal Then\n\ninstance Data.Foldable.Foldable Then where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Then where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Then where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Unary a = Unary\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Arg GHC.Generics.:+: Float GHC.Generics.:+: Integer GHC.Generics.:+: ParenthesizedStatements) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_733.\n      AST.Traversable1.Class.Traversable1 a_733\n    )\n\ninstance AST.Unmarshal.SymbolMatching Unary where\n  matchedSymbols _ = [223, 224, 225]\n  showFailure _ node_734 =\n    \"expected \"\n      GHC.Base.<> ( \"unary, unary, unary\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_734 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_734) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_735 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_736 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_737 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_738 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_735\n        c1_736 = TreeSitter.Node.nodeStartPoint node_734\n      TreeSitter.Node.TSPoint\n        r2_737\n        c2_738 = TreeSitter.Node.nodeEndPoint node_734\n\nderiving instance GHC.Classes.Eq a_739 => GHC.Classes.Eq (Unary a_739)\n\nderiving instance GHC.Classes.Ord a_740 => GHC.Classes.Ord (Unary a_740)\n\nderiving instance GHC.Show.Show a_741 => GHC.Show.Show (Unary a_741)\n\ninstance AST.Unmarshal.Unmarshal Unary\n\ninstance Data.Foldable.Foldable Unary where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Unary where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Unary where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Undef a = Undef\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (MethodName a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_742.\n      AST.Traversable1.Class.Traversable1 a_742\n    )\n\ninstance AST.Unmarshal.SymbolMatching Undef where\n  matchedSymbols _ = [236]\n  showFailure _ node_743 =\n    \"expected \"\n      GHC.Base.<> ( \"undef\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_743 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_743) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_744 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_745 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_746 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_747 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_744\n        c1_745 = TreeSitter.Node.nodeStartPoint node_743\n      TreeSitter.Node.TSPoint\n        r2_746\n        c2_747 = TreeSitter.Node.nodeEndPoint node_743\n\nderiving instance GHC.Classes.Eq a_748 => GHC.Classes.Eq (Undef a_748)\n\nderiving instance GHC.Classes.Ord a_749 => GHC.Classes.Ord (Undef a_749)\n\nderiving instance GHC.Show.Show a_750 => GHC.Show.Show (Undef a_750)\n\ninstance AST.Unmarshal.Unmarshal Undef\n\ninstance Data.Foldable.Foldable Undef where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Undef where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Undef where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Unless a = Unless\n  { ann :: a,\n    alternative :: (GHC.Maybe.Maybe (AST.Parse.Err ((Else GHC.Generics.:+: Elsif) a))),\n    consequence :: (GHC.Maybe.Maybe (AST.Parse.Err (Then a))),\n    condition :: (AST.Parse.Err (Statement a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_751.\n      AST.Traversable1.Class.Traversable1 a_751\n    )\n\ninstance AST.Unmarshal.SymbolMatching Unless where\n  matchedSymbols _ = [187]\n  showFailure _ node_752 =\n    \"expected \"\n      GHC.Base.<> ( \"unless\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_752 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_752) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_753 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_754 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_755 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_756 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_753\n        c1_754 = TreeSitter.Node.nodeStartPoint node_752\n      TreeSitter.Node.TSPoint\n        r2_755\n        c2_756 = TreeSitter.Node.nodeEndPoint node_752\n\nderiving instance GHC.Classes.Eq a_757 => GHC.Classes.Eq (Unless a_757)\n\nderiving instance GHC.Classes.Ord a_758 => GHC.Classes.Ord (Unless a_758)\n\nderiving instance GHC.Show.Show a_759 => GHC.Show.Show (Unless a_759)\n\ninstance AST.Unmarshal.Unmarshal Unless\n\ninstance Data.Foldable.Foldable Unless where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Unless where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Unless where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UnlessModifier a = UnlessModifier\n  { ann :: a,\n    body :: (AST.Parse.Err (Statement a)),\n    condition :: (AST.Parse.Err ((Arg GHC.Generics.:+: Break GHC.Generics.:+: MethodCall GHC.Generics.:+: Next GHC.Generics.:+: Return GHC.Generics.:+: Yield) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_760.\n      AST.Traversable1.Class.Traversable1 a_760\n    )\n\ninstance AST.Unmarshal.SymbolMatching UnlessModifier where\n  matchedSymbols _ = [174]\n  showFailure _ node_761 =\n    \"expected \"\n      GHC.Base.<> ( \"unless_modifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_761 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_761) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_762 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_763 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_764 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_765 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_762\n        c1_763 = TreeSitter.Node.nodeStartPoint node_761\n      TreeSitter.Node.TSPoint\n        r2_764\n        c2_765 = TreeSitter.Node.nodeEndPoint node_761\n\nderiving instance GHC.Classes.Eq a_766 => GHC.Classes.Eq (UnlessModifier a_766)\n\nderiving instance GHC.Classes.Ord a_767 => GHC.Classes.Ord (UnlessModifier a_767)\n\nderiving instance GHC.Show.Show a_768 => GHC.Show.Show (UnlessModifier a_768)\n\ninstance AST.Unmarshal.Unmarshal UnlessModifier\n\ninstance Data.Foldable.Foldable UnlessModifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UnlessModifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UnlessModifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Until a = Until\n  { ann :: a,\n    body :: (AST.Parse.Err (Do a)),\n    condition :: (AST.Parse.Err (Arg a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_769.\n      AST.Traversable1.Class.Traversable1 a_769\n    )\n\ninstance AST.Unmarshal.SymbolMatching Until where\n  matchedSymbols _ = [179]\n  showFailure _ node_770 =\n    \"expected \"\n      GHC.Base.<> ( \"until\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_770 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_770) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_771 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_772 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_773 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_774 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_771\n        c1_772 = TreeSitter.Node.nodeStartPoint node_770\n      TreeSitter.Node.TSPoint\n        r2_773\n        c2_774 = TreeSitter.Node.nodeEndPoint node_770\n\nderiving instance GHC.Classes.Eq a_775 => GHC.Classes.Eq (Until a_775)\n\nderiving instance GHC.Classes.Ord a_776 => GHC.Classes.Ord (Until a_776)\n\nderiving instance GHC.Show.Show a_777 => GHC.Show.Show (Until a_777)\n\ninstance AST.Unmarshal.Unmarshal Until\n\ninstance Data.Foldable.Foldable Until where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Until where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Until where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UntilModifier a = UntilModifier\n  { ann :: a,\n    body :: (AST.Parse.Err (Statement a)),\n    condition :: (AST.Parse.Err ((Arg GHC.Generics.:+: Break GHC.Generics.:+: MethodCall GHC.Generics.:+: Next GHC.Generics.:+: Return GHC.Generics.:+: Yield) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_778.\n      AST.Traversable1.Class.Traversable1 a_778\n    )\n\ninstance AST.Unmarshal.SymbolMatching UntilModifier where\n  matchedSymbols _ = [176]\n  showFailure _ node_779 =\n    \"expected \"\n      GHC.Base.<> ( \"until_modifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_779 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_779) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_780 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_781 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_782 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_783 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_780\n        c1_781 = TreeSitter.Node.nodeStartPoint node_779\n      TreeSitter.Node.TSPoint\n        r2_782\n        c2_783 = TreeSitter.Node.nodeEndPoint node_779\n\nderiving instance GHC.Classes.Eq a_784 => GHC.Classes.Eq (UntilModifier a_784)\n\nderiving instance GHC.Classes.Ord a_785 => GHC.Classes.Ord (UntilModifier a_785)\n\nderiving instance GHC.Show.Show a_786 => GHC.Show.Show (UntilModifier a_786)\n\ninstance AST.Unmarshal.Unmarshal UntilModifier\n\ninstance Data.Foldable.Foldable UntilModifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UntilModifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UntilModifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata When a = When\n  { ann :: a,\n    pattern :: (GHC.Base.NonEmpty (AST.Parse.Err ((AnonymousComma GHC.Generics.:+: Pattern) a))),\n    body :: (GHC.Maybe.Maybe (AST.Parse.Err (Then a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_787.\n      AST.Traversable1.Class.Traversable1 a_787\n    )\n\ninstance AST.Unmarshal.SymbolMatching When where\n  matchedSymbols _ = [184]\n  showFailure _ node_788 =\n    \"expected \"\n      GHC.Base.<> ( \"when\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_788 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_788) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_789 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_790 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_791 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_792 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_789\n        c1_790 = TreeSitter.Node.nodeStartPoint node_788\n      TreeSitter.Node.TSPoint\n        r2_791\n        c2_792 = TreeSitter.Node.nodeEndPoint node_788\n\nderiving instance GHC.Classes.Eq a_793 => GHC.Classes.Eq (When a_793)\n\nderiving instance GHC.Classes.Ord a_794 => GHC.Classes.Ord (When a_794)\n\nderiving instance GHC.Show.Show a_795 => GHC.Show.Show (When a_795)\n\ninstance AST.Unmarshal.Unmarshal When\n\ninstance Data.Foldable.Foldable When where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor When where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable When where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata While a = While\n  { ann :: a,\n    body :: (AST.Parse.Err (Do a)),\n    condition :: (AST.Parse.Err (Arg a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_796.\n      AST.Traversable1.Class.Traversable1 a_796\n    )\n\ninstance AST.Unmarshal.SymbolMatching While where\n  matchedSymbols _ = [178]\n  showFailure _ node_797 =\n    \"expected \"\n      GHC.Base.<> ( \"while\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_797 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_797) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_798 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_799 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_800 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_801 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_798\n        c1_799 = TreeSitter.Node.nodeStartPoint node_797\n      TreeSitter.Node.TSPoint\n        r2_800\n        c2_801 = TreeSitter.Node.nodeEndPoint node_797\n\nderiving instance GHC.Classes.Eq a_802 => GHC.Classes.Eq (While a_802)\n\nderiving instance GHC.Classes.Ord a_803 => GHC.Classes.Ord (While a_803)\n\nderiving instance GHC.Show.Show a_804 => GHC.Show.Show (While a_804)\n\ninstance AST.Unmarshal.Unmarshal While\n\ninstance Data.Foldable.Foldable While where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor While where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable While where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata WhileModifier a = WhileModifier\n  { ann :: a,\n    body :: (AST.Parse.Err (Statement a)),\n    condition :: (AST.Parse.Err ((Arg GHC.Generics.:+: Break GHC.Generics.:+: MethodCall GHC.Generics.:+: Next GHC.Generics.:+: Return GHC.Generics.:+: Yield) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_805.\n      AST.Traversable1.Class.Traversable1 a_805\n    )\n\ninstance AST.Unmarshal.SymbolMatching WhileModifier where\n  matchedSymbols _ = [175]\n  showFailure _ node_806 =\n    \"expected \"\n      GHC.Base.<> ( \"while_modifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_806 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_806) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_807 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_808 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_809 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_810 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_807\n        c1_808 = TreeSitter.Node.nodeStartPoint node_806\n      TreeSitter.Node.TSPoint\n        r2_809\n        c2_810 = TreeSitter.Node.nodeEndPoint node_806\n\nderiving instance GHC.Classes.Eq a_811 => GHC.Classes.Eq (WhileModifier a_811)\n\nderiving instance GHC.Classes.Ord a_812 => GHC.Classes.Ord (WhileModifier a_812)\n\nderiving instance GHC.Show.Show a_813 => GHC.Show.Show (WhileModifier a_813)\n\ninstance AST.Unmarshal.Unmarshal WhileModifier\n\ninstance Data.Foldable.Foldable WhileModifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor WhileModifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable WhileModifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Yield a = Yield\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ArgumentList a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_814.\n      AST.Traversable1.Class.Traversable1 a_814\n    )\n\ninstance AST.Unmarshal.SymbolMatching Yield where\n  matchedSymbols _ = [164, 168]\n  showFailure _ node_815 =\n    \"expected \"\n      GHC.Base.<> ( \"yield, yield\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_815 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_815) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_816 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_817 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_818 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_819 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_816\n        c1_817 = TreeSitter.Node.nodeStartPoint node_815\n      TreeSitter.Node.TSPoint\n        r2_818\n        c2_819 = TreeSitter.Node.nodeEndPoint node_815\n\nderiving instance GHC.Classes.Eq a_820 => GHC.Classes.Eq (Yield a_820)\n\nderiving instance GHC.Classes.Ord a_821 => GHC.Classes.Ord (Yield a_821)\n\nderiving instance GHC.Show.Show a_822 => GHC.Show.Show (Yield a_822)\n\ninstance AST.Unmarshal.Unmarshal Yield\n\ninstance Data.Foldable.Foldable Yield where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Yield where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Yield where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousBang = AST.Token.Token \"!\" 90\n\ntype AnonymousBangEqual = AST.Token.Token \"!=\" 83\n\ntype AnonymousBangTilde = AST.Token.Token \"!~\" 87\n\ntype AnonymousDQuote = AST.Token.Token \"\\\"\" 122\n\ntype AnonymousHashLBrace = AST.Token.Token \"#{\" 115\n\ntype AnonymousPercent = AST.Token.Token \"%\" 81\n\ntype AnonymousPercentEqual = AST.Token.Token \"%=\" 61\n\ntype AnonymousPercentiLParen = AST.Token.Token \"%i(\" 127\n\ntype AnonymousPercentwLParen = AST.Token.Token \"%w(\" 126\n\ntype AnonymousAmpersand = AST.Token.Token \"&\" 18\n\ntype AnonymousAmpersandAmpersand = AST.Token.Token \"&&\" 72\n\ntype AnonymousAmpersandAmpersandEqual = AST.Token.Token \"&&=\" 59\n\ntype AnonymousAmpersandDot = AST.Token.Token \"&.\" 50\n\ntype AnonymousAmpersandEqual = AST.Token.Token \"&=\" 60\n\ntype AnonymousLParen = AST.Token.Token \"(\" 9\n\ntype AnonymousRParen = AST.Token.Token \")\" 10\n\ntype AnonymousStar = AST.Token.Token \"*\" 16\n\ntype AnonymousStarStar = AST.Token.Token \"**\" 17\n\ntype AnonymousStarStarEqual = AST.Token.Token \"**=\" 55\n\ntype AnonymousStarEqual = AST.Token.Token \"*=\" 54\n\ntype AnonymousPlus = AST.Token.Token \"+\" 79\n\ntype AnonymousPlusEqual = AST.Token.Token \"+=\" 52\n\ntype AnonymousPlusAt = AST.Token.Token \"+@\" 93\n\ntype AnonymousComma = AST.Token.Token \",\" 13\n\ntype AnonymousMinus = AST.Token.Token \"-\" 92\n\ntype AnonymousMinusEqual = AST.Token.Token \"-=\" 53\n\ntype AnonymousMinusRAngle = AST.Token.Token \"->\" 119\n\ntype AnonymousMinusAt = AST.Token.Token \"-@\" 94\n\ntype AnonymousDot = AST.Token.Token \".\" 11\n\ntype AnonymousDotDot = AST.Token.Token \"..\" 67\n\ntype AnonymousDotDotDot = AST.Token.Token \"...\" 68\n\ntype AnonymousSlash = AST.Token.Token \"/\" 80\n\ntype AnonymousSlashEqual = AST.Token.Token \"/=\" 56\n\ntype AnonymousColon = AST.Token.Token \":\" 19\n\ntype AnonymousColonDQuote = AST.Token.Token \":\\\"\" 123\n\ntype AnonymousColonColon = AST.Token.Token \"::\" 12\n\ntype AnonymousSemicolon = AST.Token.Token \";\" 15\n\ntype AnonymousLAngle = AST.Token.Token \"<\" 22\n\ntype AnonymousLAngleLAngle = AST.Token.Token \"<<\" 73\n\ntype AnonymousLAngleLAngleEqual = AST.Token.Token \"<<=\" 63\n\ntype AnonymousLAngleEqual = AST.Token.Token \"<=\" 75\n\ntype AnonymousLAngleEqualRAngle = AST.Token.Token \"<=>\" 85\n\ntype AnonymousEqual = AST.Token.Token \"=\" 20\n\ntype AnonymousEqualEqual = AST.Token.Token \"==\" 82\n\ntype AnonymousEqualEqualEqual = AST.Token.Token \"===\" 84\n\ntype AnonymousEqualRAngle = AST.Token.Token \"=>\" 46\n\ntype AnonymousEqualTilde = AST.Token.Token \"=~\" 86\n\ntype AnonymousRAngle = AST.Token.Token \">\" 76\n\ntype AnonymousRAngleEqual = AST.Token.Token \">=\" 77\n\ntype AnonymousRAngleRAngle = AST.Token.Token \">>\" 74\n\ntype AnonymousRAngleRAngleEqual = AST.Token.Token \">>=\" 62\n\ntype AnonymousQuestion = AST.Token.Token \"?\" 65\n\ntype AnonymousBEGIN = AST.Token.Token \"BEGIN\" 4\n\ntype AnonymousEND = AST.Token.Token \"END\" 7\n\ntype AnonymousLBracket = AST.Token.Token \"[\" 47\n\ntype AnonymousLBracketRBracket = AST.Token.Token \"[]\" 95\n\ntype AnonymousLBracketRBracketEqual = AST.Token.Token \"[]=\" 96\n\ntype AnonymousRBracket = AST.Token.Token \"]\" 48\n\ntype AnonymousCaret = AST.Token.Token \"^\" 78\n\ntype AnonymousCaretEqual = AST.Token.Token \"^=\" 64\n\ntype AnonymousUnderscoreENDUnderscore = AST.Token.Token \"__END__\" 2\n\ntype AnonymousBacktick = AST.Token.Token \"`\" 97\n\ntype AnonymousAlias = AST.Token.Token \"alias\" 99\n\ntype AnonymousAnd = AST.Token.Token \"and\" 69\n\ntype AnonymousBegin = AST.Token.Token \"begin\" 44\n\ntype AnonymousBreak = AST.Token.Token \"break\" 27\n\ntype AnonymousCase = AST.Token.Token \"case\" 39\n\ndata Character a = Character {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_823.\n      AST.Traversable1.Class.Traversable1 a_823\n    )\n\ninstance AST.Unmarshal.SymbolMatching Character where\n  matchedSymbols _ = [114]\n  showFailure _ node_824 =\n    \"expected \"\n      GHC.Base.<> ( \"character\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_824 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_824) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_825 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_826 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_827 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_828 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_825\n        c1_826 = TreeSitter.Node.nodeStartPoint node_824\n      TreeSitter.Node.TSPoint\n        r2_827\n        c2_828 = TreeSitter.Node.nodeEndPoint node_824\n\nderiving instance GHC.Classes.Eq a_829 => GHC.Classes.Eq (Character a_829)\n\nderiving instance GHC.Classes.Ord a_830 => GHC.Classes.Ord (Character a_830)\n\nderiving instance GHC.Show.Show a_831 => GHC.Show.Show (Character a_831)\n\ninstance AST.Unmarshal.Unmarshal Character\n\ninstance Data.Foldable.Foldable Character where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Character where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Character where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousClass = AST.Token.Token \"class\" 21\n\ndata ClassVariable a = ClassVariable {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_832.\n      AST.Traversable1.Class.Traversable1 a_832\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClassVariable where\n  matchedSymbols _ = [112]\n  showFailure _ node_833 =\n    \"expected \"\n      GHC.Base.<> ( \"class_variable\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_833 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_833) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_834 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_835 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_836 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_837 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_834\n        c1_835 = TreeSitter.Node.nodeStartPoint node_833\n      TreeSitter.Node.TSPoint\n        r2_836\n        c2_837 = TreeSitter.Node.nodeEndPoint node_833\n\nderiving instance GHC.Classes.Eq a_838 => GHC.Classes.Eq (ClassVariable a_838)\n\nderiving instance GHC.Classes.Ord a_839 => GHC.Classes.Ord (ClassVariable a_839)\n\nderiving instance GHC.Show.Show a_840 => GHC.Show.Show (ClassVariable a_840)\n\ninstance AST.Unmarshal.Unmarshal ClassVariable\n\ninstance Data.Foldable.Foldable ClassVariable where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClassVariable where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClassVariable where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Complex a = Complex {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_841.\n      AST.Traversable1.Class.Traversable1 a_841\n    )\n\ninstance AST.Unmarshal.SymbolMatching Complex where\n  matchedSymbols _ = [103]\n  showFailure _ node_842 =\n    \"expected \"\n      GHC.Base.<> ( \"complex\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_842 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_842) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_843 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_844 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_845 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_846 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_843\n        c1_844 = TreeSitter.Node.nodeStartPoint node_842\n      TreeSitter.Node.TSPoint\n        r2_845\n        c2_846 = TreeSitter.Node.nodeEndPoint node_842\n\nderiving instance GHC.Classes.Eq a_847 => GHC.Classes.Eq (Complex a_847)\n\nderiving instance GHC.Classes.Ord a_848 => GHC.Classes.Ord (Complex a_848)\n\nderiving instance GHC.Show.Show a_849 => GHC.Show.Show (Complex a_849)\n\ninstance AST.Unmarshal.Unmarshal Complex\n\ninstance Data.Foldable.Foldable Complex where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Complex where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Complex where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Constant a = Constant {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_850.\n      AST.Traversable1.Class.Traversable1 a_850\n    )\n\ninstance AST.Unmarshal.SymbolMatching Constant where\n  matchedSymbols _ = [110]\n  showFailure _ node_851 =\n    \"expected \"\n      GHC.Base.<> ( \"constant\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_851 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_851) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_852 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_853 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_854 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_855 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_852\n        c1_853 = TreeSitter.Node.nodeStartPoint node_851\n      TreeSitter.Node.TSPoint\n        r2_854\n        c2_855 = TreeSitter.Node.nodeEndPoint node_851\n\nderiving instance GHC.Classes.Eq a_856 => GHC.Classes.Eq (Constant a_856)\n\nderiving instance GHC.Classes.Ord a_857 => GHC.Classes.Ord (Constant a_857)\n\nderiving instance GHC.Show.Show a_858 => GHC.Show.Show (Constant a_858)\n\ninstance AST.Unmarshal.Unmarshal Constant\n\ninstance Data.Foldable.Foldable Constant where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Constant where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Constant where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousDef = AST.Token.Token \"def\" 8\n\ntype AnonymousDefinedQuestion = AST.Token.Token \"defined?\" 88\n\ntype AnonymousDo = AST.Token.Token \"do\" 38\n\ntype AnonymousElse = AST.Token.Token \"else\" 42\n\ntype AnonymousElsif = AST.Token.Token \"elsif\" 41\n\ntype AnonymousEnd = AST.Token.Token \"end\" 24\n\ntype AnonymousEnsure = AST.Token.Token \"ensure\" 45\n\ndata EscapeSequence a = EscapeSequence {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_859.\n      AST.Traversable1.Class.Traversable1 a_859\n    )\n\ninstance AST.Unmarshal.SymbolMatching EscapeSequence where\n  matchedSymbols _ = [117]\n  showFailure _ node_860 =\n    \"expected \"\n      GHC.Base.<> ( \"escape_sequence\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_860 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_860) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_861 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_862 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_863 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_864 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_861\n        c1_862 = TreeSitter.Node.nodeStartPoint node_860\n      TreeSitter.Node.TSPoint\n        r2_863\n        c2_864 = TreeSitter.Node.nodeEndPoint node_860\n\nderiving instance GHC.Classes.Eq a_865 => GHC.Classes.Eq (EscapeSequence a_865)\n\nderiving instance GHC.Classes.Ord a_866 => GHC.Classes.Ord (EscapeSequence a_866)\n\nderiving instance GHC.Show.Show a_867 => GHC.Show.Show (EscapeSequence a_867)\n\ninstance AST.Unmarshal.Unmarshal EscapeSequence\n\ninstance Data.Foldable.Foldable EscapeSequence where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EscapeSequence where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EscapeSequence where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata False a = False {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_868.\n      AST.Traversable1.Class.Traversable1 a_868\n    )\n\ninstance AST.Unmarshal.SymbolMatching False where\n  matchedSymbols _ = [108]\n  showFailure _ node_869 =\n    \"expected \"\n      GHC.Base.<> ( \"false\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_869 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_869) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_870 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_871 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_872 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_873 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_870\n        c1_871 = TreeSitter.Node.nodeStartPoint node_869\n      TreeSitter.Node.TSPoint\n        r2_872\n        c2_873 = TreeSitter.Node.nodeEndPoint node_869\n\nderiving instance GHC.Classes.Eq a_874 => GHC.Classes.Eq (False a_874)\n\nderiving instance GHC.Classes.Ord a_875 => GHC.Classes.Ord (False a_875)\n\nderiving instance GHC.Show.Show a_876 => GHC.Show.Show (False a_876)\n\ninstance AST.Unmarshal.Unmarshal False\n\ninstance Data.Foldable.Foldable False where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor False where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable False where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Float a = Float {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_877.\n      AST.Traversable1.Class.Traversable1 a_877\n    )\n\ninstance AST.Unmarshal.SymbolMatching Float where\n  matchedSymbols _ = [102]\n  showFailure _ node_878 =\n    \"expected \"\n      GHC.Base.<> ( \"float\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_878 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_878) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_879 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_880 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_881 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_882 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_879\n        c1_880 = TreeSitter.Node.nodeStartPoint node_878\n      TreeSitter.Node.TSPoint\n        r2_881\n        c2_882 = TreeSitter.Node.nodeEndPoint node_878\n\nderiving instance GHC.Classes.Eq a_883 => GHC.Classes.Eq (Float a_883)\n\nderiving instance GHC.Classes.Ord a_884 => GHC.Classes.Ord (Float a_884)\n\nderiving instance GHC.Show.Show a_885 => GHC.Show.Show (Float a_885)\n\ninstance AST.Unmarshal.Unmarshal Float\n\ninstance Data.Foldable.Foldable Float where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Float where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Float where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousFor = AST.Token.Token \"for\" 36\n\ndata GlobalVariable a = GlobalVariable {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_886.\n      AST.Traversable1.Class.Traversable1 a_886\n    )\n\ninstance AST.Unmarshal.SymbolMatching GlobalVariable where\n  matchedSymbols _ = [113]\n  showFailure _ node_887 =\n    \"expected \"\n      GHC.Base.<> ( \"global_variable\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_887 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_887) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_888 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_889 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_890 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_891 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_888\n        c1_889 = TreeSitter.Node.nodeStartPoint node_887\n      TreeSitter.Node.TSPoint\n        r2_890\n        c2_891 = TreeSitter.Node.nodeEndPoint node_887\n\nderiving instance GHC.Classes.Eq a_892 => GHC.Classes.Eq (GlobalVariable a_892)\n\nderiving instance GHC.Classes.Ord a_893 => GHC.Classes.Ord (GlobalVariable a_893)\n\nderiving instance GHC.Show.Show a_894 => GHC.Show.Show (GlobalVariable a_894)\n\ninstance AST.Unmarshal.Unmarshal GlobalVariable\n\ninstance Data.Foldable.Foldable GlobalVariable where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor GlobalVariable where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable GlobalVariable where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata HeredocBeginning a = HeredocBeginning {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_895.\n      AST.Traversable1.Class.Traversable1 a_895\n    )\n\ninstance AST.Unmarshal.SymbolMatching HeredocBeginning where\n  matchedSymbols _ = [133]\n  showFailure _ node_896 =\n    \"expected \"\n      GHC.Base.<> ( \"heredoc_beginning\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_896 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_896) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_897 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_898 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_899 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_900 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_897\n        c1_898 = TreeSitter.Node.nodeStartPoint node_896\n      TreeSitter.Node.TSPoint\n        r2_899\n        c2_900 = TreeSitter.Node.nodeEndPoint node_896\n\nderiving instance GHC.Classes.Eq a_901 => GHC.Classes.Eq (HeredocBeginning a_901)\n\nderiving instance GHC.Classes.Ord a_902 => GHC.Classes.Ord (HeredocBeginning a_902)\n\nderiving instance GHC.Show.Show a_903 => GHC.Show.Show (HeredocBeginning a_903)\n\ninstance AST.Unmarshal.Unmarshal HeredocBeginning\n\ninstance Data.Foldable.Foldable HeredocBeginning where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor HeredocBeginning where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable HeredocBeginning where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata HeredocEnd a = HeredocEnd {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_904.\n      AST.Traversable1.Class.Traversable1 a_904\n    )\n\ninstance AST.Unmarshal.SymbolMatching HeredocEnd where\n  matchedSymbols _ = [132]\n  showFailure _ node_905 =\n    \"expected \"\n      GHC.Base.<> ( \"heredoc_end\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_905 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_905) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_906 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_907 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_908 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_909 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_906\n        c1_907 = TreeSitter.Node.nodeStartPoint node_905\n      TreeSitter.Node.TSPoint\n        r2_908\n        c2_909 = TreeSitter.Node.nodeEndPoint node_905\n\nderiving instance GHC.Classes.Eq a_910 => GHC.Classes.Eq (HeredocEnd a_910)\n\nderiving instance GHC.Classes.Ord a_911 => GHC.Classes.Ord (HeredocEnd a_911)\n\nderiving instance GHC.Show.Show a_912 => GHC.Show.Show (HeredocEnd a_912)\n\ninstance AST.Unmarshal.Unmarshal HeredocEnd\n\ninstance Data.Foldable.Foldable HeredocEnd where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor HeredocEnd where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable HeredocEnd where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Identifier a = Identifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_913.\n      AST.Traversable1.Class.Traversable1 a_913\n    )\n\ninstance AST.Unmarshal.SymbolMatching Identifier where\n  matchedSymbols _ = [1]\n  showFailure _ node_914 =\n    \"expected \"\n      GHC.Base.<> ( \"identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_914 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_914) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_915 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_916 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_917 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_918 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_915\n        c1_916 = TreeSitter.Node.nodeStartPoint node_914\n      TreeSitter.Node.TSPoint\n        r2_917\n        c2_918 = TreeSitter.Node.nodeEndPoint node_914\n\nderiving instance GHC.Classes.Eq a_919 => GHC.Classes.Eq (Identifier a_919)\n\nderiving instance GHC.Classes.Ord a_920 => GHC.Classes.Ord (Identifier a_920)\n\nderiving instance GHC.Show.Show a_921 => GHC.Show.Show (Identifier a_921)\n\ninstance AST.Unmarshal.Unmarshal Identifier\n\ninstance Data.Foldable.Foldable Identifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Identifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Identifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousIf = AST.Token.Token \"if\" 31\n\ntype AnonymousIn = AST.Token.Token \"in\" 37\n\ndata InstanceVariable a = InstanceVariable {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_922.\n      AST.Traversable1.Class.Traversable1 a_922\n    )\n\ninstance AST.Unmarshal.SymbolMatching InstanceVariable where\n  matchedSymbols _ = [111]\n  showFailure _ node_923 =\n    \"expected \"\n      GHC.Base.<> ( \"instance_variable\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_923 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_923) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_924 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_925 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_926 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_927 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_924\n        c1_925 = TreeSitter.Node.nodeStartPoint node_923\n      TreeSitter.Node.TSPoint\n        r2_926\n        c2_927 = TreeSitter.Node.nodeEndPoint node_923\n\nderiving instance GHC.Classes.Eq a_928 => GHC.Classes.Eq (InstanceVariable a_928)\n\nderiving instance GHC.Classes.Ord a_929 => GHC.Classes.Ord (InstanceVariable a_929)\n\nderiving instance GHC.Show.Show a_930 => GHC.Show.Show (InstanceVariable a_930)\n\ninstance AST.Unmarshal.Unmarshal InstanceVariable\n\ninstance Data.Foldable.Foldable InstanceVariable where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor InstanceVariable where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable InstanceVariable where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Integer a = Integer {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_931.\n      AST.Traversable1.Class.Traversable1 a_931\n    )\n\ninstance AST.Unmarshal.SymbolMatching Integer where\n  matchedSymbols _ = [101]\n  showFailure _ node_932 =\n    \"expected \"\n      GHC.Base.<> ( \"integer\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_932 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_932) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_933 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_934 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_935 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_936 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_933\n        c1_934 = TreeSitter.Node.nodeStartPoint node_932\n      TreeSitter.Node.TSPoint\n        r2_935\n        c2_936 = TreeSitter.Node.nodeEndPoint node_932\n\nderiving instance GHC.Classes.Eq a_937 => GHC.Classes.Eq (Integer a_937)\n\nderiving instance GHC.Classes.Ord a_938 => GHC.Classes.Ord (Integer a_938)\n\nderiving instance GHC.Show.Show a_939 => GHC.Show.Show (Integer a_939)\n\ninstance AST.Unmarshal.Unmarshal Integer\n\ninstance Data.Foldable.Foldable Integer where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Integer where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Integer where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousModule = AST.Token.Token \"module\" 23\n\ntype AnonymousNext = AST.Token.Token \"next\" 28\n\ndata Nil a = Nil {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_940.\n      AST.Traversable1.Class.Traversable1 a_940\n    )\n\ninstance AST.Unmarshal.SymbolMatching Nil where\n  matchedSymbols _ = [109]\n  showFailure _ node_941 =\n    \"expected \"\n      GHC.Base.<> ( \"nil\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_941 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_941) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_942 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_943 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_944 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_945 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_942\n        c1_943 = TreeSitter.Node.nodeStartPoint node_941\n      TreeSitter.Node.TSPoint\n        r2_944\n        c2_945 = TreeSitter.Node.nodeEndPoint node_941\n\nderiving instance GHC.Classes.Eq a_946 => GHC.Classes.Eq (Nil a_946)\n\nderiving instance GHC.Classes.Ord a_947 => GHC.Classes.Ord (Nil a_947)\n\nderiving instance GHC.Show.Show a_948 => GHC.Show.Show (Nil a_948)\n\ninstance AST.Unmarshal.Unmarshal Nil\n\ninstance Data.Foldable.Foldable Nil where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Nil where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Nil where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousNot = AST.Token.Token \"not\" 89\n\ntype AnonymousOr = AST.Token.Token \"or\" 70\n\ntype AnonymousR = AST.Token.Token \"r\" 104\n\ntype AnonymousRedo = AST.Token.Token \"redo\" 29\n\ntype AnonymousRescue = AST.Token.Token \"rescue\" 35\n\ntype AnonymousRetry = AST.Token.Token \"retry\" 30\n\ntype AnonymousReturn = AST.Token.Token \"return\" 25\n\ndata Self a = Self {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_949.\n      AST.Traversable1.Class.Traversable1 a_949\n    )\n\ninstance AST.Unmarshal.SymbolMatching Self where\n  matchedSymbols _ = [106]\n  showFailure _ node_950 =\n    \"expected \"\n      GHC.Base.<> ( \"self\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_950 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_950) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_951 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_952 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_953 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_954 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_951\n        c1_952 = TreeSitter.Node.nodeStartPoint node_950\n      TreeSitter.Node.TSPoint\n        r2_953\n        c2_954 = TreeSitter.Node.nodeEndPoint node_950\n\nderiving instance GHC.Classes.Eq a_955 => GHC.Classes.Eq (Self a_955)\n\nderiving instance GHC.Classes.Ord a_956 => GHC.Classes.Ord (Self a_956)\n\nderiving instance GHC.Show.Show a_957 => GHC.Show.Show (Self a_957)\n\ninstance AST.Unmarshal.Unmarshal Self\n\ninstance Data.Foldable.Foldable Self where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Self where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Self where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Super a = Super {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_958.\n      AST.Traversable1.Class.Traversable1 a_958\n    )\n\ninstance AST.Unmarshal.SymbolMatching Super where\n  matchedSymbols _ = [105]\n  showFailure _ node_959 =\n    \"expected \"\n      GHC.Base.<> ( \"super\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_959 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_959) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_960 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_961 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_962 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_963 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_960\n        c1_961 = TreeSitter.Node.nodeStartPoint node_959\n      TreeSitter.Node.TSPoint\n        r2_962\n        c2_963 = TreeSitter.Node.nodeEndPoint node_959\n\nderiving instance GHC.Classes.Eq a_964 => GHC.Classes.Eq (Super a_964)\n\nderiving instance GHC.Classes.Ord a_965 => GHC.Classes.Ord (Super a_965)\n\nderiving instance GHC.Show.Show a_966 => GHC.Show.Show (Super a_966)\n\ninstance AST.Unmarshal.Unmarshal Super\n\ninstance Data.Foldable.Foldable Super where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Super where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Super where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousThen = AST.Token.Token \"then\" 43\n\ndata True a = True {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_967.\n      AST.Traversable1.Class.Traversable1 a_967\n    )\n\ninstance AST.Unmarshal.SymbolMatching True where\n  matchedSymbols _ = [107]\n  showFailure _ node_968 =\n    \"expected \"\n      GHC.Base.<> ( \"true\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_968 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_968) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_969 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_970 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_971 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_972 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_969\n        c1_970 = TreeSitter.Node.nodeStartPoint node_968\n      TreeSitter.Node.TSPoint\n        r2_971\n        c2_972 = TreeSitter.Node.nodeEndPoint node_968\n\nderiving instance GHC.Classes.Eq a_973 => GHC.Classes.Eq (True a_973)\n\nderiving instance GHC.Classes.Ord a_974 => GHC.Classes.Ord (True a_974)\n\nderiving instance GHC.Show.Show a_975 => GHC.Show.Show (True a_975)\n\ninstance AST.Unmarshal.Unmarshal True\n\ninstance Data.Foldable.Foldable True where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor True where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable True where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousUndef = AST.Token.Token \"undef\" 98\n\ndata Uninterpreted a = Uninterpreted {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_976.\n      AST.Traversable1.Class.Traversable1 a_976\n    )\n\ninstance AST.Unmarshal.SymbolMatching Uninterpreted where\n  matchedSymbols _ = [3]\n  showFailure _ node_977 =\n    \"expected \"\n      GHC.Base.<> ( \"uninterpreted\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_977 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_977) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_978 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_979 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_980 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_981 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_978\n        c1_979 = TreeSitter.Node.nodeStartPoint node_977\n      TreeSitter.Node.TSPoint\n        r2_980\n        c2_981 = TreeSitter.Node.nodeEndPoint node_977\n\nderiving instance GHC.Classes.Eq a_982 => GHC.Classes.Eq (Uninterpreted a_982)\n\nderiving instance GHC.Classes.Ord a_983 => GHC.Classes.Ord (Uninterpreted a_983)\n\nderiving instance GHC.Show.Show a_984 => GHC.Show.Show (Uninterpreted a_984)\n\ninstance AST.Unmarshal.Unmarshal Uninterpreted\n\ninstance Data.Foldable.Foldable Uninterpreted where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Uninterpreted where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Uninterpreted where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousUnless = AST.Token.Token \"unless\" 32\n\ntype AnonymousUntil = AST.Token.Token \"until\" 34\n\ntype AnonymousWhen = AST.Token.Token \"when\" 40\n\ntype AnonymousWhile = AST.Token.Token \"while\" 33\n\ntype AnonymousYield = AST.Token.Token \"yield\" 26\n\ntype AnonymousLBrace = AST.Token.Token \"{\" 5\n\ntype AnonymousPipe = AST.Token.Token \"|\" 14\n\ntype AnonymousPipeEqual = AST.Token.Token \"|=\" 58\n\ntype AnonymousPipePipe = AST.Token.Token \"||\" 71\n\ntype AnonymousPipePipeEqual = AST.Token.Token \"||=\" 57\n\ntype AnonymousRBrace = AST.Token.Token \"}\" 6\n\ntype AnonymousTilde = AST.Token.Token \"~\" 91\n"
  },
  {
    "path": "semantic-ruby/src/Language/Ruby/Grammar.hs",
    "content": "{-# LANGUAGE TemplateHaskell #-}\nmodule Language.Ruby.Grammar\n( tree_sitter_ruby\n, Grammar(..)\n) where\n\nimport AST.Grammar.TH\nimport Language.Haskell.TH\nimport TreeSitter.Ruby (tree_sitter_ruby)\n\n-- | Statically-known rules corresponding to symbols in the grammar.\nmkStaticallyKnownRuleGrammarData (mkName \"Grammar\") tree_sitter_ruby\n"
  },
  {
    "path": "semantic-ruby/src/Language/Ruby/Tags.hs",
    "content": "{-# LANGUAGE DefaultSignatures #-}\n{-# LANGUAGE DisambiguateRecordFields #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE LambdaCase #-}\n{-# LANGUAGE NamedFieldPuns #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n\n\nmodule Language.Ruby.Tags\n  ( ToTags (..),\n  )\nwhere\n\nimport           AST.Element\nimport qualified AST.Parse as Parse\nimport           AST.Token\nimport           AST.Traversable1\nimport qualified AST.Unmarshal as TS\nimport           Control.Effect.Reader\nimport           Control.Effect.State\nimport           Control.Effect.Writer\nimport           Control.Monad\nimport           Data.Foldable\nimport           Data.Text (Text)\nimport qualified Language.Ruby.AST as Rb\nimport           Proto.Semantic as P\nimport           Source.Loc\nimport           Source.Range as Range\nimport           Source.Source as Source\nimport qualified Tags.Tagging.Precise as Tags\n\nclass ToTags t where\n  tags ::\n    ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n      Has (Writer Tags.Tags) sig m,\n      Has (State [Text]) sig m\n    ) =>\n    t Loc ->\n    m ()\n  default tags ::\n    ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n      Has (Writer Tags.Tags) sig m,\n      Has (State [Text]) sig m,\n      Traversable1 ToTags t\n    ) =>\n    t Loc ->\n    m ()\n  tags = gtags\n\ninstance ToTags (Token sym n) where tags _ = pure ()\n\ninstance (ToTags l, ToTags r) => ToTags (l :+: r) where\n  tags (L1 l) = tags l\n  tags (R1 r) = tags r\n\n-- These are all valid, but point to methods in Kernel and other parts of the\n-- Ruby stdlib. A la carte displays some of these, but not others and since we\n-- have nothing to link to yet (can't jump-to-def), we hide them from the\n-- current tags output.\nnameBlacklist :: [Text]\nnameBlacklist =\n  [ \"alias\",\n    \"load\",\n    \"require_relative\",\n    \"require\",\n    \"super\",\n    \"undef\",\n    \"__FILE__\",\n    \"__LINE__\",\n    \"lambda\"\n  ]\n\nyieldTag :: (Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m) => Text -> P.SyntaxType -> P.NodeType -> Loc -> Range -> m ()\nyieldTag name P.CALL _ _ _ | name `elem` nameBlacklist = pure ()\nyieldTag name kind ty loc srcLineRange = Tags.yield name kind ty loc srcLineRange\n\ninstance ToTags Rb.Class where\n  tags\n    t@Rb.Class\n      { ann = Loc {byteRange = Range {start}},\n        name = Parse.Success expr,\n        extraChildren\n      } = enterScope True $ case expr of\n      Prj Rb.Constant {text, ann}                                    -> yield text ann\n      Prj Rb.ScopeResolution {name = EPrj Rb.Constant {text, ann}}   -> yield text ann\n      Prj Rb.ScopeResolution {name = EPrj Rb.Identifier {text, ann}} -> yield text ann\n      _                                                              -> gtags t\n      where\n        range' = case extraChildren of\n          EPrj Rb.Superclass {ann = Loc {byteRange = Range {end}}} : _ -> Range start end\n          _                                                            -> Range start (getEnd expr)\n        getEnd = Range.end . byteRange . TS.gann\n        yield name loc = yieldTag name P.CLASS P.DEFINITION loc range' >> gtags t\n  tags _ = pure ()\n\ninstance ToTags Rb.SingletonClass where\n  tags\n    t@Rb.SingletonClass\n      { ann = Loc {byteRange = range@Range {start}},\n        value = Parse.Success (Rb.Arg expr),\n        extraChildren\n      } = enterScope True $ case expr of\n      Prj (Rb.Primary (Prj (Rb.Lhs (Prj (Rb.Variable (Prj Rb.Constant {text, ann}))))))                -> yield text ann\n      Prj (Rb.Primary (Prj (Rb.Lhs (Prj Rb.ScopeResolution {name = EPrj Rb.Constant {text, ann}}))))   -> yield text ann\n      Prj (Rb.Primary (Prj (Rb.Lhs (Prj Rb.ScopeResolution {name = EPrj Rb.Identifier {text, ann}})))) -> yield text ann\n      _                                                                                                -> gtags t\n      where\n        range' = case extraChildren of\n          Parse.Success x : _ -> Range start (getStart x)\n          _                   -> range\n        getStart = Range.start . byteRange . TS.gann\n        yield name loc = yieldTag name P.CLASS P.DEFINITION loc range' >> gtags t\n  tags _ = pure ()\n\ninstance ToTags Rb.Module where\n  tags\n    t@Rb.Module\n      { ann = Loc {byteRange = Range {start}},\n        name = Parse.Success expr,\n        extraChildren\n      } = enterScope True $ case expr of\n      Prj Rb.Constant {text, ann}                                    -> yield text ann\n      Prj Rb.ScopeResolution {name = EPrj Rb.Constant {text, ann}}   -> yield text ann\n      Prj Rb.ScopeResolution {name = EPrj Rb.Identifier {text, ann}} -> yield text ann\n      _                                                              -> gtags t\n      where\n        range' = case extraChildren of\n          Parse.Success x : _ -> Range start (getStart x)\n          _                   -> Range start (getEnd expr)\n        getEnd = Range.end . byteRange . TS.gann\n        getStart = Range.start . byteRange . TS.gann\n        yield name loc = yieldTag name P.MODULE P.DEFINITION loc range' >> gtags t\n  tags _ = pure ()\n\nyieldMethodNameTag ::\n  ( Has (State [Text]) sig m,\n    Has (Reader Source) sig m,\n    Has (State Tags.LineIndices) sig m,\n    Has (Writer Tags.Tags) sig m,\n    Traversable1 ToTags t\n  ) =>\n  t Loc ->\n  Range ->\n  Rb.MethodName Loc ->\n  m ()\nyieldMethodNameTag t range (Rb.MethodName expr) = enterScope True $ case expr of\n  Prj Rb.Identifier {text, ann}                                             -> yield text ann\n  Prj Rb.Constant {text, ann}                                               -> yield text ann\n  -- Prj Rb.ClassVariable { text = name } -> yield name\n  Prj Rb.Operator {text, ann}                                               -> yield text ann\n  -- Prj Rb.GlobalVariable { text = name } -> yield name\n  -- Prj Rb.InstanceVariable { text = name } -> yield name\n  Prj Rb.Setter {extraChildren = Parse.Success (Rb.Identifier {text, ann})} -> yield (text <> \"=\") ann-- NB: Matches existing tags output, TODO: Remove this.\n        -- TODO: Should we report symbol method names as tags?\n        -- Prj Rb.Symbol { extraChildren = [Prj Rb.EscapeSequence { text = name }] } -> yield name\n  _                                                                         -> gtags t\n  where\n    yield name loc = yieldTag name P.METHOD P.DEFINITION loc range >> gtags t\n\nenterScope :: (Has (State [Text]) sig m) => Bool -> m () -> m ()\nenterScope createNew m = do\n  locals <- get @[Text]\n  when createNew $ put @[Text] [] -- NB: Matches existing behavior in assignment, not necessarily correct\n  m\n  put locals\n\ninstance ToTags Rb.Method where\n  tags\n    t@Rb.Method\n      { ann = Loc {byteRange = Range {start}},\n        name = Parse.Success n,\n        parameters\n      } = yieldMethodNameTag t range' n\n      where\n        range' = case parameters of\n          Just (Parse.Success (Rb.MethodParameters {ann = Loc {byteRange = Range {end}}})) -> Range start end\n          _                                                                                -> Range start (getEnd n)\n        getEnd = Range.end . byteRange . TS.gann\n  tags _ = pure ()\n\ninstance ToTags Rb.SingletonMethod where\n  tags\n    t@Rb.SingletonMethod\n      { ann = Loc {byteRange = Range {start}},\n        name = Parse.Success n,\n        parameters\n      } = yieldMethodNameTag t range' n\n      where\n        range' = case parameters of\n          Just (Parse.Success (Rb.MethodParameters {ann = Loc {byteRange = Range {end}}})) -> Range start end\n          _                                                                                -> Range start (getEnd n)\n        getEnd = Range.end . byteRange . TS.gann\n  tags _ = pure ()\n\ninstance ToTags Rb.Block where\n  tags = enterScope False . gtags\n\ninstance ToTags Rb.DoBlock where\n  tags = enterScope False . gtags\n\ninstance ToTags Rb.Lambda where\n  tags Rb.Lambda {body = Parse.Success b, parameters} = enterScope False $ do\n    case parameters of\n      Just (Parse.Success p) -> tags p\n      _                      -> pure ()\n    tags b\n  tags _ = pure ()\n\ninstance ToTags Rb.If where\n  tags Rb.If {condition = Parse.Success cond, consequence, alternative} = do\n    tags cond\n    case consequence of\n      Just (Parse.Success cons) -> tags cons\n      _                         -> pure ()\n    case alternative of\n      Just (Parse.Success alt) -> tags alt\n      _                        -> pure ()\n  tags _ = pure ()\n\ninstance ToTags Rb.Elsif where\n  tags Rb.Elsif {condition = Parse.Success cond, consequence, alternative} = do\n    tags cond\n    case consequence of\n      Just (Parse.Success cons) -> tags cons\n      _                         -> pure ()\n    case alternative of\n      Just (Parse.Success alt) -> tags alt\n      _                        -> pure ()\n  tags _ = pure ()\n\ninstance ToTags Rb.Unless where\n  tags Rb.Unless {condition = Parse.Success cond, consequence, alternative} = do\n    tags cond\n    case consequence of\n      Just (Parse.Success cons) -> tags cons\n      _                         -> pure ()\n    case alternative of\n      Just (Parse.Success alt) -> tags alt\n      _                        -> pure ()\n  tags _ = pure ()\n\ninstance ToTags Rb.While where\n  tags Rb.While {condition = Parse.Success cond, body = Parse.Success b} = tags cond >> tags b\n  tags _                                                                 = pure ()\n\ninstance ToTags Rb.Until where\n  tags Rb.Until {condition = Parse.Success cond, body = Parse.Success b} = tags cond >> tags b\n  tags _                                                                 = pure ()\n\ninstance ToTags Rb.Regex where\n  tags Rb.Regex {} = pure ()\n\ninstance ToTags Rb.Subshell where\n  tags Rb.Subshell {} = pure ()\n\n-- TODO: Line of source produced here could be better.\ninstance ToTags Rb.Lhs where\n  tags t@(Rb.Lhs expr) = case expr of\n    -- NOTE: Calls do not look for locals\n    Prj Rb.Call {ann = Loc {byteRange}, method} -> case method of\n      EPrj Rb.Identifier {text, ann} -> yieldCall text ann byteRange\n      EPrj Rb.Constant {text, ann}   -> yieldCall text ann byteRange\n      EPrj Rb.Operator {text, ann}   -> yieldCall text ann byteRange\n      _                              -> gtags t\n    -- These do check for locals before yielding a call tag\n    Prj (Rb.Variable (Prj Rb.Identifier {ann = loc@Loc {byteRange}, text})) -> yield text P.CALL loc byteRange\n    Prj Rb.ScopeResolution {ann = loc@Loc {byteRange}, name = EPrj Rb.Identifier {text}} -> yield text P.CALL loc byteRange\n    Prj (Rb.Variable (Prj Rb.Constant { ann = loc@Loc { byteRange }, text })) -> yield text P.CALL loc byteRange -- TODO: Should yield Constant\n    Prj Rb.ScopeResolution { ann = loc@Loc { byteRange }, name = EPrj Rb.Constant { text } } -> yield text P.CALL loc byteRange -- TODO: Should yield Constant\n    _ -> gtags t\n    where\n      yieldCall name loc range = yieldTag name P.CALL P.REFERENCE loc range >> gtags t\n      yield name kind loc range = do\n        locals <- get @[Text]\n        unless (name `elem` locals) $ yieldTag name kind P.REFERENCE loc range\n        gtags t\n\n-- TODO: Line of source produced here could be better.\ninstance ToTags Rb.MethodCall where\n  tags\n    t@Rb.MethodCall\n      { ann = Loc {byteRange = byteRange@Range {}},\n        method = expr\n      } = case expr of\n      EPrj (Rb.Variable (Prj Rb.Identifier {text, ann})) -> yield text P.CALL ann\n      EPrj (Rb.Variable (Prj Rb.Constant {text, ann})) -> yield text P.CALL ann -- TODO: Should yield Constant\n      EPrj Rb.ScopeResolution {name = EPrj Rb.Identifier {text, ann}} -> yield text P.CALL ann\n      EPrj Rb.ScopeResolution {name = EPrj Rb.Constant {text, ann}} -> yield text P.CALL ann -- TODO: Should yield Constant\n      EPrj Rb.Call {method} -> case method of\n        EPrj Rb.Identifier {text, ann} -> yield text P.CALL ann\n        EPrj Rb.Constant {text, ann}   -> yield text P.CALL ann\n        EPrj Rb.Operator {text, ann}   -> yield text P.CALL ann\n        _                              -> gtags t\n      _ -> gtags t\n      where\n        yield name kind loc = yieldTag name kind P.REFERENCE loc byteRange >> gtags t\n\ninstance ToTags Rb.Alias where\n  tags\n    t@Rb.Alias\n      { alias = Parse.Success (Rb.MethodName aliasExpr),\n        name = Parse.Success (Rb.MethodName nameExpr),\n        ann = Loc {byteRange}\n      } = do\n      case aliasExpr of\n        Prj Rb.Identifier {ann, text} -> yieldTag text P.FUNCTION P.DEFINITION ann byteRange\n        _                             -> tags aliasExpr\n      case nameExpr of\n        Prj Rb.Identifier {ann, text} -> yieldTag text P.CALL P.REFERENCE ann byteRange\n        _                             -> tags nameExpr\n      gtags t\n  tags _ = pure ()\n\ninstance ToTags Rb.Undef where\n  tags\n    t@Rb.Undef\n      { extraChildren,\n        ann = Loc {byteRange}\n      } = do\n      for_ extraChildren $\n        \\case\n          Parse.Success (Rb.MethodName expr) -> do\n            case expr of\n              Prj Rb.Identifier {ann, text} -> yieldTag text P.CALL P.REFERENCE ann byteRange\n              _                             -> tags expr\n          Parse.Fail _ -> pure ()\n      gtags t\n\n\nintroduceLocals ::\n  ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n    Has (Writer Tags.Tags) sig m,\n    Has (State [Text]) sig m\n  ) =>\n  [ Parse.Err\n      ( (:+:)\n          Rb.BlockParameter\n          ( Rb.DestructuredParameter\n              :+: ( Rb.HashSplatParameter\n                      :+: ( Rb.Identifier\n                              :+: ( Rb.KeywordParameter\n                                      :+: (Rb.OptionalParameter :+: Rb.SplatParameter)\n                                  )\n                          )\n                  )\n          )\n          Loc\n      )\n  ] ->\n  m ()\nintroduceLocals params = for_ params $ \\param -> case param of\n  EPrj Rb.BlockParameter {name = Parse.Success (Rb.Identifier {text = lvar})} -> modify (lvar :)\n  EPrj Rb.DestructuredParameter {extraChildren} -> introduceLocals extraChildren\n  EPrj Rb.HashSplatParameter {name = Just (Parse.Success (Rb.Identifier {text = lvar}))} -> modify (lvar :)\n  EPrj Rb.Identifier {text = lvar} -> modify (lvar :)\n  EPrj Rb.KeywordParameter {name = Parse.Success (Rb.Identifier {text = lvar})} -> modify (lvar :)\n  EPrj Rb.OptionalParameter {name = Parse.Success (Rb.Identifier {text = lvar})} -> modify (lvar :)\n  EPrj Rb.SplatParameter {name = Just (Parse.Success (Rb.Identifier {text = lvar}))} -> modify (lvar :)\n  _ -> pure ()\n\ninstance ToTags Rb.MethodParameters where\n  tags t@Rb.MethodParameters {extraChildren} = introduceLocals extraChildren >> gtags t\n\ninstance ToTags Rb.LambdaParameters where\n  tags t@Rb.LambdaParameters {extraChildren} = introduceLocals extraChildren >> gtags t\n\ninstance ToTags Rb.BlockParameters where\n  tags t@Rb.BlockParameters {extraChildren} = introduceLocals extraChildren >> gtags t\n\ninstance ToTags Rb.Assignment where\n  tags t@Rb.Assignment {left} = do\n    case left of\n      EPrj (Rb.Lhs (Prj (Rb.Variable (Prj Rb.Identifier {text})))) -> modify (text :)\n      EPrj Rb.LeftAssignmentList {extraChildren}                   -> introduceLhsLocals extraChildren\n      _                                                            -> pure ()\n    gtags t\n    where\n      introduceLhsLocals xs = for_ xs $ \\x -> case x of\n        EPrj (Rb.Lhs (Prj (Rb.Variable (Prj Rb.Identifier {text})))) -> modify (text :)\n        EPrj Rb.DestructuredLeftAssignment {extraChildren} -> introduceLhsLocals extraChildren\n        EPrj Rb.RestAssignment {extraChildren = Just (Parse.Success (Rb.Lhs (Prj (Rb.Variable (Prj Rb.Identifier {text})))))} -> modify (text :)\n        _ -> pure ()\n\ninstance ToTags Rb.OperatorAssignment where\n  tags t@Rb.OperatorAssignment {left} = do\n    case left of\n      EPrj (Rb.Lhs (Prj (Rb.Variable (Prj Rb.Identifier {text})))) -> modify (text :)\n      _                                                            -> pure ()\n    gtags t\n\ngtags ::\n  ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n    Has (Writer Tags.Tags) sig m,\n    Has (State [Text]) sig m,\n    Traversable1 ToTags t\n  ) =>\n  t Loc ->\n  m ()\ngtags = traverse1_ @ToTags (const (pure ())) tags\n\n\n-- instance ToTags Rb.Alias\ninstance ToTags Rb.Arg\ninstance ToTags Rb.ArgumentList\ninstance ToTags Rb.Array\n-- instance ToTags Rb.Assignment\ninstance ToTags Rb.BareString\ninstance ToTags Rb.BareSymbol\ninstance ToTags Rb.Begin\ninstance ToTags Rb.BeginBlock\ninstance ToTags Rb.Binary\n-- instance ToTags Rb.Block\ninstance ToTags Rb.BlockArgument\ninstance ToTags Rb.BlockParameter\n-- instance ToTags Rb.BlockParameters\ninstance ToTags Rb.Break\ninstance ToTags Rb.Call\ninstance ToTags Rb.Case\ninstance ToTags Rb.ChainedString\ninstance ToTags Rb.Character\n-- instance ToTags Rb.Class\ninstance ToTags Rb.ClassVariable\ninstance ToTags Rb.Complex\ninstance ToTags Rb.Conditional\ninstance ToTags Rb.Constant\ninstance ToTags Rb.DestructuredLeftAssignment\ninstance ToTags Rb.DestructuredParameter\ninstance ToTags Rb.Do\n-- instance ToTags Rb.DoBlock\ninstance ToTags Rb.ElementReference\ninstance ToTags Rb.Else\n-- instance ToTags Rb.Elsif\ninstance ToTags Rb.EmptyStatement\ninstance ToTags Rb.EndBlock\ninstance ToTags Rb.Ensure\ninstance ToTags Rb.EscapeSequence\ninstance ToTags Rb.ExceptionVariable\ninstance ToTags Rb.Exceptions\ninstance ToTags Rb.False\ninstance ToTags Rb.Float\ninstance ToTags Rb.For\ninstance ToTags Rb.GlobalVariable\ninstance ToTags Rb.Hash\ninstance ToTags Rb.HashSplatArgument\ninstance ToTags Rb.HashSplatParameter\ninstance ToTags Rb.HeredocBeginning\ninstance ToTags Rb.HeredocEnd\ninstance ToTags Rb.Identifier\n-- instance ToTags Rb.If\ninstance ToTags Rb.IfModifier\ninstance ToTags Rb.In\ninstance ToTags Rb.InstanceVariable\ninstance ToTags Rb.Integer\ninstance ToTags Rb.Interpolation\ninstance ToTags Rb.KeywordParameter\n-- instance ToTags Rb.Lambda\n-- instance ToTags Rb.LambdaParameters\ninstance ToTags Rb.LeftAssignmentList\n-- instance ToTags Rb.Lhs\n-- instance ToTags Rb.Method\n-- instance ToTags Rb.MethodCall\ninstance ToTags Rb.MethodName\n-- instance ToTags Rb.MethodParameters\n-- instance ToTags Rb.Module\ninstance ToTags Rb.Next\ninstance ToTags Rb.Nil\ninstance ToTags Rb.Operator\n-- instance ToTags Rb.OperatorAssignment\ninstance ToTags Rb.OptionalParameter\ninstance ToTags Rb.Pair\ninstance ToTags Rb.ParenthesizedStatements\ninstance ToTags Rb.Pattern\ninstance ToTags Rb.Primary\ninstance ToTags Rb.Program\ninstance ToTags Rb.Range\ninstance ToTags Rb.Rational\ninstance ToTags Rb.Redo\n-- instance ToTags Rb.Regex\ninstance ToTags Rb.Rescue\ninstance ToTags Rb.RescueModifier\ninstance ToTags Rb.RestAssignment\ninstance ToTags Rb.Retry\ninstance ToTags Rb.Return\ninstance ToTags Rb.RightAssignmentList\ninstance ToTags Rb.ScopeResolution\ninstance ToTags Rb.Self\ninstance ToTags Rb.Setter\n-- instance ToTags Rb.SingletonClass\n-- instance ToTags Rb.SingletonMethod\ninstance ToTags Rb.SplatArgument\ninstance ToTags Rb.SplatParameter\ninstance ToTags Rb.Statement\ninstance ToTags Rb.String\ninstance ToTags Rb.StringArray\n-- instance ToTags Rb.Subshell\ninstance ToTags Rb.Super\ninstance ToTags Rb.Superclass\ninstance ToTags Rb.Symbol\ninstance ToTags Rb.SymbolArray\ninstance ToTags Rb.Then\ninstance ToTags Rb.True\ninstance ToTags Rb.Unary\n-- instance ToTags Rb.Undef\ninstance ToTags Rb.Uninterpreted\n-- instance ToTags Rb.Unless\ninstance ToTags Rb.UnlessModifier\n-- instance ToTags Rb.Until\ninstance ToTags Rb.UntilModifier\ninstance ToTags Rb.Variable\ninstance ToTags Rb.When\n-- instance ToTags Rb.While\ninstance ToTags Rb.WhileModifier\ninstance ToTags Rb.Yield\n"
  },
  {
    "path": "semantic-ruby/src/Language/Ruby.hs",
    "content": "{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE TypeApplications #-}\n\n-- | Semantic functionality for Ruby programs.\nmodule Language.Ruby\n( Term(..)\n, Language.Ruby.Grammar.tree_sitter_ruby\n) where\n\nimport           AST.Marshal.JSON\nimport qualified AST.Unmarshal as TS\nimport           Control.Carrier.State.Strict\nimport           Data.Proxy\nimport           Data.Text (Text)\nimport qualified Language.Ruby.AST as Rb\nimport qualified Language.Ruby.Grammar (tree_sitter_ruby)\nimport qualified Language.Ruby.Tags as RbTags\nimport qualified Tags.Tagging.Precise as Tags\n\nnewtype Term a = Term { getTerm :: Rb.Program a }\n  deriving MarshalJSON\n\ninstance TS.SymbolMatching Term where\n  matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy Rb.Program)\n  showFailure _ = TS.showFailure (Proxy :: Proxy Rb.Program)\n\ninstance TS.Unmarshal Term where\n  matchers = fmap (fmap (TS.hoist Term)) TS.matchers\n\ninstance Tags.ToTags Term where\n  tags src = Tags.runTagging src . evalState @[Text] [] . RbTags.tags . getTerm\n"
  },
  {
    "path": "semantic-ruby/test/PreciseTest.hs",
    "content": "{-# LANGUAGE CPP #-}\n{-# LANGUAGE DisambiguateRecordFields #-}\n{-# LANGUAGE ImplicitParams #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE TypeApplications #-}\n{-# OPTIONS_GHC -Wno-unused-imports #-}\nmodule Main (main) where\n\nimport           AST.TestHelpers\nimport           AST.Unmarshal\nimport           Control.Concurrent\nimport qualified Language.Ruby.AST as Ruby\nimport           System.IO\nimport qualified System.Path.Fixture as Fixture\nimport           Test.Tasty\nimport           TreeSitter.Ruby\n\nmain :: IO ()\nmain = do\n#if BAZEL_BUILD\n  rf <- Fixture.create\n  let ?project = \"external/tree-sitter-ruby\"\n      ?runfiles = rf\n  let dirs = Fixture.absRelDir \"test/corpus\"\n#else\n  dirs <- Ruby.getTestCorpusDir\n#endif\n  readCorpusFiles' dirs\n    >>= traverse (testCorpus parse)\n    >>= defaultMain . tests\n  where parse = parseByteString @Ruby.Program @() tree_sitter_ruby\n\ntests :: [TestTree] -> TestTree\ntests = testGroup \"tree-sitter-ruby corpus tests\"\n"
  },
  {
    "path": "semantic-rust/BUILD.bazel",
    "content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\n    \"//:build/common.bzl\",\n    \"semantic_language_library\",\n)\n\nsemantic_language_library(\n    name = \"semantic-rust\",\n    srcs = glob([\"src/**/*.hs\"]),\n    language = \"rust\",\n)\n"
  },
  {
    "path": "semantic-rust/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2020 GitHub\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "semantic-rust/README.md",
    "content": "# Semantic support for Rust\n\nThis package implements `semantic` support for [Rust](https://www.rust-lang.org/).\n\n## Generating AST\n\n```\ncd semantic-rust\ncabal v2-repl\nλ> :seti -XOverloadedStrings\nλ> :seti -XTypeApplications\nλ> import Source.Span\nλ> import Source.Range\nλ> import AST.Unmarshal\nλ> TS.parseByteString @Language.Rust.AST.SourceFile @(Source.Span.Span, Source.Range.Range) Language.Rust.Grammar.tree_sitter_rust \"let x = 1;\"\nRight (SourceFile {ann = (Span {start = Pos {line = 0, column = 0}, end = Pos {line = 0, column = 10}},Range {start = 0, end = 10}), extraChildren = [L1 (DeclarationStatement {getDeclarationStatement = R1 (L1 (L1 (R1 (LetDeclaration {ann = (Span {start = Pos {line = 0, column = 0}, end = Pos {line = 0, column = 10}},Range {start = 0, end = 10}), pattern = Pattern {getPattern = L1 (R1 (L1 (L1 (Identifier {ann = (Span {start = Pos {line = 0, column = 4}, end = Pos {line = 0, column = 5}},Range\n{start = 4, end = 5}), text = \"x\"}))))}, value = Just (Expression {getExpression = L1 (L1 (L1 (L1 (L1 (Literal {getLiteral = R1 (L1 (IntegerLiteral {ann = (Span {start = Pos {line = 0, column = 8}, end = Pos {line = 0, column = 9}},Range {start = 8, end = 9}), text = \"1\"}))})))))}), type' = Nothing, extraChildren = Nothing}))))})]})\n```\n"
  },
  {
    "path": "semantic-rust/Setup.hs",
    "content": "import Distribution.Simple\nmain = defaultMain\n"
  },
  {
    "path": "semantic-rust/semantic-rust.cabal",
    "content": "cabal-version:       2.4\n\nname:                semantic-rust\nversion:             0.0.0.0\nsynopsis:            Semantic support for Rust\ndescription:         Semantic support for Rust.\nhomepage:            https://github.com/github/semantic/tree/master/semantic-rust#readme\nbug-reports:         https://github.com/github/semantic/issues\nlicense:             MIT\nlicense-file:        LICENSE\nauthor:              The Semantic authors, Alexei Pastuchov\nmaintainer:          opensource+semantic@github.com\ncopyright:           (c) 2020 GitHub, Inc.\ncategory:            Language\nbuild-type:          Simple\nstability:           alpha\nextra-source-files:  README.md\n\ntested-with:         GHC == 8.6.5\n\ncommon haskell\n  default-language:    Haskell2010\n  ghc-options:\n    -Weverything\n    -Wno-missing-local-signatures\n    -Wno-missing-import-lists\n    -Wno-implicit-prelude\n    -Wno-safe\n    -Wno-unsafe\n    -Wno-name-shadowing\n    -Wno-monomorphism-restriction\n    -Wno-missed-specialisations\n    -Wno-all-missed-specialisations\n    -Wno-star-is-type\n  if (impl(ghc >= 8.8))\n    ghc-options: -Wno-missing-deriving-strategies\n  if (impl(ghc >= 8.10))\n    ghc-options:\n      -Wno-missing-safe-haskell-mode\n      -Wno-prepositive-qualified-module\n  if (impl(ghc >= 9.2))\n    ghc-options:\n      -Wno-missing-kind-signatures\n  cpp-options:\n    -DBAZEL_BUILD=0\n\nlibrary\n  import: haskell\n  exposed-modules:\n    Language.Rust\n    Language.Rust.AST\n    Language.Rust.Grammar\n    Language.Rust.Tags\n  hs-source-dirs:      src\n  build-depends:\n    , base  >= 4.13 && < 5\n    , fused-effects ^>= 1.1\n    , semantic-ast\n    , semantic-source ^>= 0.2\n    , semantic-tags ^>= 0.0\n    , template-haskell  >= 2.15 && < 2.22\n    , text ^>= 1.2.3\n    , tree-sitter ^>= 0.9\n    , tree-sitter-rust ^>= 0.1.0.0\n\ntest-suite test\n  import: haskell\n  type:             exitcode-stdio-1.0\n  hs-source-dirs:   test\n  main-is:          Test.hs\n  build-depends:\n    , base\n    , filepath\n    , semantic-ast\n    , semantic-rust\n    , tasty\n"
  },
  {
    "path": "semantic-rust/src/Language/Rust/AST.hs",
    "content": "{-# LANGUAGE CPP #-}\n{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE DeriveTraversable #-}\n{-# LANGUAGE DerivingStrategies #-}\n{-# LANGUAGE DuplicateRecordFields #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE StandaloneDeriving #-}\n{-# LANGUAGE TemplateHaskell #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# OPTIONS_GHC -Wno-unused-imports #-}\n\nmodule Language.Rust.AST\n( module Language.Rust.AST\n, Rust.getTestCorpusDir\n) where\n\nimport           AST.GenerateSyntax\nimport           AST.Token\nimport           Language.Haskell.TH.Syntax (runIO)\nimport qualified TreeSitter.Rust as Rust (getNodeTypesPath, getTestCorpusDir, tree_sitter_rust)\n\n#ifdef NODE_TYPES_PATH\nastDeclarationsForLanguage Rust.tree_sitter_rust NODE_TYPES_PATH\n#else\nrunIO Rust.getNodeTypesPath >>= astDeclarationsForLanguage Rust.tree_sitter_rust\n#endif\n"
  },
  {
    "path": "semantic-rust/src/Language/Rust/Grammar.hs",
    "content": "{-# LANGUAGE TemplateHaskell #-}\nmodule Language.Rust.Grammar\n( tree_sitter_rust\n, Grammar(..)\n) where\n\nimport AST.Grammar.TH\nimport Language.Haskell.TH\nimport TreeSitter.Rust (tree_sitter_rust)\n\n-- | Statically-known rules corresponding to symbols in the grammar.\nmkStaticallyKnownRuleGrammarData (mkName \"Grammar\") tree_sitter_rust\n"
  },
  {
    "path": "semantic-rust/src/Language/Rust/Tags.hs",
    "content": "{-# LANGUAGE DefaultSignatures #-}\n{-# LANGUAGE DisambiguateRecordFields #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE NamedFieldPuns #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\nmodule Language.Rust.Tags\n( ToTags(..)\n) where\n\nimport           AST.Element\nimport           AST.Token\nimport           AST.Traversable1\nimport           Control.Effect.Reader\nimport           Control.Effect.Writer\nimport qualified Language.Rust.AST as Rust\nimport           Source.Loc\nimport           Source.Source as Source\nimport           Tags.Tag()\nimport qualified Tags.Tagging.Precise as Tags\n\nclass ToTags t where\n  tags\n    :: ( Has (Reader Source) sig m\n       , Has (Writer Tags.Tags) sig m\n       )\n    => t Loc\n    -> m ()\n  default tags\n    :: ( Has (Reader Source) sig m\n       , Has (Writer Tags.Tags) sig m\n       , Traversable1 ToTags t\n       )\n    => t Loc\n    -> m ()\n  tags = gtags\n\ninstance (ToTags l, ToTags r) => ToTags (l :+: r) where\n  tags (L1 l) = tags l\n  tags (R1 r) = tags r\n\ninstance ToTags (Token sym n) where tags _ = pure ()\n\ngtags\n  :: ( Has (Reader Source) sig m\n     , Has (Writer Tags.Tags) sig m\n     , Traversable1 ToTags t\n     )\n  => t Loc\n  -> m ()\ngtags = traverse1_ @ToTags (const (pure ())) tags\n\ninstance ToTags Rust.AbstractType\ninstance ToTags Rust.Arguments\ninstance ToTags Rust.ArrayExpression\ninstance ToTags Rust.ArrayType\ninstance ToTags Rust.AssignmentExpression\ninstance ToTags Rust.AssociatedType\ninstance ToTags Rust.AsyncBlock\ninstance ToTags Rust.AttributeItem\ninstance ToTags Rust.AwaitExpression\ninstance ToTags Rust.BaseFieldInitializer\ninstance ToTags Rust.BinaryExpression\ninstance ToTags Rust.Block\ninstance ToTags Rust.BlockComment\ninstance ToTags Rust.BooleanLiteral\ninstance ToTags Rust.BoundedType\ninstance ToTags Rust.BracketedType\ninstance ToTags Rust.BreakExpression\ninstance ToTags Rust.CallExpression\ninstance ToTags Rust.CapturedPattern\ninstance ToTags Rust.CharLiteral\ninstance ToTags Rust.ClosureExpression\ninstance ToTags Rust.ClosureParameters\ninstance ToTags Rust.CompoundAssignmentExpr\ninstance ToTags Rust.ConstItem\ninstance ToTags Rust.ConstParameter\ninstance ToTags Rust.ConstrainedTypeParameter\ninstance ToTags Rust.ContinueExpression\ninstance ToTags Rust.Crate\ninstance ToTags Rust.DeclarationList\ninstance ToTags Rust.DeclarationStatement\ninstance ToTags Rust.DynamicType\ninstance ToTags Rust.EmptyStatement\ninstance ToTags Rust.EmptyType\ninstance ToTags Rust.EnumItem\ninstance ToTags Rust.EnumVariant\ninstance ToTags Rust.EnumVariantList\ninstance ToTags Rust.EscapeSequence\ninstance ToTags Rust.Expression\ninstance ToTags Rust.ExternCrateDeclaration\ninstance ToTags Rust.ExternModifier\ninstance ToTags Rust.FieldDeclaration\ninstance ToTags Rust.FieldDeclarationList\ninstance ToTags Rust.FieldExpression\ninstance ToTags Rust.FieldIdentifier\ninstance ToTags Rust.FieldInitializer\ninstance ToTags Rust.FieldInitializerList\ninstance ToTags Rust.FieldPattern\ninstance ToTags Rust.FloatLiteral\ninstance ToTags Rust.ForExpression\ninstance ToTags Rust.ForLifetimes\ninstance ToTags Rust.ForeignModItem\ninstance ToTags Rust.FragmentSpecifier\ninstance ToTags Rust.FunctionItem\ninstance ToTags Rust.FunctionModifiers\ninstance ToTags Rust.FunctionSignatureItem\ninstance ToTags Rust.FunctionType\ninstance ToTags Rust.GenericFunction\ninstance ToTags Rust.GenericType\ninstance ToTags Rust.GenericTypeWithTurbofish\ninstance ToTags Rust.HigherRankedTraitBound\ninstance ToTags Rust.Identifier\ninstance ToTags Rust.IfExpression\ninstance ToTags Rust.IfLetExpression\ninstance ToTags Rust.ImplItem\ninstance ToTags Rust.IndexExpression\ninstance ToTags Rust.InnerAttributeItem\ninstance ToTags Rust.IntegerLiteral\ninstance ToTags Rust.LetDeclaration\ninstance ToTags Rust.Lifetime\ninstance ToTags Rust.LineComment\ninstance ToTags Rust.Literal\ninstance ToTags Rust.LiteralPattern\ninstance ToTags Rust.LoopExpression\ninstance ToTags Rust.LoopLabel\ninstance ToTags Rust.MacroDefinition\ninstance ToTags Rust.MacroInvocation\ninstance ToTags Rust.MacroRule\ninstance ToTags Rust.MatchArm\ninstance ToTags Rust.MatchBlock\ninstance ToTags Rust.MatchExpression\ninstance ToTags Rust.MatchPattern\ninstance ToTags Rust.MetaArguments\ninstance ToTags Rust.MetaItem\ninstance ToTags Rust.Metavariable\ninstance ToTags Rust.ModItem\ninstance ToTags Rust.MutPattern\ninstance ToTags Rust.MutableSpecifier\ninstance ToTags Rust.NegativeLiteral\ninstance ToTags Rust.OptionalTypeParameter\ninstance ToTags Rust.OrderedFieldDeclarationList\ninstance ToTags Rust.Parameter\ninstance ToTags Rust.Parameters\ninstance ToTags Rust.ParenthesizedExpression\ninstance ToTags Rust.Pattern\ninstance ToTags Rust.PointerType\ninstance ToTags Rust.PrimitiveType\ninstance ToTags Rust.QualifiedType\ninstance ToTags Rust.RangeExpression\ninstance ToTags Rust.RangePattern\ninstance ToTags Rust.RawStringLiteral\ninstance ToTags Rust.RefPattern\ninstance ToTags Rust.ReferenceExpression\ninstance ToTags Rust.ReferencePattern\ninstance ToTags Rust.ReferenceType\ninstance ToTags Rust.RemainingFieldPattern\ninstance ToTags Rust.RemovedTraitBound\ninstance ToTags Rust.ReturnExpression\ninstance ToTags Rust.ScopedIdentifier\ninstance ToTags Rust.ScopedTypeIdentifier\ninstance ToTags Rust.ScopedUseList\ninstance ToTags Rust.Self\ninstance ToTags Rust.SelfParameter\ninstance ToTags Rust.ShorthandFieldIdentifier\ninstance ToTags Rust.ShorthandFieldInitializer\ninstance ToTags Rust.SlicePattern\ninstance ToTags Rust.SourceFile\ninstance ToTags Rust.StaticItem\ninstance ToTags Rust.StringLiteral\ninstance ToTags Rust.StructExpression\ninstance ToTags Rust.StructItem\ninstance ToTags Rust.StructPattern\ninstance ToTags Rust.Super\ninstance ToTags Rust.TokenBindingPattern\ninstance ToTags Rust.TokenRepetition\ninstance ToTags Rust.TokenRepetitionPattern\ninstance ToTags Rust.TokenTree\ninstance ToTags Rust.TokenTreePattern\ninstance ToTags Rust.TraitBounds\ninstance ToTags Rust.TraitItem\ninstance ToTags Rust.TryExpression\ninstance ToTags Rust.TupleExpression\ninstance ToTags Rust.TuplePattern\ninstance ToTags Rust.TupleStructPattern\ninstance ToTags Rust.TupleType\ninstance ToTags Rust.Type\ninstance ToTags Rust.TypeArguments\ninstance ToTags Rust.TypeBinding\ninstance ToTags Rust.TypeCastExpression\ninstance ToTags Rust.TypeIdentifier\ninstance ToTags Rust.TypeItem\ninstance ToTags Rust.TypeParameters\ninstance ToTags Rust.UnaryExpression\ninstance ToTags Rust.UnionItem\ninstance ToTags Rust.UnitExpression\ninstance ToTags Rust.UnitType\ninstance ToTags Rust.UnsafeBlock\ninstance ToTags Rust.UseAsClause\ninstance ToTags Rust.UseDeclaration\ninstance ToTags Rust.UseList\ninstance ToTags Rust.UseWildcard\ninstance ToTags Rust.VariadicParameter\ninstance ToTags Rust.VisibilityModifier\ninstance ToTags Rust.WhereClause\ninstance ToTags Rust.WherePredicate\ninstance ToTags Rust.WhileExpression\ninstance ToTags Rust.WhileLetExpression\n"
  },
  {
    "path": "semantic-rust/src/Language/Rust.hs",
    "content": "-- | Semantic functionality for Rust programs.\nmodule Language.Rust\n( Term(..)\n, Language.Rust.Grammar.tree_sitter_rust\n) where\n\nimport           Data.Proxy\nimport qualified Language.Rust.AST as Rust\nimport qualified Language.Rust.Tags as RustTags\nimport qualified Tags.Tagging.Precise as Tags\nimport qualified Language.Rust.Grammar (tree_sitter_rust)\nimport qualified AST.Unmarshal as TS\n\nnewtype Term a = Term { getTerm :: Rust.SourceFile a }\n\ninstance TS.SymbolMatching Term where\n  matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy Rust.SourceFile)\n  showFailure _ = TS.showFailure (Proxy :: Proxy Rust.SourceFile)\n\ninstance TS.Unmarshal Term where\n  matchers = fmap (fmap (TS.hoist Term)) TS.matchers\n\ninstance Tags.ToTags Term where\n  tags src = Tags.runTagging src . RustTags.tags . getTerm\n"
  },
  {
    "path": "semantic-rust/test/Test.hs",
    "content": "{-# LANGUAGE CPP #-}\n{-# LANGUAGE ImplicitParams #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE TypeApplications #-}\nmodule Main (main) where\n\nimport           AST.TestHelpers\nimport           AST.Unmarshal (parseByteString)\nimport           Control.Monad (liftM)\nimport qualified Language.Rust.AST as Rust\nimport           Language.Rust.Grammar\nimport           System.FilePath\nimport           Test.Tasty\n\nmain :: IO ()\nmain = do\n#if BAZEL_BUILD\n  rf <- Fixture.create\n  let ?project = \"external/tree-sitter-python\"\n      ?runfiles = rf\n  let dirs = Fixture.absRelDir \"test/corpus\"\n#else\n  dirs <- Rust.getTestCorpusDir\n#endif\n\n\n  excludeMacrosCorpus (readCorpusFiles' dirs)\n    >>= traverse (testCorpus parse)\n    >>= defaultMain . tests\n  where\n    parse = parseByteString @Rust.SourceFile @() tree_sitter_rust\n    excludeMacrosCorpus l = liftM (filter (f \"expressions\") ) l\n      where f p bn = p /= takeBaseName bn\n\ntests :: [TestTree] -> TestTree\ntests = testGroup \"tree-sitter-rust corpus tests\"\n"
  },
  {
    "path": "semantic-scope-graph/BUILD.bazel",
    "content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\n    \"@rules_haskell//haskell:defs.bzl\",\n    \"haskell_binary\",\n    \"haskell_library\",\n)\nload(\n    \"@rules_haskell//haskell:cabal.bzl\",\n    \"haskell_cabal_binary\",\n    \"haskell_cabal_library\",\n)\nload(\n    \"//:build/common.bzl\",\n    \"GHC_FLAGS\",\n)\n\nhaskell_library(\n    name = \"semantic-scope-graph\",\n    srcs = glob([\"src/**/*.hs\"]),\n    compiler_flags = GHC_FLAGS + [\"-XOverloadedStrings\"],\n    deps = [\n        \"//:base\",\n        \"//:containers\",\n        \"//:text\",\n        \"//semantic-analysis\",\n        \"//semantic-source\",\n        \"@stackage//:aeson\",\n        \"@stackage//:algebraic-graphs\",\n        \"@stackage//:fused-effects\",\n        \"@stackage//:generic-lens\",\n        \"@stackage//:hashable\",\n        \"@stackage//:lens\",\n        \"@stackage//:pathtype\",\n        \"@stackage//:semilattices\",\n    ],\n)\n"
  },
  {
    "path": "semantic-scope-graph/CHANGELOG.md",
    "content": "# Revision history for semantic-scope-graph\n\n## 0.1.0.0 -- 2020-01-14\n\n* First version.\n"
  },
  {
    "path": "semantic-scope-graph/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2020 GitHub\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "semantic-scope-graph/README.md",
    "content": "This project contains scope-graphing mechanisms atop the ASTs provided by semantic.\n"
  },
  {
    "path": "semantic-scope-graph/Setup.hs",
    "content": "import Distribution.Simple\nmain = defaultMain\n"
  },
  {
    "path": "semantic-scope-graph/semantic-scope-graph.cabal",
    "content": "cabal-version:       2.4\n\nname:                semantic-scope-graph\nversion:             0.0.0.0\nsynopsis:            Scope Graph computation\ndescription:         Scope Graph computation for ASTs derived from tree-sitter grammars.\nhomepage:            https://github.com/github/semantic/tree/master/semantic-scope-graph#readme\nbug-reports:         https://github.com/github/semantic/issues\nlicense:             MIT\nlicense-file:        LICENSE\nauthor:              The Semantic authors\nmaintainer:          opensource+semantic@github.com\ncopyright:           (c) 2019 GitHub, Inc.\ncategory:            Language\nbuild-type:          Simple\nstability:           alpha\nextra-source-files:  README.md\n\ntested-with:         GHC == 8.6.5\n\nlibrary\n  exposed-modules:\n    Control.Carrier.Sketch.ScopeGraph\n    Control.Effect.ScopeGraph\n    Control.Effect.ScopeGraph.Properties.Declaration\n    Control.Effect.ScopeGraph.Properties.Function\n    Control.Effect.ScopeGraph.Properties.Reference\n    Scope.Graph.AdjacencyList\n    Scope.Graph.Convert\n    Scope.Info\n    Scope.Path\n    Scope.Reference\n    Scope.Scope\n    Scope.Types\n    Data.Hole\n    Data.Module\n    Data.ScopeGraph\n  build-depends:\n    , aeson\n    , base                >= 4.13 && < 5\n    , containers\n    , fused-effects      ^>= 1.1\n    , generic-lens\n    , hashable\n    , lens\n    , semantic-analysis\n    , semantic-source    ^>= 0.2\n    , semilattices\n    , text               ^>= 1.2.3.1\n  hs-source-dirs:      src\n  default-language:    Haskell2010\n  ghc-options:\n    -Weverything\n    -Wno-missing-local-signatures\n    -Wno-missing-import-lists\n    -Wno-implicit-prelude\n    -Wno-safe\n    -Wno-unsafe\n    -Wno-name-shadowing\n    -Wno-monomorphism-restriction\n    -Wno-missed-specialisations\n    -Wno-all-missed-specialisations\n    -Wno-star-is-type\n  if (impl(ghc >= 8.8))\n    ghc-options: -Wno-missing-deriving-strategies\n  if (impl(ghc >= 8.10))\n    ghc-options:\n      -Wno-missing-safe-haskell-mode\n      -Wno-prepositive-qualified-module\n  if (impl(ghc >= 9.2))\n    ghc-options:\n      -Wno-missing-kind-signatures\n"
  },
  {
    "path": "semantic-scope-graph/src/Control/Carrier/Sketch/ScopeGraph.hs",
    "content": "{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE DerivingStrategies #-}\n{-# LANGUAGE DerivingVia #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\n{-# OPTIONS_GHC -fprint-expanded-synonyms #-}\n\n-- | This carrier interprets the Sketch effect, keeping track of\n-- the current scope and in-progress graph internally.\nmodule Control.Carrier.Sketch.ScopeGraph\n  ( SketchC\n  , runSketch\n  , module Control.Effect.ScopeGraph\n  ) where\n\nimport           Analysis.Name (Name)\nimport qualified Analysis.Name as Name\nimport           Control.Carrier.Fresh.Strict\nimport           Control.Carrier.Reader\nimport           Control.Carrier.State.Strict\nimport           Control.Effect.ScopeGraph\nimport           Data.Module (ModuleInfo)\nimport qualified Data.ScopeGraph as ScopeGraph\nimport           Data.Semilattice.Lower\nimport           Scope.Types\n\ntype SketchC addr m\n  = StateC (ScopeGraph Name)\n  ( StateC Name\n  ( ReaderC (CurrentScope Name)\n  ( ReaderC ModuleInfo\n  ( FreshC m\n  ))))\n\nrunSketch ::\n  (Functor m)\n  => ModuleInfo\n  -> SketchC Name m a\n  -> m (ScopeGraph Name, a)\nrunSketch info go\n  = evalFresh 0\n  . runReader @ModuleInfo info\n  . runReader (CurrentScope rootname)\n  . evalState @Name rootname\n  . runState @(ScopeGraph Name) initialGraph\n  $ go\n  where\n    rootname = Name.nameI 0\n    initialGraph = ScopeGraph.insertScope rootname lowerBound lowerBound\n"
  },
  {
    "path": "semantic-scope-graph/src/Control/Effect/ScopeGraph/Properties/Declaration.hs",
    "content": "{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE TypeApplications #-}\n\n-- | The 'Declaration' record type is used by the 'Control.Effect.Sketch' module to keep\n-- track of the parameters that need to be passed when establishing a new declaration.\n-- That is to say, it is a record type primarily used for its selector names.\nmodule Control.Effect.ScopeGraph.Properties.Declaration\n  ( Declaration (..)\n  ) where\n\nimport Analysis.Name (Name)\nimport Data.Generics.Product (field)\nimport Data.ScopeGraph as ScopeGraph (Kind, Relation)\nimport GHC.Generics (Generic)\nimport Source.Span\n\ndata Declaration = Declaration\n  { kind            :: ScopeGraph.Kind\n  , relation        :: ScopeGraph.Relation\n  , associatedScope :: Maybe Name\n  , span            :: Span\n  } deriving Generic\n\ninstance HasSpan Declaration where span_ = field @\"span\"\n"
  },
  {
    "path": "semantic-scope-graph/src/Control/Effect/ScopeGraph/Properties/Function.hs",
    "content": "{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE TypeApplications #-}\n\n-- | The 'Function' record type is used by the 'Control.Effect.Sketch' module to keep\n-- track of the parameters that need to be passed when establishing a new declaration.\n-- That is to say, it is a record type primarily used for its selector names.\nmodule Control.Effect.ScopeGraph.Properties.Function\n  ( Function (..)\n  ) where\n\nimport           Data.Generics.Product (field)\nimport qualified Data.ScopeGraph as ScopeGraph (Kind)\nimport           GHC.Generics (Generic)\nimport           Source.Span\n\ndata Function = Function\n  { kind :: ScopeGraph.Kind\n  , span :: Span\n  } deriving Generic\n\ninstance HasSpan Function where span_ = field @\"span\"\n"
  },
  {
    "path": "semantic-scope-graph/src/Control/Effect/ScopeGraph/Properties/Reference.hs",
    "content": "{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE TypeApplications #-}\n\n-- | The 'Declaration' record type is used by the 'Control.Effect.Sketch' module to keep\n-- track of the parameters that need to be passed when establishing a new reference.\n-- It is currently unused, but will possess more fields in the future as scope graph\n-- functionality is enhanced.\nmodule Control.Effect.ScopeGraph.Properties.Reference\n  ( Reference (..)\n  ) where\n\nimport Control.Lens\nimport Data.ScopeGraph as ScopeGraph (Kind, Relation)\nimport GHC.Generics (Generic)\nimport Prelude hiding (span)\nimport Source.Span\n\ndata Reference = Reference\n  { kind     :: ScopeGraph.Kind\n  , relation :: ScopeGraph.Relation\n  , span     :: Span\n  } deriving (Generic, Show)\n\ninstance HasSpan Reference where\n  span_ = lens span (\\r s -> r { span = s })\n  {-# INLINE span_ #-}\n"
  },
  {
    "path": "semantic-scope-graph/src/Control/Effect/ScopeGraph.hs",
    "content": "{-# LANGUAGE AllowAmbiguousTypes #-}\n{-# LANGUAGE ConstraintKinds #-}\n{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE DuplicateRecordFields #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n\n-- | The ScopeGraph effect is used to build up a scope graph over\n-- the lifetime of a monadic computation. The name is meant to evoke\n-- physically sketching the hierarchical outline of a graph.\nmodule Control.Effect.ScopeGraph\n  ( ScopeGraph\n  , ScopeGraphEff\n  , declare\n  -- Scope Manipulation\n  , currentScope\n  , newEdge\n  , newReference\n  , newScope\n  , withScope\n  , declareFunction\n  , declareMaybeName\n  , reference\n  , Has\n  ) where\n\nimport           Analysis.Name (Name)\nimport qualified Analysis.Name as Name\nimport           Control.Algebra\nimport           Control.Effect.Fresh\nimport           Control.Effect.Reader\nimport           Control.Lens\nimport           Data.List.NonEmpty\nimport           Data.Map.Strict (Map)\nimport qualified Data.Map.Strict as Map\nimport qualified Data.Module as Module\nimport qualified Data.ScopeGraph as ScopeGraph\nimport           Data.Semilattice.Lower\nimport           Data.Text (Text)\nimport           GHC.Records\nimport qualified Scope.Reference as Reference\nimport           Source.Span\n\nimport           Scope.Graph.AdjacencyList (ScopeGraph)\nimport qualified Scope.Graph.AdjacencyList as AdjacencyList\nimport           Scope.Types\n\nimport qualified Control.Effect.ScopeGraph.Properties.Declaration as Props\nimport qualified Control.Effect.ScopeGraph.Properties.Function as Props\nimport qualified Control.Effect.ScopeGraph.Properties.Reference as Props\nimport qualified Control.Effect.ScopeGraph.Properties.Reference as Props.Reference\nimport           Control.Effect.State\n\n-- | Extract the 'Just' of a 'Maybe' in an 'Applicative' context or, given 'Nothing', run the provided action.\nmaybeM :: Applicative f => f a -> Maybe a -> f a\nmaybeM f = maybe f pure\n{-# INLINE maybeM #-}\n\ntype ScopeGraphEff sig m\n  = ( Has (State (ScopeGraph Name)) sig m\n    , Has (State Name) sig m\n    , Has (Reader Module.ModuleInfo) sig m\n    , Has Fresh sig m\n    , Has (Reader (CurrentScope Name)) sig m\n    , Has (Reader Module.ModuleInfo) sig m\n    )\n\ngraphInProgress :: ScopeGraphEff sig m => m (ScopeGraph Name)\ngraphInProgress = get\n\ncurrentScope :: ScopeGraphEff sig m => m (CurrentScope Name)\ncurrentScope = ask\n\nwithScope :: ScopeGraphEff sig m\n          => CurrentScope Name\n          -> m a\n          -> m a\nwithScope scope = local (const scope)\n\n\ndeclare :: ScopeGraphEff sig m => Name -> Props.Declaration -> m ()\ndeclare n props = do\n  CurrentScope current <- currentScope\n  old <- graphInProgress\n  info <- ask\n  let Props.Declaration kind relation associatedScope span = props\n  let (new, _pos) =\n         ScopeGraph.declare\n         (ScopeGraph.Declaration n)\n         info\n         relation\n         ScopeGraph.Public\n         span\n         kind\n         associatedScope\n         current\n         old\n  put new\n\n-- | Establish a reference to a prior declaration.\nreference :: forall sig m . ScopeGraphEff sig m => Text -> Text -> Props.Reference -> m ()\nreference n decl props = do\n  CurrentScope current <- currentScope\n  old <- graphInProgress\n  info <- ask\n  let new =\n         ScopeGraph.reference\n         (ScopeGraph.Reference (Name.name n))\n         info\n         (Props.Reference.span props)\n         (Props.Reference.kind props)\n         (ScopeGraph.Declaration (Name.name decl))\n         current\n         old\n  put new\n\nnewScope :: forall sig m . ScopeGraphEff sig m => Map ScopeGraph.EdgeLabel [Name] -> m Name\nnewScope edges = do\n  old <- graphInProgress\n  name <- Name.gensym\n  let new = ScopeGraph.newScope name edges old\n  name <$ put new\n\n-- | Takes an edge label and a list of names and inserts an import edge to a hole.\nnewEdge :: ScopeGraphEff sig m => ScopeGraph.EdgeLabel -> NonEmpty Name -> m ()\nnewEdge label address = do\n  CurrentScope current <- currentScope\n  old <- graphInProgress\n  let new = ScopeGraph.addImportEdge label (toList address) current old\n  put new\n\nlookupScope :: ScopeGraphEff sig m => Name -> m (ScopeGraph.Scope Name)\nlookupScope address = maybeM undefined . ScopeGraph.lookupScope address =<< get\n\n-- | Inserts a reference.\nnewReference :: ScopeGraphEff sig m => Name -> Props.Reference -> m ()\nnewReference name props = do\n  CurrentScope currentAddress <- currentScope\n  scope <- lookupScope currentAddress\n\n  let refProps = Reference.ReferenceInfo (props ^. span_) (Props.Reference.kind props) lowerBound\n      insertRef' :: ScopeGraph.Path Name -> ScopeGraph.ScopeGraph Name -> ScopeGraph.ScopeGraph Name\n      insertRef' path scopeGraph = let\n          scope' = (ScopeGraph.insertReference (Reference.Reference name) lowerBound (Props.Reference.span props) (getField @\"kind\" props) path) scope\n        in\n          (ScopeGraph.insertScope currentAddress scope' scopeGraph)\n  scopeGraph <- get @(ScopeGraph.ScopeGraph Name)\n  case AdjacencyList.findPath (const Nothing) (ScopeGraph.Declaration name) currentAddress scopeGraph of\n    -- If a path to a declaration is found, insert a reference into the current scope.\n    Just path -> modify (insertRef' path)\n    -- If no path is found, insert a reference with a hole into the current scope.\n    Nothing   ->\n      modify (ScopeGraph.insertScope\n              currentAddress\n              (ScopeGraph.newReference\n                (Reference.Reference name)\n                refProps\n                scope))\n\ndeclareFunction :: forall sig m . ScopeGraphEff sig m => Maybe Name -> Props.Function -> m (Name, Name)\ndeclareFunction name (Props.Function kind span) = do\n  CurrentScope currentScope' <- currentScope\n  let lexicalEdges = Map.singleton ScopeGraph.Lexical [ currentScope' ]\n  associatedScope <- newScope lexicalEdges\n  name' <- declareMaybeName name Props.Declaration\n                                   { Props.relation = ScopeGraph.Default\n                                   , Props.kind = kind\n                                   , Props.associatedScope = Just associatedScope\n                                   , Props.span = span\n                                   }\n  pure (name', associatedScope)\n\ndeclareMaybeName :: ScopeGraphEff sig m\n                 => Maybe Name\n                 -> Props.Declaration\n                 -> m Name\ndeclareMaybeName maybeName props@(Props.Declaration kind _ associatedScope span) = do\n  case maybeName of\n    Just name -> name <$ declare name props\n    _         -> do\n      name <- Name.gensym\n      name <$ declare name (Props.Declaration kind ScopeGraph.Gensym associatedScope span)\n"
  },
  {
    "path": "semantic-scope-graph/src/Data/Hole.hs",
    "content": "module Data.Hole\n  ( AbstractHole (..)\n  ) where\n\nclass AbstractHole a where\n  hole :: a\n"
  },
  {
    "path": "semantic-scope-graph/src/Data/Module.hs",
    "content": "{-# LANGUAGE DeriveTraversable #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE RecordWildCards #-}\nmodule Data.Module\n( Module(..)\n, ModulePath\n, ModuleInfo(..)\n, moduleInfoFromSrcLoc\n, moduleInfoFromCallStack\n) where\n\nimport Data.Functor.Classes\nimport Data.Maybe\nimport Data.Semilattice.Lower\nimport Data.Text (Text)\nimport GHC.Stack\n\ndata Module body = Module { moduleInfo :: ModuleInfo, moduleBody :: body }\n  deriving (Eq, Foldable, Functor, Ord, Traversable)\n\ninstance Show body => Show (Module body) where\n  showsPrec d Module{..} = showsBinaryWith showsPrec showsPrec \"Module\" d (modulePath moduleInfo) moduleBody\n\n\ntype ModulePath = FilePath\n\ndata ModuleInfo = ModuleInfo { modulePath :: ModulePath, moduleLanguage :: Text, moduleOid :: Text }\n  deriving (Eq, Ord)\n\ninstance Lower ModuleInfo where\n  lowerBound = ModuleInfo \"\" \"Unknown\" mempty\n\ninstance Show ModuleInfo where\n  showsPrec d = showsUnaryWith showsPrec \"ModuleInfo\" d . modulePath\n\nmoduleInfoFromSrcLoc :: SrcLoc -> ModuleInfo\nmoduleInfoFromSrcLoc loc = ModuleInfo (srcLocModule loc) \"Unknown\" mempty\n\n-- | Produce 'ModuleInfo' from the top location on the Haskell call stack (i.e. the file where the call to 'moduleInfoFromCallStack' was made).\nmoduleInfoFromCallStack :: HasCallStack => ModuleInfo\nmoduleInfoFromCallStack = maybe (ModuleInfo \"?\" \"Unknown\" mempty) (moduleInfoFromSrcLoc . snd) (listToMaybe (getCallStack callStack))\n"
  },
  {
    "path": "semantic-scope-graph/src/Data/ScopeGraph.hs",
    "content": "module Data.ScopeGraph\n  ( module Scope.Info\n  , module Scope.Path\n  , module Scope.Scope\n  , module Scope.Types\n  , module Scope.Graph.AdjacencyList\n  ) where\n\nimport Scope.Graph.AdjacencyList\nimport Scope.Info\nimport Scope.Path\nimport Scope.Scope\nimport Scope.Types\n"
  },
  {
    "path": "semantic-scope-graph/src/Scope/Graph/AdjacencyList.hs",
    "content": "{-# LANGUAGE LambdaCase #-}\n{-# LANGUAGE RecordWildCards #-}\n{-# LANGUAGE TupleSections #-}\nmodule Scope.Graph.AdjacencyList\n  ( module Scope.Graph.AdjacencyList\n  ) where\n\nimport           Analysis.Name\nimport           Control.Applicative\nimport           Control.Monad\nimport           Data.Bifunctor\nimport           Data.Foldable\nimport           Data.List.NonEmpty (NonEmpty)\nimport qualified Data.List.NonEmpty as NonEmpty\nimport           Data.Map.Strict (Map)\nimport qualified Data.Map.Strict as Map\nimport           Data.Maybe\nimport           Data.Module\nimport           Data.Monoid\nimport           Data.Semilattice.Lower\nimport           Data.Sequence (Seq)\nimport qualified Data.Sequence as Seq\nimport           Data.Set (Set)\nimport qualified Data.Set as Set\nimport           Scope.Info\nimport           Scope.Path\nimport           Scope.Reference\nimport           Scope.Scope\nimport           Scope.Types\nimport           Source.Span\n\nnewtype ScopeGraph scope = ScopeGraph { unScopeGraph :: Map scope (Scope scope) }\n  deriving (Eq, Ord, Show)\n\ninstance Ord scope => Lower (ScopeGraph scope) where\n  lowerBound = ScopeGraph mempty\n\n-- Returns the reference paths of a scope in a scope graph.\npathsOfScope :: Ord scope => scope -> ScopeGraph scope -> Maybe (Map Reference ([ReferenceInfo], Path scope))\npathsOfScope scope = fmap references . Map.lookup scope . unScopeGraph\n\n-- Returns the declaration data of a scope in a scope graph.\nddataOfScope :: Ord scope => scope -> ScopeGraph scope -> Maybe (Seq (Info scope))\nddataOfScope scope = fmap declarations . Map.lookup scope . unScopeGraph\n\n-- Returns the edges of a scope in a scope graph.\nlinksOfScope :: Ord scope => scope -> ScopeGraph scope -> Maybe (Map EdgeLabel [scope])\nlinksOfScope scope = fmap edges . Map.lookup scope . unScopeGraph\n\ndeclarationsByAccessControl :: Ord scope => scope -> AccessControl -> ScopeGraph scope -> [ Info scope ]\ndeclarationsByAccessControl scope accessControl g = fromMaybe mempty $ do\n  dataSeq <- ddataOfScope scope g\n  pure . toList $ Seq.filter (\\Info{..} -> accessControl <= infoAccessControl) dataSeq\n\ndeclarationsByRelation :: Ord scope => scope -> Relation -> ScopeGraph scope -> [ Info scope ]\ndeclarationsByRelation scope relation g = fromMaybe mempty $ do\n  dataSeq <- ddataOfScope scope g\n  pure . toList $ Seq.filter (\\Info{..} -> infoRelation == relation) dataSeq\n\ndeclarationByName :: Ord scope => scope -> Declaration -> ScopeGraph scope -> Maybe (Info scope)\ndeclarationByName scope name g = do\n  dataSeq <- ddataOfScope scope g\n  find (\\Info{..} -> infoDeclaration == name) dataSeq\n\n-- Lookup a scope in the scope graph.\nlookupScope :: Ord scope => scope -> ScopeGraph scope -> Maybe (Scope scope)\nlookupScope scope = Map.lookup scope . unScopeGraph\n\n-- Declare a declaration with a span and an associated scope in the scope graph.\n-- TODO: Return the whole value in Maybe or Either.\ndeclare :: Ord scope\n        => Declaration\n        -> ModuleInfo\n        -> Relation\n        -> AccessControl\n        -> Span\n        -> Kind\n        -> Maybe scope\n        -> scope\n        -> ScopeGraph scope\n        -> (ScopeGraph scope, Maybe Position)\ndeclare decl moduleInfo rel accessControl declSpan kind assocScope currentScope g = fromMaybe (g, Nothing) $ do\n  scope <- lookupScope currentScope g\n  dataSeq <- ddataOfScope currentScope g\n  case Seq.findIndexR (\\Info{..} -> decl == infoDeclaration && declSpan == infoSpan && rel == infoRelation) dataSeq of\n    Just index -> pure (g, Just (Position index))\n    Nothing -> do\n      let newScope = scope { declarations = declarations scope Seq.|> Info decl moduleInfo rel accessControl declSpan kind assocScope }\n      pure (insertScope currentScope newScope g, Just (Position (length (declarations newScope))))\n\n-- | Add a reference to a declaration in the scope graph.\n-- Returns the original scope graph if the declaration could not be found.\nreference :: Ord scope => Reference -> ModuleInfo -> Span -> Kind -> Declaration -> scope -> ScopeGraph scope -> ScopeGraph scope\nreference ref moduleInfo span kind decl currentAddress g = fromMaybe g $ do\n  -- Start from the current address\n  currentScope' <- lookupScope currentAddress g\n  -- Build a path up to the declaration\n  flip (insertScope currentAddress) g . flip (insertReference ref moduleInfo span kind) currentScope' <$> findPath (const Nothing) decl currentAddress g\n\n-- | Insert a reference into the given scope by constructing a resolution path to the declaration within the given scope graph.\ninsertImportReference :: Ord address => Reference -> ModuleInfo -> Span -> Kind -> Declaration -> address -> ScopeGraph address -> Scope address -> Maybe (Scope address)\ninsertImportReference ref moduleInfo span kind decl currentAddress g scope = flip (insertReference ref moduleInfo span kind) scope . EPath Import currentAddress <$> findPath (const Nothing) decl currentAddress g\n\nlookupScopePath :: Ord scopeAddress => Name -> scopeAddress -> ScopeGraph scopeAddress -> Maybe (Path scopeAddress)\nlookupScopePath declaration currentAddress g = findPath (flip (lookupReference declaration) g) (Declaration declaration) currentAddress g\n\nfindPath :: Ord scopeAddress => (scopeAddress -> Maybe (Path scopeAddress)) -> Declaration -> scopeAddress -> ScopeGraph scopeAddress -> Maybe (Path scopeAddress)\nfindPath extra decl currentAddress g = snd <$> getFirst (foldGraph combine currentAddress g)\n  where combine address path = fmap (address, )\n          $  First (pathToDeclaration decl address g)\n          <> First (extra address)\n          <> (uncurry (EPath Superclass) <$> path Superclass)\n          <> (uncurry (EPath Import)     <$> path Import)\n          <> (uncurry (EPath Export)     <$> path Export)\n          <> (uncurry (EPath Lexical)    <$> path Lexical)\n\nfoldGraph :: (Ord scopeAddress, Monoid a) => (scopeAddress -> (EdgeLabel -> a) -> a) -> scopeAddress -> ScopeGraph scopeAddress -> a\nfoldGraph combine address graph = go lowerBound address\n  where go visited address\n          | address `Set.notMember` visited\n          , Just edges <- linksOfScope address graph = combine address (recur edges)\n          | otherwise                                = mempty\n          where visited' = Set.insert address visited\n                recur edges edge = maybe mempty (foldMap (go visited')) (Map.lookup edge edges)\n\npathToDeclaration :: Ord scopeAddress => Declaration -> scopeAddress -> ScopeGraph scopeAddress -> Maybe (Path scopeAddress)\npathToDeclaration decl address g = DPath decl . snd <$> lookupDeclaration (unDeclaration decl) address g\n\ninsertReference :: Reference -> ModuleInfo -> Span -> Kind -> Path scopeAddress -> Scope scopeAddress -> Scope scopeAddress\ninsertReference ref moduleInfo span kind path scope = scope { references = Map.alter (\\case\n  Nothing -> pure ([ ReferenceInfo span kind moduleInfo ], path)\n  Just (refInfos, path) -> pure (ReferenceInfo span kind moduleInfo : refInfos, path)) ref (references scope) }\n\n-- | Adds a reference and a Hole path to the given scope.\nnewReference :: Reference -> ReferenceInfo -> Scope scopeAddress -> Scope scopeAddress\nnewReference ref info scope = scope { references = Map.alter (\\case\n  Nothing -> pure ([ info ], Hole)\n  Just (refInfos, path) -> pure (info : refInfos, path)) ref (references scope) }\n\nlookupDeclaration :: Ord scopeAddress => Name -> scopeAddress -> ScopeGraph scopeAddress -> Maybe (Info scopeAddress, Position)\nlookupDeclaration name scope g = do\n  dataSeq <- ddataOfScope scope g\n  index <- Seq.findIndexR (\\Info{..} -> Declaration name == infoDeclaration) dataSeq\n  (, Position index) <$> Seq.lookup index dataSeq\n\ndeclarationNames :: Ord address => [EdgeLabel] -> Scope address -> ScopeGraph address -> Set Declaration\ndeclarationNames edgeLabels scope scopeGraph = localDeclarations <> edgeNames\n  where addresses = join (Map.elems $ Map.restrictKeys (edges scope) (Set.fromList edgeLabels))\n        edgeNames = flip foldMap addresses $ \\address -> maybe mempty (flip (declarationNames edgeLabels) scopeGraph) (lookupScope address scopeGraph)\n        localDeclarations = Set.fromList . toList . fmap infoDeclaration $ declarations scope\n\n\nputDeclarationScopeAtPosition :: Ord scopeAddress => scopeAddress -> Position -> Maybe scopeAddress -> ScopeGraph scopeAddress -> ScopeGraph scopeAddress\nputDeclarationScopeAtPosition scope position assocScope g@(ScopeGraph graph) = fromMaybe g $ do\n  dataSeq <- ddataOfScope scope g\n  let seq = Seq.adjust' (\\Info{..} -> Info { infoAssociatedScope = assocScope, .. }) (unPosition position) dataSeq\n  pure $ ScopeGraph (Map.adjust (\\s -> s { declarations = seq }) scope graph)\n\n-- | Lookup a reference by traversing the paths of a given scope and return a Maybe (Path address)\nlookupReference :: Ord address => Name -> address -> ScopeGraph address -> Maybe (Path address)\nlookupReference  name scope g = fmap snd . Map.lookup (Reference name) =<< pathsOfScope scope g\n\ninsertEdge :: Ord scopeAddress => EdgeLabel -> scopeAddress -> scopeAddress -> ScopeGraph scopeAddress -> ScopeGraph scopeAddress\ninsertEdge label target currentAddress g@(ScopeGraph graph) = fromMaybe g $ do\n  currentScope' <- lookupScope currentAddress g\n  scopes <- maybe (Just mempty) pure (Map.lookup label (edges currentScope'))\n  let newScope = currentScope' { edges = Map.insert label (target : scopes) (edges currentScope') }\n  pure (ScopeGraph (Map.insert currentAddress newScope graph))\n\ninsertEdges :: Ord scopeAddress => NonEmpty EdgeLabel -> scopeAddress -> scopeAddress -> ScopeGraph scopeAddress -> ScopeGraph scopeAddress\ninsertEdges labels target currentAddress g =\n  foldr (\\label graph -> insertEdge label target currentAddress graph) g labels\n\n-- | Add an import edge of the form 'a -> Import -> b -> Import -> c' or creates intermediate void scopes of the form\n--   'a -> Void -> b -> Import -> c' if the given scopes cannot be found.\naddImportEdge :: Ord scopeAddress => EdgeLabel -> [scopeAddress] -> scopeAddress -> ScopeGraph scopeAddress -> ScopeGraph scopeAddress\naddImportEdge edge importEdge currentAddress g = do\n  case importEdge of\n    [] -> g\n    (name:[]) -> maybe\n                (addImportHole edge name currentAddress g)\n                (const (insertEdge edge name currentAddress g))\n                (lookupScope name g)\n    (name:names) -> let\n      scopeGraph' = maybe\n        (addImportHole edge name currentAddress g)\n        (const (insertEdge edge name currentAddress g))\n        (lookupScope name g)\n      in\n        addImportEdge edge names name scopeGraph'\n\naddImportHole :: Ord scopeAddress => EdgeLabel -> scopeAddress -> scopeAddress -> ScopeGraph scopeAddress -> ScopeGraph scopeAddress\naddImportHole edge name currentAddress g = let\n  scopeGraph' = newScope name mempty g\n  in\n  insertEdges (NonEmpty.fromList [Void, edge]) name currentAddress scopeGraph'\n\n\n-- | Update the 'Scope' containing a 'Declaration' with an associated scope address.\n-- Returns an unmodified 'ScopeGraph' if the 'Declaration' cannot be found with the given scope address.\ninsertDeclarationScope :: Ord scopeAddress => Declaration -> scopeAddress -> scopeAddress -> ScopeGraph scopeAddress -> ScopeGraph scopeAddress\ninsertDeclarationScope Declaration{..} associatedScopeAddress scopeAddress g = fromMaybe g $ do\n  declScopeAddress <- pathDeclarationScope scopeAddress =<< lookupScopePath unDeclaration scopeAddress g\n  scope <- lookupScope declScopeAddress g\n  (declInfo, position) <- second unPosition <$> lookupDeclaration unDeclaration declScopeAddress g\n  pure $ insertScope declScopeAddress (scope { declarations = Seq.update position (declInfo { infoAssociatedScope = Just associatedScopeAddress }) (declarations scope) }) g\n\n-- | Insert a declaration span into the declaration in the scope graph.\ninsertDeclarationSpan :: Ord scopeAddress => Declaration -> Span -> ScopeGraph scopeAddress -> ScopeGraph scopeAddress\ninsertDeclarationSpan decl@Declaration{..} span g = fromMaybe g $ do\n  declScopeAddress <- scopeOfDeclaration decl g\n  (declInfo, position) <- second unPosition <$> lookupDeclaration unDeclaration declScopeAddress g\n  scope <- lookupScope declScopeAddress g\n  pure $ insertScope declScopeAddress (scope { declarations = Seq.update position (declInfo { infoSpan = span }) (declarations scope) }) g\n\n-- | Insert a new scope with the given address and edges into the scope graph.\nnewScope :: Ord address => address -> Map EdgeLabel [address] -> ScopeGraph address -> ScopeGraph address\nnewScope address edges = insertScope address (Scope edges mempty mempty Standard)\n\n-- | Insert a new scope with the given address and edges into the scope graph.\nnewPreludeScope :: Ord address => address -> Map EdgeLabel [address] -> ScopeGraph address -> ScopeGraph address\nnewPreludeScope address edges = insertScope address (Scope edges mempty mempty Preluded)\n\ninsertScope :: Ord address => address -> Scope address -> ScopeGraph address -> ScopeGraph address\ninsertScope address scope = ScopeGraph . Map.insert address scope . unScopeGraph\n\n-- | Returns the scope of a reference in the scope graph.\nscopeOfRef :: Ord scope => Reference -> ScopeGraph scope -> Maybe scope\nscopeOfRef ref g@(ScopeGraph graph) = go (Map.keys graph)\n  where\n    go (s : scopes') = fromMaybe (go scopes') $ do\n      pathMap <- pathsOfScope s g\n      _ <- Map.lookup ref pathMap\n      pure (Just s)\n    go [] = Nothing\n\n-- | Returns the path of a reference in the scope graph.\npathOfRef :: (Ord scope) => Reference -> ScopeGraph scope -> Maybe (Path scope)\npathOfRef ref graph = do\n  scope <- scopeOfRef ref graph\n  pathsMap <- pathsOfScope scope graph\n  snd <$> Map.lookup ref pathsMap\n\n-- Returns the scope the declaration was declared in.\nscopeOfDeclaration :: Ord scope => Declaration -> ScopeGraph scope -> Maybe scope\nscopeOfDeclaration Declaration{..} g@(ScopeGraph graph) = go (Map.keys graph)\n  where\n    go = foldr (\\ scope -> (scope <$ lookupDeclaration unDeclaration scope g <|>)) Nothing\n\n-- | Returns the scope associated with a declaration (the child scope if any exists).\nassociatedScope :: Ord scope => Declaration -> ScopeGraph scope -> Maybe scope\nassociatedScope Declaration{..} g@(ScopeGraph graph) = go (Map.keys graph)\n  where\n    go = foldr lookupAssociatedScope Nothing\n    lookupAssociatedScope scope = ((lookupDeclaration unDeclaration scope g >>= infoAssociatedScope . fst) <|>)\n"
  },
  {
    "path": "semantic-scope-graph/src/Scope/Graph/Convert.hs",
    "content": "{-# LANGUAGE AllowAmbiguousTypes #-}\n{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE ExistentialQuantification #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\nmodule Scope.Graph.Convert\n  ( ToScopeGraph (..)\n  , Result (..)\n  , todo\n  , complete\n  ) where\n\nimport Control.Effect.ScopeGraph\nimport Data.List.NonEmpty\nimport Data.Typeable\nimport Source.Loc\n\nclass Typeable t => ToScopeGraph t where\n  scopeGraph ::\n    ( ScopeGraphEff sig m\n    )\n    => t Loc\n    -> m Result\n\ndata Result\n  = Complete\n  | Todo (NonEmpty String)\n    deriving (Eq, Show, Ord)\n\ninstance Semigroup Result where\n  Complete <> Complete = Complete\n  Todo a <> Todo b     = Todo (a <> b)\n  a <> Complete        = a\n  Complete <> a        = a\n\ninstance Monoid Result where mempty = Complete\n\ntodo :: (Show a, Applicative m) => a -> m Result\ntodo = pure . Todo . pure . show\n\ncomplete :: Applicative m => m Result\ncomplete = pure Complete\n"
  },
  {
    "path": "semantic-scope-graph/src/Scope/Info.hs",
    "content": "{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE TypeApplications #-}\nmodule Scope.Info\n  ( Info (..)\n  , Declaration (..)\n  , formatDeclaration\n  , Relation (..)\n  , Kind (..)\n  , AccessControl (..)\n  ) where\n\nimport Analysis.Name\nimport Data.Generics.Product (field)\nimport Data.Hole\nimport Data.Module\nimport Data.Semilattice.Lower\nimport Data.Text (Text)\nimport GHC.Generics (Generic)\nimport Scope.Types\nimport Source.Span\n\ndata Info scopeAddress = Info\n  { infoDeclaration     :: Declaration\n  , infoModule          :: ModuleInfo\n  , infoRelation        :: Relation\n  , infoAccessControl   :: AccessControl\n  , infoSpan            :: Span\n  , infoKind            :: Kind\n  , infoAssociatedScope :: Maybe scopeAddress\n  } deriving (Eq, Show, Ord, Generic)\n\ninstance HasSpan (Info scopeAddress) where\n  span_ = field @\"infoSpan\"\n  {-# INLINE span_ #-}\n\ninstance Lower (Info scopeAddress) where\n  lowerBound = Info lowerBound lowerBound lowerBound Public (point (Pos 0 0)) lowerBound Nothing\n\ninstance AbstractHole (Info address) where\n  hole = lowerBound\n\nnewtype Declaration = Declaration { unDeclaration :: Name }\n  deriving (Eq, Ord, Show)\n\ninstance Lower Declaration where\n  lowerBound = Declaration $ name \"\"\n\nformatDeclaration :: Declaration -> Text\nformatDeclaration = formatName . unDeclaration\n\n\ndata Relation = Default | Instance | Prelude | Gensym\n  deriving (Bounded, Enum, Eq, Show, Ord)\n\ninstance Lower Relation where\n  lowerBound = Default\n\n\n"
  },
  {
    "path": "semantic-scope-graph/src/Scope/Path.hs",
    "content": "{-# LANGUAGE DeriveFunctor #-}\nmodule Scope.Path\n  ( Path (..)\n  , pathDeclaration\n  , pathDeclarationScope\n  , pathPosition\n  ) where\n\nimport Data.Hole\nimport Scope.Info\nimport Scope.Types\n\ndata Path scope\n  = Hole\n  -- | Construct a direct path to a declaration.\n  | DPath Declaration Position\n  -- | Construct an edge from a scope to another declaration path.\n  | EPath EdgeLabel scope (Path scope)\n  deriving (Eq, Functor, Ord, Show)\n\ninstance AbstractHole (Path scope) where\n  hole = Hole\n\n-- Returns the declaration of a path.\npathDeclaration :: Path scope -> Declaration\npathDeclaration (DPath d _)   = d\npathDeclaration (EPath _ _ p) = pathDeclaration p\npathDeclaration Hole          = undefined\n\n-- TODO: Store the current scope closer _in_ the DPath?\npathDeclarationScope :: scope -> Path scope -> Maybe scope\npathDeclarationScope _ (EPath _ scope (DPath _ _)) = Just scope\npathDeclarationScope currentScope (EPath _ _ p)    = pathDeclarationScope currentScope p\npathDeclarationScope currentScope (DPath _ _)      = Just currentScope\npathDeclarationScope _ Hole                        = Nothing\n\n-- TODO: Possibly return in Maybe since we can have Hole paths\npathPosition :: Path scope -> Position\npathPosition Hole          = Position 0\npathPosition (DPath _ p)   = p\npathPosition (EPath _ _ p) = pathPosition p\n"
  },
  {
    "path": "semantic-scope-graph/src/Scope/Reference.hs",
    "content": "{-# LANGUAGE OverloadedStrings #-}\nmodule Scope.Reference\n  ( ReferenceInfo (..)\n  , Reference (..)\n  ) where\n\nimport Analysis.Name\nimport Control.Lens (lens)\nimport Data.Module\nimport Data.Semilattice.Lower\nimport Scope.Types\nimport Source.Span\n\ndata ReferenceInfo = ReferenceInfo\n  { refSpan   :: Span\n  , refKind   :: Kind\n  , refModule :: ModuleInfo\n  } deriving (Eq, Show, Ord)\n\ninstance HasSpan ReferenceInfo where\n  span_ = lens refSpan (\\r s -> r { refSpan = s })\n  {-# INLINE span_ #-}\n\nnewtype Reference = Reference { unReference :: Name }\n  deriving (Eq, Ord, Show)\n\ninstance Lower Reference where\n  lowerBound = Reference $ name \"\"\n"
  },
  {
    "path": "semantic-scope-graph/src/Scope/Scope.hs",
    "content": "{-# LANGUAGE OverloadedStrings #-}\nmodule Scope.Scope\n  ( Scope (..)\n  , Reference (..)\n  , ReferenceInfo (..)\n  , Domain (..)\n  ) where\n\nimport Data.Hole\nimport Data.Map.Strict (Map)\nimport Data.Semilattice.Lower\nimport Data.Sequence (Seq)\nimport Scope.Info\nimport Scope.Path\nimport Scope.Reference\nimport Scope.Types\n\n-- Offsets and frame addresses in the heap should be addresses?\ndata Scope address = Scope\n  { edges        :: Map EdgeLabel [address]\n  , references   :: Map Reference ([ReferenceInfo], Path address)\n  , declarations :: Seq (Info address)\n  , domain       :: Domain\n  } deriving (Eq, Show, Ord)\n\ninstance Lower (Scope scopeAddress) where\n  lowerBound = Scope mempty mempty mempty Standard\n\ninstance AbstractHole (Scope scopeAddress) where\n  hole = lowerBound\n"
  },
  {
    "path": "semantic-scope-graph/src/Scope/Types.hs",
    "content": "{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE DeriveGeneric #-}\nmodule Scope.Types\n  ( Slot (..)\n  , EdgeLabel (..)\n  , Position (..)\n  , Domain (..)\n  , Kind (..)\n  , AccessControl (..)\n  -- * Identificatory newtypes\n  , CurrentScope (..)\n  ) where\n\nimport Data.Aeson (ToJSON)\nimport Data.Hashable\nimport Data.Hole\nimport Data.Semilattice.Lower\nimport GHC.Generics (Generic)\n\n-- A slot is a location in the heap where a value is stored.\ndata Slot address = Slot { frameAddress :: address, position :: Position }\n    deriving (Eq, Show, Ord)\n\ninstance AbstractHole address => AbstractHole (Slot address) where\n  hole = Slot hole (Position 0)\n\n\n-- | The type of edge from a scope to its parent scopes.\n-- Either a lexical edge or an import edge in the case of non-lexical edges.\ndata EdgeLabel = Lexical | Import | Export | Superclass | Void\n  deriving (Bounded, Enum, Eq, Ord, Show)\n\n\nnewtype Position = Position { unPosition :: Int }\n  deriving (Eq, Show, Ord)\n\n\ndata Domain\n  = Standard\n  | Preluded\n  deriving (Eq, Show, Ord)\n\n\ndata Kind = AbstractClass\n          | Assignment\n          | Call\n          | Class\n          | DefaultExport\n          | Function\n          | Identifier\n          | Let\n          | MemberAccess\n          | Method\n          | Module\n          | New\n          | Parameter\n          | PublicField\n          | QualifiedAliasedImport\n          | QualifiedExport\n          | QualifiedImport\n          | RequiredParameter\n          | This\n          | TypeAlias\n          | TypeIdentifier\n          | Unknown\n          | UnqualifiedImport\n          | VariableDeclaration\n  deriving (Bounded, Enum, Eq, Show, Ord)\n\ninstance Lower Kind where\n  lowerBound = Unknown\n\n\ndata AccessControl = Public\n                   | Protected\n                   | Private\n                   deriving (Bounded, Enum, Eq, Generic, Hashable, ToJSON, Show)\n\n-- | The Ord AccessControl instance represents an order specification of AccessControls.\n-- AccessControls that are less than or equal to another AccessControl implies access.\n-- It is helpful to consider `Public <= Private` as saying \"Can a Public syntax term access a Private syntax term?\"\n-- In this way, Public AccessControl is the top of the order specification, and Private AccessControl is the bottom.\ninstance Ord AccessControl where\n  -- | Private AccessControl represents the least overlap or accessibility with other AccessControls.\n  -- When asking if the AccessControl \"on the left\" is less than the AccessControl \"on the right\", Private AccessControl on the left always implies access to the thing on the right.\n  (<=) Private _           = True\n  (<=) _       Private     = False\n\n  -- | Protected AccessControl is in between Private and Public in the order specification.\n  -- Protected AccessControl \"on the left\" has access to Protected or Public AccessControls \"on the right\".\n  (<=) Protected Public    = True\n  (<=) Protected Protected = True\n\n  -- | Public AccessControl \"on the left\" has access only to Public AccessControl \"on the right\".\n  (<=) Public Public       = True\n  (<=) Public _            = False\n\n-- | A newtype indicating that the wrapped datum represents a parent scope\n-- in some contextual computation.\nnewtype CurrentScope address = CurrentScope { unCurrentScope :: address }\n\n"
  },
  {
    "path": "semantic-source/BUILD.bazel",
    "content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\n    \"@rules_haskell//haskell:defs.bzl\",\n    \"haskell_library\",\n    \"haskell_test\",\n)\nload(\n    \"@rules_haskell//haskell:cabal.bzl\",\n    \"haskell_cabal_binary\",\n    \"haskell_cabal_library\",\n)\nload(\n    \"//:build/common.bzl\",\n    \"EXECUTABLE_FLAGS\",\n    \"GHC_FLAGS\",\n)\n\nhaskell_library(\n    name = \"semantic-source\",\n    srcs = glob([\"src/**/*.hs\"]),\n    compiler_flags = GHC_FLAGS + [\"-XOverloadedStrings\"],\n    deps = [\n        \"//:base\",\n        \"//:bytestring\",\n        \"//:containers\",\n        \"//:deepseq\",\n        \"//:filepath\",\n        \"//:text\",\n        \"@stackage//:lingo\",\n        \"@stackage//:aeson\",\n        \"@stackage//:hashable\",\n        \"@stackage//:pathtype\",\n        \"@stackage//:semilattices\",\n    ],\n)\n\nhaskell_test(\n    name = \"test\",\n    srcs = glob([\"test/**/*.hs\"]),\n    compiler_flags = GHC_FLAGS + EXECUTABLE_FLAGS,\n    deps = [\n        \":semantic-source\",\n        \"//:base\",\n        \"//:text\",\n        \"@stackage//:hedgehog\",\n        \"@stackage//:tasty\",\n        \"@stackage//:tasty-hedgehog\",\n        \"@stackage//:tasty-hunit\",\n    ],\n)\n"
  },
  {
    "path": "semantic-source/CHANGELOG.md",
    "content": "# 0.2.0.1\n\n- Support ghc 9.4.\n\n\n# 0.2.0.0\n\n- Finds languages for `FilePath`s.\n- Drops dependency on `pathtype`.\n\n\n# 0.1.0.2\n\n- Support ghc 9.2.\n\n# 0.1.0.0\n\n- Adds `CodeQL` language constructor.\n- Bumps `lingo-haskell` to 0.3.2.\n- Removes Span and Pos lower bound instances. This makes callers responsible for defining whether Span / Pos are 0 or 1 indexed.\n\n# 0.0.2.0\n\n- Adds `Source.Language`.\n- Adds `ToJSON` instances for `Range` and `Loc`.\n\n# 0.0.1.0\n\n- Adds an `NFData` instance for `Source`.\n\n- Decodes to `Text` leniently instead of throwing exceptions.\n\n\n# 0.0.0.1\n\n- Loosens the upper bound on `hashable`.\n- Adds support for GHC 8.8.1.\n\n\n# 0.0.0.0\n\nInitial release\n"
  },
  {
    "path": "semantic-source/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2015-2019 GitHub\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "semantic-source/README.md",
    "content": "# semantic-source\n\nTypes and functionality for working with source code (program text).\n\n\n## Development\n\nThis project consists of a Haskell package named `semantic-source`. The library’s sources are in [`src`][].\n\nDevelopment of `semantic-source` is typically done using `cabal v2-build`:\n\n```shell\ncabal v2-build # build the library\ncabal v2-repl  # load the package into ghci\ncabal v2-test  # build and run the doctests\n```\n\n[`src`]: https://github.com/github/semantic/tree/master/semantic-source/src\n"
  },
  {
    "path": "semantic-source/Setup.hs",
    "content": "import Distribution.Simple\nmain = defaultMain\n"
  },
  {
    "path": "semantic-source/cabal.project",
    "content": "-- ATTENTION: care must be taken to keep this file in sync with cabal.project.ci. If you add a package here, add it there (and add a package stanza with ghc-options to enable errors in CI at the bottom of that file).\n\n-- Local packages\npackages: .\n"
  },
  {
    "path": "semantic-source/cabal.project.ci",
    "content": "-- ATTENTION: care must be taken to keep this file in sync with cabal.project. If you add a package here, add it there (and add a package stanza with ghc-options to enable errors in CI at the bottom of this file).\n\n-- Local packages\npackages: .\n\n\n-- Treat warnings as errors for CI builds\npackage semantic-source\n  ghc-options: -Werror\n"
  },
  {
    "path": "semantic-source/semantic-source.cabal",
    "content": "cabal-version:       2.4\n\nname:                semantic-source\nversion:             0.2.0.1\nsynopsis:            Types and functionality for working with source code\ndescription:         Types and functionality for working with source code (program text).\nhomepage:            https://github.com/github/semantic/tree/master/semantic-source#readme\nbug-reports:         https://github.com/github/semantic/issues\nlicense:             MIT\nlicense-file:        LICENSE\nauthor:              The Semantic authors\nmaintainer:          opensource+semantic@github.com\ncopyright:           (c) 2020 GitHub, Inc.\ncategory:            Data\nbuild-type:          Simple\nstability:           alpha\nextra-doc-files:\n  CHANGELOG.md\n  README.md\n\ntested-with:\n  GHC == 8.6.5\n  GHC == 8.8.1\n  GHC == 8.10.1\n  GHC == 9.2.1\n\ncommon haskell\n  default-language: Haskell2010\n  ghc-options:\n    -Weverything\n    -Wno-missing-local-signatures\n    -Wno-missing-import-lists\n    -Wno-implicit-prelude\n    -Wno-safe\n    -Wno-unsafe\n    -Wno-name-shadowing\n    -Wno-monomorphism-restriction\n    -Wno-missed-specialisations\n    -Wno-all-missed-specialisations\n    -Wno-star-is-type\n  if (impl(ghc >= 8.8))\n    ghc-options: -Wno-missing-deriving-strategies\n  if (impl(ghc >= 8.10))\n    ghc-options:\n      -Wno-missing-safe-haskell-mode\n      -Wno-prepositive-qualified-module\n  if (impl(ghc >= 9.2))\n    ghc-options:\n      -Wno-missing-kind-signatures\n\nlibrary\n  import: haskell\n  exposed-modules:\n    Source.Language\n    Source.Loc\n    Source.Range\n    Source.Source\n    Source.Span\n  build-depends:\n    , aeson           >= 1.4.2.0 && < 3\n    , base            >= 4.12 && < 5\n    , bytestring      >= 0.10.8.2 && < 0.13\n    , deepseq        ^>= 1.4.4.0\n    , containers     ^>= 0.6.2\n    , hashable        >= 1.2.7 && < 1.5\n    , lingo          ^>= 0.5.0.3\n    , semilattices   ^>= 0.0.0.3\n    , text           ^>= 1.2.3.2\n  hs-source-dirs: src\n\ntest-suite test\n  import: haskell\n  type: exitcode-stdio-1.0\n  hs-source-dirs: test\n  main-is: Test.hs\n  other-modules:\n    Range.Test\n    Source.Test\n  build-depends:\n    , base\n    , hedgehog         >= 1 && < 1.2\n    , semantic-source\n    , tasty            >= 1.2 && <2\n    , tasty-hedgehog   >= 1.0.0.1 && < 1.3\n    , tasty-hunit      >= 0.10 && <1\n    , text\n\nsource-repository head\n  type:     git\n  location: https://github.com/github/semantic\n"
  },
  {
    "path": "semantic-source/src/Source/Language.hs",
    "content": "{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE LambdaCase #-}\n{-# LANGUAGE OverloadedStrings #-}\nmodule Source.Language\n  ( Language (..)\n  , SLanguage (..)\n  , extensionsForLanguage\n  , knownLanguage\n  , forPath\n  , textToLanguage\n  , languageToText\n  ) where\n\nimport           Data.Aeson\nimport           Data.Hashable (Hashable)\nimport qualified Data.Languages as Lingo\nimport qualified Data.Map.Strict as Map\nimport qualified Data.Text as T\nimport           GHC.Generics (Generic)\n\n-- | The various languages we support.\ndata Language\n    = Unknown\n    | Go\n    | Haskell\n    | Java\n    | JavaScript\n    | JSON\n    | JSX\n    | Markdown\n    | PHP\n    | Python\n    | Ruby\n    | TypeScript\n    | TSX\n    | CodeQL\n    deriving (Eq, Generic, Ord, Read, Show, Bounded, Hashable, ToJSON, Enum)\n\n-- | Reifies a proxied type-level 'Language' to a value.\nclass SLanguage (lang :: Language) where\n  reflect :: proxy lang -> Language\n\ninstance SLanguage 'Unknown where\n  reflect _ = Unknown\n\ninstance SLanguage 'CodeQL where\n  reflect _ = CodeQL\n\ninstance SLanguage 'Go where\n  reflect _ = Go\n\ninstance SLanguage 'Haskell where\n  reflect _ = Haskell\n\ninstance SLanguage 'Java where\n  reflect _ = Java\n\ninstance SLanguage 'JavaScript where\n  reflect _ = JavaScript\n\ninstance SLanguage 'JSON where\n  reflect _ = JSON\n\ninstance SLanguage 'JSX where\n  reflect _ = JSX\n\ninstance SLanguage 'Markdown where\n  reflect _ = Markdown\n\ninstance SLanguage 'PHP where\n  reflect _ = PHP\n\ninstance SLanguage 'Python where\n  reflect _ = Python\n\ninstance SLanguage 'Ruby where\n  reflect _ = Ruby\n\ninstance SLanguage 'TypeScript where\n  reflect _ = TypeScript\n\ninstance FromJSON Language where\n  parseJSON = withText \"Language\" $ \\l ->\n    pure $ textToLanguage l\n\n\n-- | Predicate failing on 'Unknown' and passing in all other cases.\nknownLanguage :: Language -> Bool\nknownLanguage = (/= Unknown)\n\nextensionsForLanguage :: Language -> [String]\nextensionsForLanguage language = fmap T.unpack (maybe mempty Lingo.languageExtensions (Map.lookup (languageToText language) Lingo.languages))\n\nforPath :: FilePath -> Language\nforPath path =\n  let spurious lang = lang `elem` [ \"Hack\" -- .php files\n                                  , \"GCC Machine Description\" -- .md files\n                                  , \"XML\" -- .tsx files\n                                  ]\n      allResults = Lingo.languageName <$> Lingo.languagesForPath path\n  in case filter (not . spurious) allResults of\n    [result] -> textToLanguage result\n    _        -> Unknown\n\nlanguageToText :: Language -> T.Text\nlanguageToText = \\case\n  Unknown    -> \"Unknown\"\n  CodeQL     -> \"CodeQL\"\n  Go         -> \"Go\"\n  Haskell    -> \"Haskell\"\n  Java       -> \"Java\"\n  JavaScript -> \"JavaScript\"\n  JSON       -> \"JSON\"\n  JSX        -> \"JSX\"\n  Markdown   -> \"Markdown\"\n  PHP        -> \"PHP\"\n  Python     -> \"Python\"\n  Ruby       -> \"Ruby\"\n  TypeScript -> \"TypeScript\"\n  TSX        -> \"TSX\"\n\ntextToLanguage :: T.Text -> Language\ntextToLanguage = \\case\n  \"CodeQL\"     -> CodeQL\n  \"Go\"         -> Go\n  \"Haskell\"    -> Haskell\n  \"Java\"       -> Java\n  \"JavaScript\" -> JavaScript\n  \"JSON\"       -> JSON\n  \"JSX\"        -> JSX\n  \"Markdown\"   -> Markdown\n  \"PHP\"        -> PHP\n  \"Python\"     -> Python\n  \"Ruby\"       -> Ruby\n  \"TypeScript\" -> TypeScript\n  \"TSX\"        -> TSX\n  _            -> Unknown\n"
  },
  {
    "path": "semantic-source/src/Source/Loc.hs",
    "content": "{-# LANGUAGE DeriveGeneric, RankNTypes, NamedFieldPuns, OverloadedStrings #-}\nmodule Source.Loc\n( Loc(..)\n, byteRange_\n, Span(Span)\n, Range(Range)\n) where\n\nimport Control.DeepSeq (NFData)\nimport Data.Aeson (ToJSON(..), object, (.=))\nimport Data.Hashable (Hashable)\nimport GHC.Generics (Generic)\nimport Prelude hiding (span)\nimport Source.Range\nimport Source.Span\n\ndata Loc = Loc\n  { byteRange :: {-# UNPACK #-} !Range\n  , span      :: {-# UNPACK #-} !Span\n  }\n  deriving (Eq, Ord, Show, Generic)\n\ninstance Semigroup Loc where\n  Loc b1 s1 <> Loc b2 s2 = Loc (b1 <> b2) (s1 <> s2)\n\ninstance Hashable Loc\ninstance NFData   Loc\n\ninstance HasSpan Loc where\n  span_ = lens span (\\l s -> l { span = s })\n  {-# INLINE span_ #-}\n\ninstance ToJSON Loc where\n  toJSON Loc{byteRange, span} = object [\"sourceRange\" .= byteRange\n                                      , \"sourceSpan\" .= span]\n\nbyteRange_ :: Lens' Loc Range\nbyteRange_ = lens byteRange (\\l r -> l { byteRange = r })\n\n\ntype Lens' s a = forall f . Functor f => (a -> f a) -> (s -> f s)\n\nlens :: (s -> a) -> (s -> a -> s) -> Lens' s a\nlens get put afa s = fmap (put s) (afa (get s))\n{-# INLINE lens #-}\n"
  },
  {
    "path": "semantic-source/src/Source/Range.hs",
    "content": "{-# LANGUAGE DeriveAnyClass, DeriveGeneric, RankNTypes, NamedFieldPuns #-}\nmodule Source.Range\n( Range(..)\n, point\n, rangeLength\n, subtractRange\n  -- * Lenses\n, start_\n, end_\n) where\n\nimport Control.DeepSeq (NFData)\nimport Data.Aeson (ToJSON(..))\nimport Data.Hashable (Hashable)\nimport Data.Semilattice.Lower (Lower(..))\nimport GHC.Generics (Generic)\n\n-- | A 0-indexed, half-open interval of integers, defined by start & end indices.\ndata Range = Range\n  { start :: {-# UNPACK #-} !Int\n  , end   :: {-# UNPACK #-} !Int\n  }\n  deriving (Eq, Generic, Ord, Show)\n\ninstance Hashable Range\ninstance NFData   Range\n\ninstance Semigroup Range where\n  Range start1 end1 <> Range start2 end2 = Range (min start1 start2) (max end1 end2)\n\ninstance Lower Range where\n  lowerBound = Range 0 0\n\ninstance ToJSON Range where\n  toJSON Range { start, end } = toJSON [ start, end ]\n\n-- | Construct a 'Range' with a given value for both its start and end indices.\npoint :: Int -> Range\npoint i = Range i i\n\n-- | Return the length of the range.\nrangeLength :: Range -> Int\nrangeLength range = end range - start range\n\nsubtractRange :: Range -> Range -> Range\nsubtractRange range1 range2 = Range (start range1) (end range1 - rangeLength (Range (start range2) (max (end range1) (end range2))))\n\n\nstart_, end_ :: Lens' Range Int\nstart_ = lens start (\\r s -> r { start = s })\nend_   = lens end   (\\r e -> r { end   = e })\n\n\ntype Lens' s a = forall f . Functor f => (a -> f a) -> (s -> f s)\n\nlens :: (s -> a) -> (s -> a -> s) -> Lens' s a\nlens get put afa s = fmap (put s) (afa (get s))\n{-# INLINE lens #-}\n"
  },
  {
    "path": "semantic-source/src/Source/Source.hs",
    "content": "{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-|\n'Source' models source code, represented as a thin wrapper around a 'B.ByteString' with conveniences for splitting by line, slicing, etc.\n\nThis module is intended to be imported qualified to avoid name clashes with 'Prelude':\n\n> import qualified Source.Source as Source\n-}\nmodule Source.Source\n( Source\n, bytes\n, fromUTF8\n-- * Measurement\n, Source.Source.length\n, Source.Source.null\n, totalRange\n, totalSpan\n-- * En/decoding\n, fromText\n, toText\n-- * Slicing\n, slice\n, drop\n, take\n-- * Splitting\n, Source.Source.lines\n, lineRanges\n, lineRangesWithin\n, newlineIndices\n) where\n\nimport Prelude hiding (drop, take)\n\nimport           Control.Arrow ((&&&))\nimport           Control.DeepSeq (NFData)\nimport           Data.Aeson (FromJSON (..), withText)\nimport qualified Data.ByteString as B\nimport           Data.Char (ord)\nimport           Data.Maybe (fromMaybe)\nimport           Data.Monoid (Last (..))\nimport           Data.Semilattice.Lower\nimport           Data.String (IsString (..))\nimport qualified Data.Text as T\nimport qualified Data.Text.Encoding as T\nimport           Data.Text.Encoding.Error (lenientDecode)\nimport           GHC.Generics (Generic)\nimport           Source.Range\nimport           Source.Span (Pos (..), Span (Span))\n\n\n-- | The contents of a source file. This is represented as a UTF-8\n-- 'ByteString' under the hood. Construct these with 'fromUTF8'; obviously,\n-- passing 'fromUTF8' non-UTF8 bytes will cause crashes.\nnewtype Source = Source { bytes :: B.ByteString }\n  deriving (Eq, Semigroup, Monoid, IsString, Show, Generic, NFData)\n\nfromUTF8 :: B.ByteString -> Source\nfromUTF8 = Source\n\ninstance FromJSON Source where\n  parseJSON = withText \"Source\" (pure . fromText)\n\n\n-- Measurement\n\nlength :: Source -> Int\nlength = B.length . bytes\n\nnull :: Source -> Bool\nnull = B.null . bytes\n\n-- | Return a 'Range' that covers the entire text.\ntotalRange :: Source -> Range\ntotalRange = Range 0 . B.length . bytes\n\n-- | Return a 'Span' that covers the entire text.\ntotalSpan :: Source -> Span\ntotalSpan source = Span (Pos 1 1) (Pos (Prelude.length ranges) (succ (end lastRange - start lastRange))) where\n  ranges = lineRanges source\n  lastRange = fromMaybe lowerBound (getLast (foldMap (Last . Just) ranges))\n\n\n-- En/decoding\n\n-- | Return a 'Source' from a 'Text'.\nfromText :: T.Text -> Source\nfromText = Source . T.encodeUtf8\n\n-- | Return the Text contained in the 'Source'.\ntoText :: Source -> T.Text\ntoText = T.decodeUtf8With lenientDecode . bytes\n\n\n-- Slicing\n\n-- | Return a 'Source' that contains a slice of the given 'Source'.\nslice :: Source -> Range -> Source\nslice source range = taking $ dropping source where\n  dropping = drop (start range)\n  taking   = take (rangeLength range)\n\ndrop :: Int -> Source -> Source\ndrop i = Source . B.drop i . bytes\n\ntake :: Int -> Source -> Source\ntake i = Source . B.take i . bytes\n\n\n-- Splitting\n\n-- | Split the contents of the source after newlines.\nlines :: Source -> [Source]\nlines source = slice source <$> lineRanges source\n\n-- | Compute the 'Range's of each line in a 'Source'.\nlineRanges :: Source -> [Range]\nlineRanges source = lineRangesWithin source (totalRange source)\n\n-- | Compute the 'Range's of each line in a 'Range' of a 'Source'.\nlineRangesWithin :: Source -> Range -> [Range]\nlineRangesWithin source range\n  = uncurry (zipWith Range)\n  . ((start range:) &&& (<> [ end range ]))\n  . fmap (+ succ (start range))\n  . newlineIndices\n  . bytes\n  $ slice source range\n\n-- | Return all indices of newlines ('\\n', '\\r', and '\\r\\n') in the 'ByteString'.\nnewlineIndices :: B.ByteString -> [Int]\nnewlineIndices = go 0 where\n  go n bs\n    | B.null bs = []\n    | otherwise = case (searchCR bs, searchLF bs) of\n      (Nothing, Nothing)  -> []\n      (Just i, Nothing)   -> recur n i bs\n      (Nothing, Just i)   -> recur n i bs\n      (Just crI, Just lfI)\n        | succ crI == lfI -> recur n lfI bs\n        | otherwise       -> recur n (min crI lfI) bs\n  recur n i bs = let j = n + i in j : go (succ j) (B.drop (succ i) bs)\n  searchLF = B.elemIndex (toEnum (ord '\\n'))\n  searchCR = B.elemIndex (toEnum (ord '\\r'))\n{-# INLINE newlineIndices #-}\n"
  },
  {
    "path": "semantic-source/src/Source/Span.hs",
    "content": "{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE RankNTypes #-}\n-- | Source position and span information\n--\n--   Mostly taken from purescript's SourcePos definition.\nmodule Source.Span\n( Span(..)\n, point\n, spanFromSrcLoc\n, Pos(..)\n, line_\n, column_\n, HasSpan(..)\n) where\n\nimport           Control.DeepSeq (NFData)\nimport           Data.Aeson ((.:), (.=))\nimport qualified Data.Aeson as A\nimport           Data.Hashable (Hashable)\nimport           GHC.Generics (Generic)\nimport           GHC.Stack (SrcLoc (..))\n\n-- | A Span of position information\ndata Span = Span\n  { start :: {-# UNPACK #-} !Pos\n  , end   :: {-# UNPACK #-} !Pos\n  }\n  deriving (Eq, Ord, Generic, Show)\n\ninstance Hashable Span\ninstance NFData   Span\n\ninstance Semigroup Span where\n  Span start1 end1 <> Span start2 end2 = Span (min start1 start2) (max end1 end2)\n\ninstance A.ToJSON Span where\n  toJSON s = A.object\n    [ \"start\" .= start s\n    , \"end\"   .= end   s\n    ]\n\ninstance A.FromJSON Span where\n  parseJSON = A.withObject \"Span\" $ \\o -> Span\n    <$> o .: \"start\"\n    <*> o .: \"end\"\n\n-- | Construct a Span with a given value for both its start and end positions.\npoint :: Pos -> Span\npoint p = Span p p\n\nspanFromSrcLoc :: SrcLoc -> Span\nspanFromSrcLoc s = Span (Pos (srcLocStartLine s) (srcLocStartCol s)) (Pos (srcLocEndLine s) (srcLocEndCol s))\n\n\n-- | Source position information.\n-- The 'Pos' values associated with ASTs returned from tree-sitter\n-- 'Unmarshal' instances are zero-indexed. Unless you are displaying\n-- span information to a user, you should write your code assuming\n-- zero-indexing.\ndata Pos = Pos\n  { line   :: {-# UNPACK #-} !Int\n  , column :: {-# UNPACK #-} !Int\n  }\n  deriving (Eq, Ord, Generic, Show)\n\ninstance Hashable Pos\ninstance NFData   Pos\n\ninstance A.ToJSON Pos where\n  toJSON p = A.toJSON\n    [ line   p\n    , column p\n    ]\n\ninstance A.FromJSON Pos where\n  parseJSON arr = do\n    [ line, col ] <- A.parseJSON arr\n    pure $ Pos line col\n\nline_, column_ :: Lens' Pos Int\nline_   = lens line   (\\p l -> p { line   = l })\ncolumn_ = lens column (\\p l -> p { column = l })\n\n\n-- | \"Classy-fields\" interface for data types that have spans.\nclass HasSpan a where\n  span_ :: Lens' a Span\n\n  start_ :: Lens' a Pos\n  start_ = span_.start_\n  {-# INLINE start_ #-}\n\n  end_ :: Lens' a Pos\n  end_ = span_.end_\n  {-# INLINE end_ #-}\n\ninstance HasSpan Span where\n  span_  = id\n  {-# INLINE span_ #-}\n\n  start_ = lens start (\\s t -> s { start = t })\n  {-# INLINE start_ #-}\n\n  end_   = lens end   (\\s t -> s { end   = t })\n  {-# INLINE end_ #-}\n\n\ntype Lens' s a = forall f . Functor f => (a -> f a) -> (s -> f s)\n\nlens :: (s -> a) -> (s -> a -> s) -> Lens' s a\nlens get put afa s = fmap (put s) (afa (get s))\n{-# INLINE lens #-}\n"
  },
  {
    "path": "semantic-source/test/Range/Test.hs",
    "content": "{-# LANGUAGE OverloadedStrings #-}\nmodule Range.Test\n( testTree\n) where\n\nimport           Control.Monad (join)\nimport           Hedgehog hiding (Range)\nimport qualified Hedgehog.Gen as Gen\nimport qualified Hedgehog.Range as Range\nimport           Source.Range\nimport qualified Test.Tasty as Tasty\nimport           Test.Tasty.Hedgehog (testPropertyNamed)\n\ntestTree :: Tasty.TestTree\ntestTree = Tasty.testGroup \"Source.Range\"\n  [ Tasty.testGroup \"Semigroup\"\n    [ testPropertyNamed \"associativity\" \"Range_associativity\" . property $ do\n      (a, b, c) <- forAll ((,,) <$> range <*> range <*> range)\n      a <> (b <> c) === (a <> b) <> c\n    ]\n  ]\n\n\nrange :: MonadGen m => m Range\nrange = Gen.choice [ empty, nonEmpty ] where\n  point    = Gen.int (Range.linear 0 100)\n  empty    = join Range <$> point\n  nonEmpty = do\n    start <- point\n    length <- point\n    pure $! Range start (start + length + 1)\n"
  },
  {
    "path": "semantic-source/test/Source/Test.hs",
    "content": "{-# LANGUAGE OverloadedStrings #-}\nmodule Source.Test\n( testTree\n) where\n\nimport qualified Data.Text as Text\nimport           Hedgehog hiding (Range)\nimport qualified Hedgehog.Gen as Gen\nimport qualified Hedgehog.Range as Range\nimport qualified Source.Source as Source\nimport           Source.Span\nimport qualified Test.Tasty as Tasty\nimport           Test.Tasty.HUnit\nimport           Test.Tasty.Hedgehog (testPropertyNamed)\n\n\nsource :: MonadGen m => Range.Range Int -> m Source.Source\nsource r = Gen.frequency [ (1, empty), (20, nonEmpty) ] where\n  empty    = pure mempty\n  nonEmpty = Source.fromUTF8 <$> Gen.utf8 r (Gen.frequency [ (1, pure '\\r'), (1, pure '\\n'), (20, Gen.unicode) ])\n\ntestTree :: Tasty.TestTree\ntestTree = Tasty.testGroup \"Source.Source\"\n  [ Tasty.testGroup \"lineRanges\"\n    [ testPropertyNamed \"produces 1 more range than there are newlines\" \"Source_lineRanges_produces_1_more_range_than_there_are_newlines\" . property $ do\n        source <- forAll (source (Range.linear 0 100))\n        summarize source\n        length (Source.lineRanges source) === length (Text.splitOn \"\\r\\n\" (Source.toText source) >>= Text.splitOn \"\\r\" >>= Text.splitOn \"\\n\")\n\n    , testPropertyNamed \"produces exhaustive ranges\" \"Source_lineRanges_produces_exhaustive_ranges\" . property $ do\n        source <- forAll (source (Range.linear 0 100))\n        summarize source\n        foldMap (Source.slice source) (Source.lineRanges source) === source\n    ]\n\n  , Tasty.testGroup \"totalSpan\"\n    [ testPropertyNamed \"covers single lines\" \"Source_totalSpan_covers_single_lines\" . property $ do\n        n <- forAll $ Gen.int (Range.linear 0 100)\n        Source.totalSpan (Source.fromText (Text.replicate n \"*\")) === Span (Pos 1 1) (Pos 1 (max 1 (succ n)))\n\n    , testPropertyNamed \"covers multiple lines\" \"Source_totalSpan_covers_multiple_lines\" . property $ do\n        n <- forAll $ Gen.int (Range.linear 0 100)\n        Source.totalSpan (Source.fromText (Text.intersperse '\\n' (Text.replicate n \"*\"))) === Span (Pos 1 1) (Pos (max 1 n) (if n > 0 then 2 else 1))\n    ]\n\n  , Tasty.testGroup \"newlineIndices\"\n    [ testCase \"finds \\\\n\" $ Source.newlineIndices \"a\\nb\" @?= [1]\n    , testCase \"finds \\\\r\" $ Source.newlineIndices \"a\\rb\" @?= [1]\n    , testCase \"finds \\\\r\\\\n\" $ Source.newlineIndices \"a\\r\\nb\" @?= [2]\n    , testCase \"finds intermixed line endings\" $ Source.newlineIndices \"hi\\r}\\r}\\n xxx \\r a\" @?= [2, 4, 6, 12]\n    ]\n  ]\n\nsummarize :: Source.Source -> PropertyT IO ()\nsummarize src = do\n  let lines = Source.lines src\n  -- FIXME: this should be using cover (reverted in 1b427b995), but that leads to flaky tests: hedgehog’s 'cover' implementation fails tests instead of warning, and currently has no equivalent to 'checkCoverage'.\n  classify \"empty\"          $ Source.null src\n  classify \"single-line\"    $ length lines == 1\n  classify \"multiple lines\" $ length lines >  1\n"
  },
  {
    "path": "semantic-source/test/Test.hs",
    "content": "module Main\n( main\n) where\n\nimport qualified Range.Test as Range\nimport qualified Source.Test as Source\nimport           Test.Tasty as Tasty\n\nmain :: IO ()\nmain = defaultMain $ testGroup \"semantic-source\"\n  [ Range.testTree\n  , Source.testTree\n  ]\n"
  },
  {
    "path": "semantic-tags/BUILD.bazel",
    "content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\n    \"@rules_haskell//haskell:defs.bzl\",\n    \"haskell_binary\",\n    \"haskell_library\",\n)\nload(\n    \"@rules_haskell//haskell:cabal.bzl\",\n    \"haskell_cabal_binary\",\n    \"haskell_cabal_library\",\n)\nload(\n    \"//:build/common.bzl\",\n    \"GHC_FLAGS\",\n)\n\nhaskell_library(\n    name = \"semantic-tags\",\n    srcs = glob([\"src/**/*.hs\"]),\n    compiler_flags = GHC_FLAGS,\n    deps = [\n        \"//:base\",\n        \"//:bytestring\",\n        \"//:containers\",\n        \"//:text\",\n        \"//semantic-proto\",\n        \"//semantic-source\",\n        \"@stackage//:fused-effects\",\n    ],\n)\n"
  },
  {
    "path": "semantic-tags/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 GitHub\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "semantic-tags/README.md",
    "content": "# semantic-tags\n\nTags computation over ASTs.\n\n\n## Development\n\nThis project consists of a Haskell package named `semantic-tags`. The library’s sources are in [`src`][].\n\nDevelopment of `semantic-tags` is typically done using `cabal v2-build`:\n\n```shell\ncabal v2-build # build the library\ncabal v2-repl  # load the package into ghci\ncabal v2-test  # build and run the doctests\n```\n\n[`src`]: https://github.com/github/semantic/tree/master/semantic-tags/src\n"
  },
  {
    "path": "semantic-tags/Setup.hs",
    "content": "import Distribution.Simple\nmain = defaultMain\n"
  },
  {
    "path": "semantic-tags/semantic-tags.cabal",
    "content": "cabal-version:       2.4\n\nname:                semantic-tags\nversion:             0.0.0.0\nsynopsis:            Tags computation\ndescription:         Tags computation for ASTs derived from tree-sitter grammars.\nhomepage:            https://github.com/github/semantic/tree/master/semantic-tags#readme\nbug-reports:         https://github.com/github/semantic/issues\nlicense:             MIT\nlicense-file:        LICENSE\nauthor:              The Semantic authors\nmaintainer:          opensource+semantic@github.com\ncopyright:           (c) 2019 GitHub, Inc.\ncategory:            Language\nbuild-type:          Simple\nstability:           alpha\nextra-source-files:  README.md\n\ntested-with:         GHC == 8.6.5\n\ncommon haskell\n  default-language: Haskell2010\n  default-extensions: StrictData\n  ghc-options:\n    -Weverything\n    -Wno-missing-local-signatures\n    -Wno-missing-import-lists\n    -Wno-implicit-prelude\n    -Wno-safe\n    -Wno-unsafe\n    -Wno-name-shadowing\n    -Wno-monomorphism-restriction\n    -Wno-missed-specialisations\n    -Wno-all-missed-specialisations\n    -Wno-star-is-type\n  if (impl(ghc >= 8.8))\n    ghc-options: -Wno-missing-deriving-strategies\n  if (impl(ghc >= 8.10))\n    ghc-options:\n      -Wno-missing-safe-haskell-mode\n      -Wno-prepositive-qualified-module\n  if (impl(ghc >= 9.2))\n    ghc-options:\n      -Wno-missing-kind-signatures\n\nlibrary\n  import: haskell\n  exposed-modules:\n    Tags.Tag\n    Tags.Tagging.Precise\n  build-depends:\n    , base                >= 4.13 && < 5\n    , bytestring          >= 0.10.8.2 && < 0.13\n    , containers         ^>= 0.6.0.1\n    , fused-effects      ^>= 1.1\n    , semantic-proto     ^>= 0\n    , semantic-source    ^>= 0.2\n    , text               ^>= 1.2.3.1\n  hs-source-dirs:      src\n\ntest-suite test\n  import: haskell\n  type: exitcode-stdio-1.0\n  hs-source-dirs: test\n  main-is: Test.hs\n  build-depends:\n    , base             >= 4.13 && < 5\n    , semantic-source ^>= 0.2\n    , semantic-tags\n    , tasty            >= 1.2 && <2\n    , tasty-hunit      >= 0.10 && <1\n    , text            ^>= 1.2.3.1\n"
  },
  {
    "path": "semantic-tags/src/Tags/Tag.hs",
    "content": "{-# LANGUAGE GeneralisedNewtypeDeriving #-}\nmodule Tags.Tag (Tag (..), UTF16CodeUnitSpan(..), OneIndexedSpan(..)) where\n\nimport Data.Text (Text)\nimport qualified Proto.Semantic as P\nimport Source.Loc\n\n-- | A 0-indxed Span where the column offset units are utf-16 code units (2\n-- bytes), suitable for the LSP (Language Server Protocol) specification.\nnewtype UTF16CodeUnitSpan = UTF16CodeUnitSpan { unUTF16CodeUnitSpan :: Span }\n  deriving (Eq, Show)\n\n-- A 1-indexed Span where the units are bytes.\nnewtype OneIndexedSpan = OneIndexedSpan { unOneIndexedSpan :: Span }\n  deriving (Eq, Show)\n\ndata Tag\n  = Tag\n      { tagName :: Text,\n        tagSyntaxType :: P.SyntaxType,\n        tagNodeType :: P.NodeType,\n        tagByteRange :: Range,\n        tagOneIndexedSpan :: OneIndexedSpan,\n        tagLine :: Text,\n        tagUTF16CodeUnitSpan :: UTF16CodeUnitSpan\n      }\n  deriving (Eq, Show)\n"
  },
  {
    "path": "semantic-tags/src/Tags/Tagging/Precise.hs",
    "content": "{-# LANGUAGE GeneralisedNewtypeDeriving #-}\n{-# LANGUAGE BangPatterns #-}\n{-# LANGUAGE TypeApplications #-}\nmodule Tags.Tagging.Precise\n( Tags\n, Tag(..)\n, OneIndexedSpan(..)\n, UTF16CodeUnitSpan(..)\n, ToTags(..)\n, LineIndices(..)\n, yield\n, runTagging\n, calculateLineAndSpans\n, countUtf16CodeUnits\n, slice180\n, surroundingLine\n, surroundingLineRange\n) where\n\nimport Control.Carrier.Reader\nimport Control.Carrier.Writer.Strict\nimport Control.Carrier.State.Strict\nimport qualified Data.ByteString as B\nimport Data.Char (ord)\nimport Data.Functor.Identity\nimport Data.Monoid (Endo (..))\nimport Data.Text (Text)\nimport qualified Data.Text as Text\nimport qualified Proto.Semantic as P\nimport Source.Loc\nimport Source.Source as Source\nimport Source.Span (Pos (..), end, start)\nimport Tags.Tag\nimport Prelude hiding (span)\nimport Data.Map as Map\nimport Data.IntMap as IntMap\n\n\ntype Tags = Endo [Tag]\n\nclass ToTags t where\n  tags :: Source -> t Loc -> [Tag]\n\n\nyield ::\n  (Has (State LineIndices) sig m, Has (Reader Source) sig m, Has (Writer Tags) sig m) =>\n  Text ->         -- |^ Text of the identifier\n  P.SyntaxType -> -- |^ Type of syntax\n  P.NodeType ->   -- |^ Node type: definition or reference\n  Loc ->          -- |^ Location of the identifier\n  Range ->        -- |^ Range of the entire expression (not used, but reserved for future used)\n  m ()\nyield name syntaxType nodeType loc _ = do\n  src <- ask @Source\n  xs <- get @LineIndices\n  let (line, span, lspSpan, map) = calculateLineAndSpans src xs loc\n  put map\n  tell . Endo . (:) $\n    Tag name syntaxType nodeType (byteRange loc) span line lspSpan\n\nrunTagging :: Source -> ReaderC Source (StateC LineIndices (WriterC Tags Identity)) () -> [Tag]\nrunTagging source\n  = ($ [])\n  . appEndo\n  . run\n  . execWriter\n  . evalState (LineIndices mempty)\n  . runReader source\n\ntype UTF16CUCount = Int\n\n-- | LineCache is a cache of a line of source code and a map of byte offsets to utf16 code unit count.\ntype LineCache = (Source, Text, IntMap.IntMap UTF16CUCount)\n\n-- | LineIndices is a cache of row to LineCache\nnewtype LineIndices = LineIndices { unLineIndices :: Map.Map Int LineCache }\n  deriving (Eq, Show)\n\n-- | Takes a Loc (where the span's column offset is measured in bytes) and\n-- returns two Spans: A 1-indexed span LSP friendly span (where column offset is\n-- measure in utf16 code units).\ncalculateLineAndSpans ::\n  Source -> -- | ^ Source\n  LineIndices ->\n  Loc ->    -- | ^ Location of identifier\n  (Text, OneIndexedSpan, UTF16CodeUnitSpan, LineIndices)\ncalculateLineAndSpans\n  src\n  lineIndexes\n  loc@Loc\n    { span =\n        span@Span\n          { start = start@(Pos startRow startCol),\n            end = end@(Pos _ endCol)\n          }\n    } = (line, toOneIndexed span, utf16Span, map')\n  where\n    line = slice180 end srcText\n    (srcLine, srcText, lineCache, map) = surroundingLine src lineIndexes loc\n    toOneIndexed (Span (Pos l1 c1) (Pos l2 c2)) = OneIndexedSpan $ Span (Pos (l1 + 1) (c1 + 1)) (Pos (l2 + 1) (c2 + 1))\n    utf16Span = UTF16CodeUnitSpan $ Span start {column = utf16cpStartOffset} end {column = utf16cpEndOffset}\n\n    (utf16cpStartOffset, map') = countOffsetCached startSlice lineCache startCol map\n    utf16cpEndOffset = utf16cpStartOffset + countUtf16CodeUnits endSlice\n\n    countOffsetCached :: Source -> LineCache -> Int -> LineIndices -> (Int, LineIndices)\n    countOffsetCached slice (s, t, countMap) colKey (LineIndices map)\n      = let c = case IntMap.lookupLE colKey countMap of\n                  Just (startOffset, count) -> count + countUtf16CodeUnits (Source.slice slice (Range startOffset colKey))\n                  Nothing -> countUtf16CodeUnits slice\n        in (c, LineIndices $ Map.insert startRow (s, t, IntMap.insert colKey c countMap) map)\n\n    -- NB: Slice out of the Source ByteString, NOT Text because Loc/Range is in units of bytes.\n    startSlice = Source.slice srcLine (Range 0 startCol)\n    endSlice = Source.slice srcLine (Range startCol endCol)\n\n-- NB: Important to limit to 180 characters after converting to text so as not to take in the middle of a multi-byte character.\nslice180 :: Pos -> Text -> Text\nslice180 (Pos _ end) = Text.strip . Text.take 180 . drop\n  where\n    drop | end > 180 = Text.drop (end - 180)\n         | otherwise = id\n\ndata Counter = Counter { _skip :: Int, unCounter :: Int }\ncountUtf16CodeUnits :: Source -> Int\ncountUtf16CodeUnits = unCounter . B.foldl' count (Counter 0 0) . bytes\n  where\n    count (Counter skip sum) !byte\n      | skip > 0     = Counter (pred skip) sum\n      | byte <= 0x7f = Counter 0 (1 + sum) -- takes 2 bytes (1 utf16 cu)\n      | byte <= 0xbf = error \"not valid utf8, byte <= 0xbf\"\n      | byte <= 0xdf = Counter 1 (1 + sum) -- takes 2 bytes (1 utf16 cu)\n      | byte <= 0xef = Counter 2 (1 + sum) -- takes 2 bytes (1 utf16 cu)\n      | byte <= 0xf7 = Counter 3 (2 + sum) -- takes 4 bytes (2 utf16 cu)\n      | otherwise    = error \"not valid utf8\"\n{-# INLINE countUtf16CodeUnits #-}\n\n-- | The Source of the entire surrounding line (cached).\nsurroundingLine :: Source -> LineIndices -> Loc -> (Source, Text, LineCache, LineIndices)\nsurroundingLine src li@(LineIndices map) loc@(Loc _ (Span (Pos start _) _)) =\n  case Map.lookup start map of\n    Just cache@(line, lineText, _) -> (line, lineText, cache, li)\n    Nothing -> let cache = (line, lineText, mempty) in (line, lineText, cache, LineIndices (Map.insert start cache map))\n  where\n    lineText = Source.toText line\n    line = Source.slice src range\n    range = surroundingLineRange src loc\n\n-- | The Range of the line surrounding the given location. (Takes advantage of\n-- the fact that we already have the row information (where newlines are) from\n-- tree-sitter.)\nsurroundingLineRange :: Source -> Loc -> Range\nsurroundingLineRange src (Loc (Range start _) (Span (Pos _ startCol) _)) = Range (start - startCol) lineEnd\n  where\n    lineEnd = maybe eof (start +) $ B.elemIndex lfChar remainingSource\n    remainingSource = B.drop start (bytes src)\n\n    lfChar = toEnum (ord '\\n')\n    eof = Source.length src\n"
  },
  {
    "path": "semantic-tags/test/Test.hs",
    "content": "{-# LANGUAGE OverloadedStrings #-}\nmodule Main\n( main\n) where\n\nimport Tags.Tagging.Precise\nimport Data.Text (Text)\nimport Source.Source as Source\nimport Source.Loc\nimport Source.Span\nimport Test.Tasty as Tasty\nimport Test.Tasty.HUnit\n\nmain :: IO ()\nmain = defaultMain $ testGroup \"semantic-tags\" [ testTree ]\n\nsrc :: Text -> Source\nsrc = Source.fromText\n\n-- | For testing\ncalculateLineAndSpans' :: Source -> Loc -> (Text, OneIndexedSpan, UTF16CodeUnitSpan)\ncalculateLineAndSpans' src loc = let (a, b, c, _) = calculateLineAndSpans src (LineIndices mempty) loc in (a, b, c)\n\ntestTree :: Tasty.TestTree\ntestTree = Tasty.testGroup \"Tags.Tagging.Precise\"\n  [ Tasty.testGroup \"countUtf16CodeUnits from utf8 encoded bytestring\"\n    [ testCase \"one byte\" $ do\n        1 @=? countUtf16CodeUnits (src \"a\")\n\n    , testCase \"null byte\" $ do\n        1 @=? countUtf16CodeUnits (src \"\\0\") -- NULL\n\n    , testCase \"two bytes\" $ do\n        1 @=? countUtf16CodeUnits (src \"\\x0080\") -- \"\"\n        1 @=? countUtf16CodeUnits (src \"à\")\n\n    , testCase \"three bytes\" $ do\n        1 @=? countUtf16CodeUnits (src \"\\x0800\") -- \"ࠀ\"\n\n    , testCase \"four bytes\" $ do\n        2 @=? countUtf16CodeUnits (src \"𐀀\")\n        2 @=? countUtf16CodeUnits (src \"😀\")\n\n    , testCase \"multibyte\" $ do\n        4 @=? countUtf16CodeUnits (src \"👋🏻\")\n    ]\n\n    -- Range start = 13 + *num bytes in char inside ''*\n    -- Span start col = 5 + *num bytes in char*\n  , Tasty.testGroup \"firstLineAndSpans\"\n    [ testCase \"one line\" $\n        let src = Source.fromText \"def foo;end\"\n            loc = Loc (Range 4 7) (Span (Pos 0 4) (Pos 0 7))\n        in ( \"def foo;end\"\n           , OneIndexedSpan $ Span (Pos 1 5) (Pos 1 8) -- one indexed, counting bytes\n           , UTF16CodeUnitSpan $ Span (Pos 0 4) (Pos 0 7) -- zero-indexed, counting utf16 code units (lsp-style column offset)\n           ) @=? calculateLineAndSpans' src loc\n\n    , testCase \"ascii\" $\n        let src = Source.fromText \"def foo\\n  'a'.hi\\nend\\n\"\n            loc = Loc (Range 14 16) (Span (Pos 1 6) (Pos 1 8))\n        in ( \"'a'.hi\"\n           , OneIndexedSpan $ Span (Pos 2 7) (Pos 2 9) -- one indexed, counting bytes\n           , UTF16CodeUnitSpan $ Span (Pos 1 6) (Pos 1 8) -- zero-indexed, counting utf16 code units (lsp-style column offset)\n           ) @=? calculateLineAndSpans' src loc\n\n    , testCase \"unicode\" $\n        let src = Source.fromText \"def foo\\n  'à'.hi\\nend\\n\"\n            loc = Loc (Range 15 17) (Span (Pos 1 7) (Pos 1 9))\n        in ( \"'à'.hi\"\n           , OneIndexedSpan $ Span (Pos 2 8) (Pos 2 10) -- one indexed, counting bytes\n           , UTF16CodeUnitSpan $ Span (Pos 1 6) (Pos 1 8)  -- zero-indexed, counting utf16 code units (lsp-style column offset)\n           ) @=? calculateLineAndSpans' src loc\n\n    , testCase \"multi code point unicode\" $\n        let src = Source.fromText \"def foo\\n  '💀'.hi\\nend\\n\"\n            loc = Loc (Range 17 19) (Span (Pos 1 9) (Pos 1 11))\n        in ( \"'💀'.hi\"\n           , OneIndexedSpan $ Span (Pos 2 10) (Pos 2 12) -- one indexed, counting bytes\n           , UTF16CodeUnitSpan $ Span (Pos 1 7) (Pos 1 9)   -- zero-indexed, counting utf16 code units (lsp-style column offset)\n           ) @=? calculateLineAndSpans' src loc\n\n    -- NB: This emoji (:man-woman-girl-girl:) cannot be entered into a string literal in haskell for some reason, you'll get:\n    --   > lexical error in string/character literal at character '\\8205'\n    -- The work around is to enter the unicode directly (7 code points).\n    -- utf-8: 25 bytes to represent\n    -- utf-16: 23 bytes to represent\n    , testCase \"multi code point unicode :man-woman-girl-girl:\" $\n        let src = Source.fromText \"def foo\\n  '\\128104\\8205\\128105\\8205\\128103\\8205\\128103'.hi\\nend\\n\"\n            loc = Loc (Range 38 40) (Span (Pos 1 30) (Pos 1 32))\n        in ( \"'\\128104\\8205\\128105\\8205\\128103\\8205\\128103'.hi\"\n           , OneIndexedSpan $ Span (Pos 2 31) (Pos 2 33)  -- one indexed, counting bytes\n           , UTF16CodeUnitSpan $ Span (Pos 1 16) (Pos 1 18)  -- zero-indexed, counting utf16 code units (lsp-style column offset)\n           ) @=? calculateLineAndSpans' src loc\n    ]\n  , Tasty.testGroup \"slice180\"\n    [ testCase \"shorter than 180 chars\" $ do\n        \"def foo\" @=? slice180 (Pos 0 0) \"def foo\"\n\n    , testCase \"180 chars at position 0\" $ do\n        line180chars @=? slice180 (Pos 0 0) line180chars\n\n    , testCase \"180 chars at position 179\" $ do\n        line180chars @=? slice180 (Pos 0 179) line180chars\n\n    , testCase \"240 chars at position 0\" $ do\n        line180chars\n            @=? slice180 (Pos 0 0) line240chars\n\n    , testCase \"240 chars at position 179\" $ do\n        line180chars\n            @=? slice180 (Pos 0 179) line240chars\n\n    , testCase \"240 chars at position 180\" $ do\n        line180chars\n            @=? slice180 (Pos 0 180) line240chars\n\n    , testCase \"240 chars at position 182\" $ do\n        \"unction(e,t){\\\"use strict\\\";\\\"object\\\"==typeof module&&\\\"object\\\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\\\"jQuery requires a w\"\n            @=? slice180 (Pos 0 182) line240chars\n    ]\n  ]\n\n  where\n    line180chars = \"!function(e,t){\\\"use strict\\\";\\\"object\\\"==typeof module&&\\\"object\\\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\\\"jQuery requires a\"\n    line240chars = \"!function(e,t){\\\"use strict\\\";\\\"object\\\"==typeof module&&\\\"object\\\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\\\"jQuery requires a window with a document\\\");return t(e)}:t(e)}(\\\"undefined\\\"!=ty\"\n"
  },
  {
    "path": "semantic-tsx/BUILD.bazel",
    "content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\n    \"//:build/common.bzl\",\n    \"semantic_language_library\",\n    \"semantic_language_parsing_test\",\n)\n\nsemantic_language_library(\n    name = \"semantic-tsx\",\n    srcs = glob([\"src/**/*.hs\"]),\n    language = \"tsx\",\n    nodetypes = \"@tree-sitter-tsx//:vendor/tree-sitter-typescript/tsx/src/node-types.json\",\n    ts_package = \"tsx\",\n)\n\nsemantic_language_parsing_test(\n    language = \"tsx\",\n    semantic_package = \"tsx\",\n    ts_package = \"typescript\",\n)\n"
  },
  {
    "path": "semantic-tsx/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 GitHub\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "semantic-tsx/README.md",
    "content": "# Semantic support for TSX\n\nThis package implements `semantic` support for TSX.\n"
  },
  {
    "path": "semantic-tsx/Setup.hs",
    "content": "import Distribution.Simple\nmain = defaultMain\n"
  },
  {
    "path": "semantic-tsx/semantic-tsx.cabal",
    "content": "cabal-version:       2.4\n\nname:                semantic-tsx\nversion:             0.0.0.0\nsynopsis:            Semantic support for TSX.\ndescription:         Semantic support for TSX.\nhomepage:            https://github.com/github/semantic/tree/master/semantic-tsx#readme\nbug-reports:         https://github.com/github/semantic/issues\nlicense:             MIT\nlicense-file:        LICENSE\nauthor:              The Semantic authors\nmaintainer:          opensource+semantic@github.com\ncopyright:           (c) 2019 GitHub, Inc.\ncategory:            Language\nbuild-type:          Simple\nstability:           alpha\nextra-source-files:  README.md\n\ntested-with:         GHC == 8.6.5\n\ncommon haskell\n  default-language:    Haskell2010\n  ghc-options:\n    -Weverything\n    -Wno-missing-local-signatures\n    -Wno-missing-import-lists\n    -Wno-implicit-prelude\n    -Wno-safe\n    -Wno-unsafe\n    -Wno-name-shadowing\n    -Wno-monomorphism-restriction\n    -Wno-missed-specialisations\n    -Wno-all-missed-specialisations\n    -Wno-star-is-type\n  if (impl(ghc >= 8.8))\n    ghc-options: -Wno-missing-deriving-strategies\n  if (impl(ghc >= 8.10))\n    ghc-options:\n      -Wno-missing-safe-haskell-mode\n      -Wno-prepositive-qualified-module\n  if (impl(ghc >= 9.2))\n    ghc-options:\n      -Wno-missing-kind-signatures\n  cpp-options:\n    -DBAZEL_BUILD=0\n\nlibrary\n  import: haskell\n  exposed-modules:\n    Language.TSX\n    Language.TSX.AST\n    Language.TSX.Grammar\n    Language.TSX.Tags\n  hs-source-dirs: src\n  build-depends:\n    , base  >= 4.13 && < 5\n    , fused-effects ^>= 1.1\n    , semantic-ast\n    , semantic-proto ^>= 0\n    , semantic-source ^>= 0.2\n    , semantic-tags ^>= 0.0\n    , template-haskell  >= 2.15 && < 2.22\n    , text ^>= 1.2.3\n    , tree-sitter ^>= 0.9\n    , tree-sitter-tsx ^>= 0.5.0.1\n\ntest-suite test\n  import: haskell\n  type:             exitcode-stdio-1.0\n  hs-source-dirs:   test\n  main-is:          PreciseTest.hs\n  build-depends:\n    , base\n    , semantic-ast\n    , semantic-tsx\n    , tasty\n    , tree-sitter-tsx ^>= 0.5.0.1\n"
  },
  {
    "path": "semantic-tsx/src/Language/TSX/AST.hs",
    "content": "-- Language definition for TSX, generated by ast-generate. Do not edit!\n{-# LANGUAGE CPP #-}\n{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE DeriveTraversable #-}\n{-# LANGUAGE DerivingStrategies #-}\n{-# LANGUAGE DuplicateRecordFields #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE QuantifiedConstraints #-}\n{-# LANGUAGE StandaloneDeriving #-}\n{-# LANGUAGE TemplateHaskell #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\n{-# OPTIONS_GHC -fno-warn-unused-imports #-}\n\nmodule Language.TSX.AST (module Language.TSX.AST, getTestCorpusDir) where\n\nimport qualified AST.Parse\nimport qualified AST.Token\nimport qualified AST.Traversable1.Class\nimport qualified AST.Unmarshal\nimport qualified Data.Foldable\nimport qualified Data.List as Data.OldList\nimport qualified Data.Maybe as GHC.Maybe\nimport qualified Data.Text.Internal\nimport qualified Data.Traversable\nimport qualified GHC.Base\nimport qualified GHC.Generics\nimport qualified GHC.Records\nimport qualified GHC.Show\nimport qualified TreeSitter.Node\nimport TreeSitter.TSX (getTestCorpusDir)\nimport qualified Prelude as GHC.Classes\n\ndebugSymbolNames :: [GHC.Base.String]\ndebugSymbolNames = debugSymbolNames_0\n\ndebugSymbolNames_0 :: [GHC.Base.String]\ndebugSymbolNames_0 =\n  [ \"end\",\n    \"identifier\",\n    \"hash_bang_line\",\n    \"_export\",\n    \"_*\",\n    \"_default\",\n    \"_=\",\n    \"_as\",\n    \"_namespace\",\n    \"_{\",\n    \"_,\",\n    \"_}\",\n    \"_type\",\n    \"_typeof\",\n    \"_import\",\n    \"_from\",\n    \"_var\",\n    \"_let\",\n    \"_const\",\n    \"_if\",\n    \"_else\",\n    \"_switch\",\n    \"_for\",\n    \"_(\",\n    \"_)\",\n    \"_await\",\n    \"_in\",\n    \"_of\",\n    \"_while\",\n    \"_do\",\n    \"_try\",\n    \"_with\",\n    \"_break\",\n    \"_continue\",\n    \"_debugger\",\n    \"_return\",\n    \"_throw\",\n    \"_;\",\n    \"_:\",\n    \"_case\",\n    \"_catch\",\n    \"_finally\",\n    \"_yield\",\n    \"_[\",\n    \"_]\",\n    \"_<\",\n    \"_>\",\n    \"_/\",\n    \"jsx_text\",\n    \"identifier\",\n    \"_.\",\n    \"_class\",\n    \"_async\",\n    \"_function\",\n    \"_=>\",\n    \"_new\",\n    \"_+=\",\n    \"_-=\",\n    \"_*=\",\n    \"_/=\",\n    \"_%=\",\n    \"_^=\",\n    \"_&=\",\n    \"_|=\",\n    \"_>>=\",\n    \"_>>>=\",\n    \"_<<=\",\n    \"_**=\",\n    \"_...\",\n    \"_?\",\n    \"_&&\",\n    \"_||\",\n    \"_>>\",\n    \"_>>>\",\n    \"_<<\",\n    \"_&\",\n    \"_^\",\n    \"_|\",\n    \"_+\",\n    \"_-\",\n    \"_%\",\n    \"_**\",\n    \"_<=\",\n    \"_==\",\n    \"_===\",\n    \"_!=\",\n    \"_!==\",\n    \"_>=\",\n    \"_??\",\n    \"_instanceof\",\n    \"_!\",\n    \"_~\",\n    \"_void\",\n    \"_delete\",\n    \"_++\",\n    \"_--\",\n    \"_\\\"\",\n    \"_string_token1\",\n    \"_'\",\n    \"_string_token2\",\n    \"escape_sequence\",\n    \"comment\",\n    \"_`\",\n    \"_${\",\n    \"_/\",\n    \"regex_pattern\",\n    \"regex_flags\",\n    \"number\",\n    \"_target\",\n    \"this\",\n    \"super\",\n    \"true\",\n    \"false\",\n    \"null\",\n    \"undefined\",\n    \"_@\",\n    \"_static\",\n    \"_abstract\",\n    \"_get\",\n    \"_set\",\n    \"_declare\",\n    \"_public\",\n    \"_private\",\n    \"_protected\",\n    \"_module\",\n    \"_any\",\n    \"_number\",\n    \"_boolean\",\n    \"_string\",\n    \"_symbol\",\n    \"_require\",\n    \"_implements\",\n    \"_global\",\n    \"_interface\",\n    \"_extends\",\n    \"_enum\",\n    \"readonly\",\n    \"_is\",\n    \"_keyof\",\n    \"_{|\",\n    \"_|}\",\n    \"_automatic_semicolon\",\n    \"_template_chars\",\n    \"program\",\n    \"export_statement\",\n    \"export_clause\",\n    \"_import_export_specifier\",\n    \"_declaration\",\n    \"import\",\n    \"import_statement\",\n    \"import_clause\",\n    \"_from_clause\",\n    \"namespace_import\",\n    \"named_imports\",\n    \"expression_statement\",\n    \"variable_declaration\",\n    \"lexical_declaration\",\n    \"variable_declarator\",\n    \"statement_block\",\n    \"if_statement\",\n    \"switch_statement\",\n    \"for_statement\",\n    \"for_in_statement\",\n    \"_for_header\",\n    \"while_statement\",\n    \"do_statement\",\n    \"try_statement\",\n    \"with_statement\",\n    \"break_statement\",\n    \"continue_statement\",\n    \"debugger_statement\",\n    \"return_statement\",\n    \"throw_statement\",\n    \"empty_statement\",\n    \"labeled_statement\",\n    \"switch_body\",\n    \"switch_case\",\n    \"switch_default\",\n    \"catch_clause\",\n    \"finally_clause\",\n    \"parenthesized_expression\",\n    \"_expression\",\n    \"yield_expression\",\n    \"object\",\n    \"assignment_pattern\",\n    \"array\",\n    \"jsx_element\",\n    \"jsx_fragment\",\n    \"jsx_expression\",\n    \"jsx_opening_element\",\n    \"nested_identifier\",\n    \"jsx_namespace_name\",\n    \"jsx_closing_element\",\n    \"jsx_self_closing_element\",\n    \"jsx_attribute\",\n    \"class\",\n    \"class_declaration\",\n    \"class_heritage\",\n    \"function\",\n    \"function_declaration\",\n    \"generator_function\",\n    \"generator_function_declaration\",\n    \"arrow_function\",\n    \"_call_signature\",\n    \"call_expression\",\n    \"new_expression\",\n    \"await_expression\",\n    \"member_expression\",\n    \"subscript_expression\",\n    \"assignment_expression\",\n    \"augmented_assignment_expression\",\n    \"_initializer\",\n    \"spread_element\",\n    \"ternary_expression\",\n    \"binary_expression\",\n    \"unary_expression\",\n    \"update_expression\",\n    \"sequence_expression\",\n    \"string\",\n    \"template_string\",\n    \"template_substitution\",\n    \"regex\",\n    \"meta_property\",\n    \"arguments\",\n    \"decorator\",\n    \"member_expression\",\n    \"call_expression\",\n    \"class_body\",\n    \"public_field_definition\",\n    \"formal_parameters\",\n    \"rest_parameter\",\n    \"method_definition\",\n    \"pair\",\n    \"_property_name\",\n    \"computed_property_name\",\n    \"non_null_expression\",\n    \"method_signature\",\n    \"abstract_method_signature\",\n    \"function_signature\",\n    \"as_expression\",\n    \"import_require_clause\",\n    \"implements_clause\",\n    \"ambient_declaration\",\n    \"abstract_class_declaration\",\n    \"module\",\n    \"internal_module\",\n    \"_module\",\n    \"import_alias\",\n    \"nested_type_identifier\",\n    \"interface_declaration\",\n    \"extends_clause\",\n    \"enum_declaration\",\n    \"enum_body\",\n    \"enum_assignment\",\n    \"type_alias_declaration\",\n    \"accessibility_modifier\",\n    \"required_parameter\",\n    \"optional_parameter\",\n    \"_parameter_name\",\n    \"type_annotation\",\n    \"_type\",\n    \"constructor_type\",\n    \"_primary_type\",\n    \"generic_type\",\n    \"type_predicate\",\n    \"type_query\",\n    \"index_type_query\",\n    \"lookup_type\",\n    \"mapped_type_clause\",\n    \"literal_type\",\n    \"unary_expression\",\n    \"existential_type\",\n    \"flow_maybe_type\",\n    \"parenthesized_type\",\n    \"predefined_type\",\n    \"type_arguments\",\n    \"object_type\",\n    \"call_signature\",\n    \"property_signature\",\n    \"type_parameters\",\n    \"type_parameter\",\n    \"default_type\",\n    \"constraint\",\n    \"construct_signature\",\n    \"index_signature\",\n    \"array_type\",\n    \"tuple_type\",\n    \"union_type\",\n    \"intersection_type\",\n    \"function_type\",\n    \"_program_repeat1\",\n    \"_export_statement_repeat1\",\n    \"_export_clause_repeat1\",\n    \"_named_imports_repeat1\",\n    \"_variable_declaration_repeat1\",\n    \"_switch_body_repeat1\",\n    \"_object_repeat1\",\n    \"_array_repeat1\",\n    \"_jsx_element_repeat1\",\n    \"_jsx_opening_element_repeat1\",\n    \"_string_repeat1\",\n    \"_string_repeat2\",\n    \"_template_string_repeat1\",\n    \"_class_body_repeat1\",\n    \"_formal_parameters_repeat1\",\n    \"_implements_clause_repeat1\",\n    \"_extends_clause_repeat1\",\n    \"_enum_body_repeat1\",\n    \"_object_type_repeat1\",\n    \"_type_parameters_repeat1\",\n    \"array_pattern\",\n    \"export_specifier\",\n    \"import_specifier\",\n    \"object_pattern\",\n    \"property_identifier\",\n    \"shorthand_property_identifier\",\n    \"statement_identifier\",\n    \"type_identifier\"\n  ]\n\nnewtype Declaration a = Declaration {getDeclaration :: ((AbstractClassDeclaration GHC.Generics.:+: AmbientDeclaration GHC.Generics.:+: ClassDeclaration GHC.Generics.:+: EnumDeclaration GHC.Generics.:+: FunctionDeclaration GHC.Generics.:+: FunctionSignature GHC.Generics.:+: GeneratorFunctionDeclaration GHC.Generics.:+: ImportAlias GHC.Generics.:+: InterfaceDeclaration GHC.Generics.:+: InternalModule GHC.Generics.:+: LexicalDeclaration GHC.Generics.:+: Module GHC.Generics.:+: TypeAliasDeclaration GHC.Generics.:+: VariableDeclaration) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1.\n      AST.Traversable1.Class.Traversable1 a_1\n    )\n\ninstance GHC.Records.HasField \"ann\" (Declaration a_2) a_2 where\n  getField = AST.Unmarshal.gann GHC.Base.. getDeclaration\n\nderiving instance GHC.Classes.Eq a_3 => GHC.Classes.Eq (Declaration a_3)\n\nderiving instance GHC.Classes.Ord a_4 => GHC.Classes.Ord (Declaration a_4)\n\nderiving instance GHC.Show.Show a_5 => GHC.Show.Show (Declaration a_5)\n\ninstance AST.Unmarshal.Unmarshal Declaration\n\ninstance Data.Foldable.Foldable Declaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Declaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Declaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype DestructuringPattern a = DestructuringPattern {getDestructuringPattern :: ((ArrayPattern GHC.Generics.:+: ObjectPattern) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_6.\n      AST.Traversable1.Class.Traversable1 a_6\n    )\n\ninstance GHC.Records.HasField \"ann\" (DestructuringPattern a_7) a_7 where\n  getField = AST.Unmarshal.gann GHC.Base.. getDestructuringPattern\n\nderiving instance GHC.Classes.Eq a_8 => GHC.Classes.Eq (DestructuringPattern a_8)\n\nderiving instance GHC.Classes.Ord a_9 => GHC.Classes.Ord (DestructuringPattern a_9)\n\nderiving instance GHC.Show.Show a_10 => GHC.Show.Show (DestructuringPattern a_10)\n\ninstance AST.Unmarshal.Unmarshal DestructuringPattern\n\ninstance Data.Foldable.Foldable DestructuringPattern where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DestructuringPattern where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DestructuringPattern where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Expression a = Expression {getExpression :: ((Array GHC.Generics.:+: ArrowFunction GHC.Generics.:+: AsExpression GHC.Generics.:+: AssignmentExpression GHC.Generics.:+: AugmentedAssignmentExpression GHC.Generics.:+: AwaitExpression GHC.Generics.:+: BinaryExpression GHC.Generics.:+: CallExpression GHC.Generics.:+: Class GHC.Generics.:+: False GHC.Generics.:+: Function GHC.Generics.:+: GeneratorFunction GHC.Generics.:+: Identifier GHC.Generics.:+: Import GHC.Generics.:+: InternalModule GHC.Generics.:+: JsxElement GHC.Generics.:+: JsxFragment GHC.Generics.:+: JsxSelfClosingElement GHC.Generics.:+: MemberExpression GHC.Generics.:+: MetaProperty GHC.Generics.:+: NewExpression GHC.Generics.:+: NonNullExpression GHC.Generics.:+: Null GHC.Generics.:+: Number GHC.Generics.:+: Object GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: Regex GHC.Generics.:+: String GHC.Generics.:+: SubscriptExpression GHC.Generics.:+: Super GHC.Generics.:+: TemplateString GHC.Generics.:+: TernaryExpression GHC.Generics.:+: This GHC.Generics.:+: True GHC.Generics.:+: UnaryExpression GHC.Generics.:+: Undefined GHC.Generics.:+: UpdateExpression GHC.Generics.:+: YieldExpression) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_11.\n      AST.Traversable1.Class.Traversable1 a_11\n    )\n\ninstance GHC.Records.HasField \"ann\" (Expression a_12) a_12 where\n  getField = AST.Unmarshal.gann GHC.Base.. getExpression\n\nderiving instance GHC.Classes.Eq a_13 => GHC.Classes.Eq (Expression a_13)\n\nderiving instance GHC.Classes.Ord a_14 => GHC.Classes.Ord (Expression a_14)\n\nderiving instance GHC.Show.Show a_15 => GHC.Show.Show (Expression a_15)\n\ninstance AST.Unmarshal.Unmarshal Expression\n\ninstance Data.Foldable.Foldable Expression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Expression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Expression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Statement a = Statement {getStatement :: ((Declaration GHC.Generics.:+: BreakStatement GHC.Generics.:+: ContinueStatement GHC.Generics.:+: DebuggerStatement GHC.Generics.:+: DoStatement GHC.Generics.:+: EmptyStatement GHC.Generics.:+: ExportStatement GHC.Generics.:+: ExpressionStatement GHC.Generics.:+: ForInStatement GHC.Generics.:+: ForStatement GHC.Generics.:+: IfStatement GHC.Generics.:+: ImportStatement GHC.Generics.:+: LabeledStatement GHC.Generics.:+: ReturnStatement GHC.Generics.:+: StatementBlock GHC.Generics.:+: SwitchStatement GHC.Generics.:+: ThrowStatement GHC.Generics.:+: TryStatement GHC.Generics.:+: WhileStatement GHC.Generics.:+: WithStatement) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_16.\n      AST.Traversable1.Class.Traversable1 a_16\n    )\n\ninstance GHC.Records.HasField \"ann\" (Statement a_17) a_17 where\n  getField = AST.Unmarshal.gann GHC.Base.. getStatement\n\nderiving instance GHC.Classes.Eq a_18 => GHC.Classes.Eq (Statement a_18)\n\nderiving instance GHC.Classes.Ord a_19 => GHC.Classes.Ord (Statement a_19)\n\nderiving instance GHC.Show.Show a_20 => GHC.Show.Show (Statement a_20)\n\ninstance AST.Unmarshal.Unmarshal Statement\n\ninstance Data.Foldable.Foldable Statement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Statement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Statement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AbstractClassDeclaration a = AbstractClassDeclaration\n  { ann :: a,\n    body :: (AST.Parse.Err (ClassBody a)),\n    name :: (AST.Parse.Err (TypeIdentifier a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ClassHeritage a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_21.\n      AST.Traversable1.Class.Traversable1 a_21\n    )\n\ninstance AST.Unmarshal.SymbolMatching AbstractClassDeclaration where\n  matchedSymbols _ = [243]\n  showFailure _ node_22 =\n    \"expected \"\n      GHC.Base.<> ( \"abstract_class_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_22 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_22) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_23 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_24 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_25 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_26 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_23\n        c1_24 = TreeSitter.Node.nodeStartPoint node_22\n      TreeSitter.Node.TSPoint\n        r2_25\n        c2_26 = TreeSitter.Node.nodeEndPoint node_22\n\nderiving instance GHC.Classes.Eq a_27 => GHC.Classes.Eq (AbstractClassDeclaration a_27)\n\nderiving instance GHC.Classes.Ord a_28 => GHC.Classes.Ord (AbstractClassDeclaration a_28)\n\nderiving instance GHC.Show.Show a_29 => GHC.Show.Show (AbstractClassDeclaration a_29)\n\ninstance AST.Unmarshal.Unmarshal AbstractClassDeclaration\n\ninstance Data.Foldable.Foldable AbstractClassDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AbstractClassDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AbstractClassDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AbstractMethodSignature a = AbstractMethodSignature\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (AccessibilityModifier a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_30.\n      AST.Traversable1.Class.Traversable1 a_30\n    )\n\ninstance AST.Unmarshal.SymbolMatching AbstractMethodSignature where\n  matchedSymbols _ = [237]\n  showFailure _ node_31 =\n    \"expected \"\n      GHC.Base.<> ( \"abstract_method_signature\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_31 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_31) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_32 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_33 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_34 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_35 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_32\n        c1_33 = TreeSitter.Node.nodeStartPoint node_31\n      TreeSitter.Node.TSPoint\n        r2_34\n        c2_35 = TreeSitter.Node.nodeEndPoint node_31\n\nderiving instance GHC.Classes.Eq a_36 => GHC.Classes.Eq (AbstractMethodSignature a_36)\n\nderiving instance GHC.Classes.Ord a_37 => GHC.Classes.Ord (AbstractMethodSignature a_37)\n\nderiving instance GHC.Show.Show a_38 => GHC.Show.Show (AbstractMethodSignature a_38)\n\ninstance AST.Unmarshal.Unmarshal AbstractMethodSignature\n\ninstance Data.Foldable.Foldable AbstractMethodSignature where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AbstractMethodSignature where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AbstractMethodSignature where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AccessibilityModifier a = AccessibilityModifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_39.\n      AST.Traversable1.Class.Traversable1 a_39\n    )\n\ninstance AST.Unmarshal.SymbolMatching AccessibilityModifier where\n  matchedSymbols _ = [255]\n  showFailure _ node_40 =\n    \"expected \"\n      GHC.Base.<> ( \"accessibility_modifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_40 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_40) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_41 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_42 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_43 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_44 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_41\n        c1_42 = TreeSitter.Node.nodeStartPoint node_40\n      TreeSitter.Node.TSPoint\n        r2_43\n        c2_44 = TreeSitter.Node.nodeEndPoint node_40\n\nderiving instance GHC.Classes.Eq a_45 => GHC.Classes.Eq (AccessibilityModifier a_45)\n\nderiving instance GHC.Classes.Ord a_46 => GHC.Classes.Ord (AccessibilityModifier a_46)\n\nderiving instance GHC.Show.Show a_47 => GHC.Show.Show (AccessibilityModifier a_47)\n\ninstance AST.Unmarshal.Unmarshal AccessibilityModifier\n\ninstance Data.Foldable.Foldable AccessibilityModifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AccessibilityModifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AccessibilityModifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AmbientDeclaration a = AmbientDeclaration\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Declaration GHC.Generics.:+: ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: StatementBlock GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_48.\n      AST.Traversable1.Class.Traversable1 a_48\n    )\n\ninstance AST.Unmarshal.SymbolMatching AmbientDeclaration where\n  matchedSymbols _ = [242]\n  showFailure _ node_49 =\n    \"expected \"\n      GHC.Base.<> ( \"ambient_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_49 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_49) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_50 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_51 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_52 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_53 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_50\n        c1_51 = TreeSitter.Node.nodeStartPoint node_49\n      TreeSitter.Node.TSPoint\n        r2_52\n        c2_53 = TreeSitter.Node.nodeEndPoint node_49\n\nderiving instance GHC.Classes.Eq a_54 => GHC.Classes.Eq (AmbientDeclaration a_54)\n\nderiving instance GHC.Classes.Ord a_55 => GHC.Classes.Ord (AmbientDeclaration a_55)\n\nderiving instance GHC.Show.Show a_56 => GHC.Show.Show (AmbientDeclaration a_56)\n\ninstance AST.Unmarshal.Unmarshal AmbientDeclaration\n\ninstance Data.Foldable.Foldable AmbientDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AmbientDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AmbientDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Arguments a = Arguments\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: SpreadElement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_57.\n      AST.Traversable1.Class.Traversable1 a_57\n    )\n\ninstance AST.Unmarshal.SymbolMatching Arguments where\n  matchedSymbols _ = [223]\n  showFailure _ node_58 =\n    \"expected \"\n      GHC.Base.<> ( \"arguments\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_58 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_58) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_59 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_60 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_61 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_62 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_59\n        c1_60 = TreeSitter.Node.nodeStartPoint node_58\n      TreeSitter.Node.TSPoint\n        r2_61\n        c2_62 = TreeSitter.Node.nodeEndPoint node_58\n\nderiving instance GHC.Classes.Eq a_63 => GHC.Classes.Eq (Arguments a_63)\n\nderiving instance GHC.Classes.Ord a_64 => GHC.Classes.Ord (Arguments a_64)\n\nderiving instance GHC.Show.Show a_65 => GHC.Show.Show (Arguments a_65)\n\ninstance AST.Unmarshal.Unmarshal Arguments\n\ninstance Data.Foldable.Foldable Arguments where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Arguments where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Arguments where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Array a = Array\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: SpreadElement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_66.\n      AST.Traversable1.Class.Traversable1 a_66\n    )\n\ninstance AST.Unmarshal.SymbolMatching Array where\n  matchedSymbols _ = [185]\n  showFailure _ node_67 =\n    \"expected \"\n      GHC.Base.<> ( \"array\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_67 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_67) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_68 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_69 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_70 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_71 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_68\n        c1_69 = TreeSitter.Node.nodeStartPoint node_67\n      TreeSitter.Node.TSPoint\n        r2_70\n        c2_71 = TreeSitter.Node.nodeEndPoint node_67\n\nderiving instance GHC.Classes.Eq a_72 => GHC.Classes.Eq (Array a_72)\n\nderiving instance GHC.Classes.Ord a_73 => GHC.Classes.Ord (Array a_73)\n\nderiving instance GHC.Show.Show a_74 => GHC.Show.Show (Array a_74)\n\ninstance AST.Unmarshal.Unmarshal Array\n\ninstance Data.Foldable.Foldable Array where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Array where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Array where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ArrayPattern a = ArrayPattern\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: SpreadElement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_75.\n      AST.Traversable1.Class.Traversable1 a_75\n    )\n\ninstance AST.Unmarshal.SymbolMatching ArrayPattern where\n  matchedSymbols _ = [310]\n  showFailure _ node_76 =\n    \"expected \"\n      GHC.Base.<> ( \"array_pattern\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_76 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_76) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_77 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_78 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_79 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_80 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_77\n        c1_78 = TreeSitter.Node.nodeStartPoint node_76\n      TreeSitter.Node.TSPoint\n        r2_79\n        c2_80 = TreeSitter.Node.nodeEndPoint node_76\n\nderiving instance GHC.Classes.Eq a_81 => GHC.Classes.Eq (ArrayPattern a_81)\n\nderiving instance GHC.Classes.Ord a_82 => GHC.Classes.Ord (ArrayPattern a_82)\n\nderiving instance GHC.Show.Show a_83 => GHC.Show.Show (ArrayPattern a_83)\n\ninstance AST.Unmarshal.Unmarshal ArrayPattern\n\ninstance Data.Foldable.Foldable ArrayPattern where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ArrayPattern where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ArrayPattern where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ArrayType a = ArrayType\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((ArrayType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_84.\n      AST.Traversable1.Class.Traversable1 a_84\n    )\n\ninstance AST.Unmarshal.SymbolMatching ArrayType where\n  matchedSymbols _ = [285]\n  showFailure _ node_85 =\n    \"expected \"\n      GHC.Base.<> ( \"array_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_85 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_85) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_86 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_87 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_88 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_89 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_86\n        c1_87 = TreeSitter.Node.nodeStartPoint node_85\n      TreeSitter.Node.TSPoint\n        r2_88\n        c2_89 = TreeSitter.Node.nodeEndPoint node_85\n\nderiving instance GHC.Classes.Eq a_90 => GHC.Classes.Eq (ArrayType a_90)\n\nderiving instance GHC.Classes.Ord a_91 => GHC.Classes.Ord (ArrayType a_91)\n\nderiving instance GHC.Show.Show a_92 => GHC.Show.Show (ArrayType a_92)\n\ninstance AST.Unmarshal.Unmarshal ArrayType\n\ninstance Data.Foldable.Foldable ArrayType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ArrayType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ArrayType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ArrowFunction a = ArrowFunction\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    body :: (AST.Parse.Err ((Expression GHC.Generics.:+: StatementBlock) a)),\n    parameters :: (GHC.Maybe.Maybe (AST.Parse.Err (FormalParameters a))),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    parameter :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_93.\n      AST.Traversable1.Class.Traversable1 a_93\n    )\n\ninstance AST.Unmarshal.SymbolMatching ArrowFunction where\n  matchedSymbols _ = [202]\n  showFailure _ node_94 =\n    \"expected \"\n      GHC.Base.<> ( \"arrow_function\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_94 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_94) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_95 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_96 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_97 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_98 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_95\n        c1_96 = TreeSitter.Node.nodeStartPoint node_94\n      TreeSitter.Node.TSPoint\n        r2_97\n        c2_98 = TreeSitter.Node.nodeEndPoint node_94\n\nderiving instance GHC.Classes.Eq a_99 => GHC.Classes.Eq (ArrowFunction a_99)\n\nderiving instance GHC.Classes.Ord a_100 => GHC.Classes.Ord (ArrowFunction a_100)\n\nderiving instance GHC.Show.Show a_101 => GHC.Show.Show (ArrowFunction a_101)\n\ninstance AST.Unmarshal.Unmarshal ArrowFunction\n\ninstance Data.Foldable.Foldable ArrowFunction where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ArrowFunction where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ArrowFunction where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AsExpression a = AsExpression\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_102.\n      AST.Traversable1.Class.Traversable1 a_102\n    )\n\ninstance AST.Unmarshal.SymbolMatching AsExpression where\n  matchedSymbols _ = [239]\n  showFailure _ node_103 =\n    \"expected \"\n      GHC.Base.<> ( \"as_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_103 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_103) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_104 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_105 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_106 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_107 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_104\n        c1_105 = TreeSitter.Node.nodeStartPoint node_103\n      TreeSitter.Node.TSPoint\n        r2_106\n        c2_107 = TreeSitter.Node.nodeEndPoint node_103\n\nderiving instance GHC.Classes.Eq a_108 => GHC.Classes.Eq (AsExpression a_108)\n\nderiving instance GHC.Classes.Ord a_109 => GHC.Classes.Ord (AsExpression a_109)\n\nderiving instance GHC.Show.Show a_110 => GHC.Show.Show (AsExpression a_110)\n\ninstance AST.Unmarshal.Unmarshal AsExpression\n\ninstance Data.Foldable.Foldable AsExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AsExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AsExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AssignmentExpression a = AssignmentExpression\n  { ann :: a,\n    left :: (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: Identifier GHC.Generics.:+: MemberExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: SubscriptExpression) a)),\n    right :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_111.\n      AST.Traversable1.Class.Traversable1 a_111\n    )\n\ninstance AST.Unmarshal.SymbolMatching AssignmentExpression where\n  matchedSymbols _ = [209]\n  showFailure _ node_112 =\n    \"expected \"\n      GHC.Base.<> ( \"assignment_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_112 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_112) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_113 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_114 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_115 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_116 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_113\n        c1_114 = TreeSitter.Node.nodeStartPoint node_112\n      TreeSitter.Node.TSPoint\n        r2_115\n        c2_116 = TreeSitter.Node.nodeEndPoint node_112\n\nderiving instance GHC.Classes.Eq a_117 => GHC.Classes.Eq (AssignmentExpression a_117)\n\nderiving instance GHC.Classes.Ord a_118 => GHC.Classes.Ord (AssignmentExpression a_118)\n\nderiving instance GHC.Show.Show a_119 => GHC.Show.Show (AssignmentExpression a_119)\n\ninstance AST.Unmarshal.Unmarshal AssignmentExpression\n\ninstance Data.Foldable.Foldable AssignmentExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AssignmentExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AssignmentExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AssignmentPattern a = AssignmentPattern\n  { ann :: a,\n    left :: (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: ShorthandPropertyIdentifier) a)),\n    right :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_120.\n      AST.Traversable1.Class.Traversable1 a_120\n    )\n\ninstance AST.Unmarshal.SymbolMatching AssignmentPattern where\n  matchedSymbols _ = [184]\n  showFailure _ node_121 =\n    \"expected \"\n      GHC.Base.<> ( \"assignment_pattern\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_121 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_121) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_122 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_123 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_124 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_125 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_122\n        c1_123 = TreeSitter.Node.nodeStartPoint node_121\n      TreeSitter.Node.TSPoint\n        r2_124\n        c2_125 = TreeSitter.Node.nodeEndPoint node_121\n\nderiving instance GHC.Classes.Eq a_126 => GHC.Classes.Eq (AssignmentPattern a_126)\n\nderiving instance GHC.Classes.Ord a_127 => GHC.Classes.Ord (AssignmentPattern a_127)\n\nderiving instance GHC.Show.Show a_128 => GHC.Show.Show (AssignmentPattern a_128)\n\ninstance AST.Unmarshal.Unmarshal AssignmentPattern\n\ninstance Data.Foldable.Foldable AssignmentPattern where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AssignmentPattern where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AssignmentPattern where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AugmentedAssignmentExpression a = AugmentedAssignmentExpression\n  { ann :: a,\n    left :: (AST.Parse.Err ((Identifier GHC.Generics.:+: MemberExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: SubscriptExpression) a)),\n    right :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_129.\n      AST.Traversable1.Class.Traversable1 a_129\n    )\n\ninstance AST.Unmarshal.SymbolMatching AugmentedAssignmentExpression where\n  matchedSymbols _ = [210]\n  showFailure _ node_130 =\n    \"expected \"\n      GHC.Base.<> ( \"augmented_assignment_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_130 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_130) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_131 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_132 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_133 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_134 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_131\n        c1_132 = TreeSitter.Node.nodeStartPoint node_130\n      TreeSitter.Node.TSPoint\n        r2_133\n        c2_134 = TreeSitter.Node.nodeEndPoint node_130\n\nderiving instance GHC.Classes.Eq a_135 => GHC.Classes.Eq (AugmentedAssignmentExpression a_135)\n\nderiving instance GHC.Classes.Ord a_136 => GHC.Classes.Ord (AugmentedAssignmentExpression a_136)\n\nderiving instance GHC.Show.Show a_137 => GHC.Show.Show (AugmentedAssignmentExpression a_137)\n\ninstance AST.Unmarshal.Unmarshal AugmentedAssignmentExpression\n\ninstance Data.Foldable.Foldable AugmentedAssignmentExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AugmentedAssignmentExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AugmentedAssignmentExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AwaitExpression a = AwaitExpression\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_138.\n      AST.Traversable1.Class.Traversable1 a_138\n    )\n\ninstance AST.Unmarshal.SymbolMatching AwaitExpression where\n  matchedSymbols _ = [206]\n  showFailure _ node_139 =\n    \"expected \"\n      GHC.Base.<> ( \"await_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_139 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_139) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_140 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_141 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_142 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_143 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_140\n        c1_141 = TreeSitter.Node.nodeStartPoint node_139\n      TreeSitter.Node.TSPoint\n        r2_142\n        c2_143 = TreeSitter.Node.nodeEndPoint node_139\n\nderiving instance GHC.Classes.Eq a_144 => GHC.Classes.Eq (AwaitExpression a_144)\n\nderiving instance GHC.Classes.Ord a_145 => GHC.Classes.Ord (AwaitExpression a_145)\n\nderiving instance GHC.Show.Show a_146 => GHC.Show.Show (AwaitExpression a_146)\n\ninstance AST.Unmarshal.Unmarshal AwaitExpression\n\ninstance Data.Foldable.Foldable AwaitExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AwaitExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AwaitExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BinaryExpression a = BinaryExpression\n  { ann :: a,\n    operator :: (AST.Parse.Err ((AnonymousBangEqual GHC.Generics.:+: AnonymousBangEqualEqual GHC.Generics.:+: AnonymousPercent GHC.Generics.:+: AnonymousAmpersand GHC.Generics.:+: AnonymousAmpersandAmpersand GHC.Generics.:+: AnonymousStar GHC.Generics.:+: AnonymousStarStar GHC.Generics.:+: AnonymousPlus GHC.Generics.:+: AnonymousMinus GHC.Generics.:+: AnonymousSlash GHC.Generics.:+: AnonymousLAngle GHC.Generics.:+: AnonymousLAngleLAngle GHC.Generics.:+: AnonymousLAngleEqual GHC.Generics.:+: AnonymousEqualEqual GHC.Generics.:+: AnonymousEqualEqualEqual GHC.Generics.:+: AnonymousRAngle GHC.Generics.:+: AnonymousRAngleEqual GHC.Generics.:+: AnonymousRAngleRAngle GHC.Generics.:+: AnonymousRAngleRAngleRAngle GHC.Generics.:+: AnonymousQuestionQuestion GHC.Generics.:+: AnonymousCaret GHC.Generics.:+: AnonymousIn GHC.Generics.:+: AnonymousInstanceof GHC.Generics.:+: AnonymousPipe GHC.Generics.:+: AnonymousPipePipe) a)),\n    left :: (AST.Parse.Err (Expression a)),\n    right :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_147.\n      AST.Traversable1.Class.Traversable1 a_147\n    )\n\ninstance AST.Unmarshal.SymbolMatching BinaryExpression where\n  matchedSymbols _ = [214]\n  showFailure _ node_148 =\n    \"expected \"\n      GHC.Base.<> ( \"binary_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_148 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_148) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_149 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_150 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_151 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_152 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_149\n        c1_150 = TreeSitter.Node.nodeStartPoint node_148\n      TreeSitter.Node.TSPoint\n        r2_151\n        c2_152 = TreeSitter.Node.nodeEndPoint node_148\n\nderiving instance GHC.Classes.Eq a_153 => GHC.Classes.Eq (BinaryExpression a_153)\n\nderiving instance GHC.Classes.Ord a_154 => GHC.Classes.Ord (BinaryExpression a_154)\n\nderiving instance GHC.Show.Show a_155 => GHC.Show.Show (BinaryExpression a_155)\n\ninstance AST.Unmarshal.Unmarshal BinaryExpression\n\ninstance Data.Foldable.Foldable BinaryExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BinaryExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BinaryExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BreakStatement a = BreakStatement\n  { ann :: a,\n    label :: (GHC.Maybe.Maybe (AST.Parse.Err (StatementIdentifier a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_156.\n      AST.Traversable1.Class.Traversable1 a_156\n    )\n\ninstance AST.Unmarshal.SymbolMatching BreakStatement where\n  matchedSymbols _ = [168]\n  showFailure _ node_157 =\n    \"expected \"\n      GHC.Base.<> ( \"break_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_157 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_157) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_158 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_159 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_160 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_161 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_158\n        c1_159 = TreeSitter.Node.nodeStartPoint node_157\n      TreeSitter.Node.TSPoint\n        r2_160\n        c2_161 = TreeSitter.Node.nodeEndPoint node_157\n\nderiving instance GHC.Classes.Eq a_162 => GHC.Classes.Eq (BreakStatement a_162)\n\nderiving instance GHC.Classes.Ord a_163 => GHC.Classes.Ord (BreakStatement a_163)\n\nderiving instance GHC.Show.Show a_164 => GHC.Show.Show (BreakStatement a_164)\n\ninstance AST.Unmarshal.Unmarshal BreakStatement\n\ninstance Data.Foldable.Foldable BreakStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BreakStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BreakStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CallExpression a = CallExpression\n  { ann :: a,\n    function :: (AST.Parse.Err (Expression a)),\n    arguments :: (AST.Parse.Err ((Arguments GHC.Generics.:+: TemplateString) a)),\n    typeArguments :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeArguments a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_165.\n      AST.Traversable1.Class.Traversable1 a_165\n    )\n\ninstance AST.Unmarshal.SymbolMatching CallExpression where\n  matchedSymbols _ = [204, 226]\n  showFailure _ node_166 =\n    \"expected \"\n      GHC.Base.<> ( \"call_expression, call_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_166 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_166) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_167 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_168 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_169 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_170 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_167\n        c1_168 = TreeSitter.Node.nodeStartPoint node_166\n      TreeSitter.Node.TSPoint\n        r2_169\n        c2_170 = TreeSitter.Node.nodeEndPoint node_166\n\nderiving instance GHC.Classes.Eq a_171 => GHC.Classes.Eq (CallExpression a_171)\n\nderiving instance GHC.Classes.Ord a_172 => GHC.Classes.Ord (CallExpression a_172)\n\nderiving instance GHC.Show.Show a_173 => GHC.Show.Show (CallExpression a_173)\n\ninstance AST.Unmarshal.Unmarshal CallExpression\n\ninstance Data.Foldable.Foldable CallExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CallExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CallExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CallSignature a = CallSignature\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_174.\n      AST.Traversable1.Class.Traversable1 a_174\n    )\n\ninstance AST.Unmarshal.SymbolMatching CallSignature where\n  matchedSymbols _ = [277]\n  showFailure _ node_175 =\n    \"expected \"\n      GHC.Base.<> ( \"call_signature\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_175 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_175) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_176 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_177 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_178 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_179 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_176\n        c1_177 = TreeSitter.Node.nodeStartPoint node_175\n      TreeSitter.Node.TSPoint\n        r2_178\n        c2_179 = TreeSitter.Node.nodeEndPoint node_175\n\nderiving instance GHC.Classes.Eq a_180 => GHC.Classes.Eq (CallSignature a_180)\n\nderiving instance GHC.Classes.Ord a_181 => GHC.Classes.Ord (CallSignature a_181)\n\nderiving instance GHC.Show.Show a_182 => GHC.Show.Show (CallSignature a_182)\n\ninstance AST.Unmarshal.Unmarshal CallSignature\n\ninstance Data.Foldable.Foldable CallSignature where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CallSignature where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CallSignature where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CatchClause a = CatchClause\n  { ann :: a,\n    body :: (AST.Parse.Err (StatementBlock a)),\n    parameter :: (GHC.Maybe.Maybe (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: Identifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_183.\n      AST.Traversable1.Class.Traversable1 a_183\n    )\n\ninstance AST.Unmarshal.SymbolMatching CatchClause where\n  matchedSymbols _ = [178]\n  showFailure _ node_184 =\n    \"expected \"\n      GHC.Base.<> ( \"catch_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_184 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_184) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_185 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_186 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_187 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_188 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_185\n        c1_186 = TreeSitter.Node.nodeStartPoint node_184\n      TreeSitter.Node.TSPoint\n        r2_187\n        c2_188 = TreeSitter.Node.nodeEndPoint node_184\n\nderiving instance GHC.Classes.Eq a_189 => GHC.Classes.Eq (CatchClause a_189)\n\nderiving instance GHC.Classes.Ord a_190 => GHC.Classes.Ord (CatchClause a_190)\n\nderiving instance GHC.Show.Show a_191 => GHC.Show.Show (CatchClause a_191)\n\ninstance AST.Unmarshal.Unmarshal CatchClause\n\ninstance Data.Foldable.Foldable CatchClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CatchClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CatchClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Class a = Class\n  { ann :: a,\n    decorator :: ([AST.Parse.Err (Decorator a)]),\n    body :: (AST.Parse.Err (ClassBody a)),\n    name :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeIdentifier a))),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ClassHeritage a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_192.\n      AST.Traversable1.Class.Traversable1 a_192\n    )\n\ninstance AST.Unmarshal.SymbolMatching Class where\n  matchedSymbols _ = [195]\n  showFailure _ node_193 =\n    \"expected \"\n      GHC.Base.<> ( \"class\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_193 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_193) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_194 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_195 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_196 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_197 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_194\n        c1_195 = TreeSitter.Node.nodeStartPoint node_193\n      TreeSitter.Node.TSPoint\n        r2_196\n        c2_197 = TreeSitter.Node.nodeEndPoint node_193\n\nderiving instance GHC.Classes.Eq a_198 => GHC.Classes.Eq (Class a_198)\n\nderiving instance GHC.Classes.Ord a_199 => GHC.Classes.Ord (Class a_199)\n\nderiving instance GHC.Show.Show a_200 => GHC.Show.Show (Class a_200)\n\ninstance AST.Unmarshal.Unmarshal Class\n\ninstance Data.Foldable.Foldable Class where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Class where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Class where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ClassBody a = ClassBody\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((AbstractMethodSignature GHC.Generics.:+: Decorator GHC.Generics.:+: IndexSignature GHC.Generics.:+: MethodDefinition GHC.Generics.:+: MethodSignature GHC.Generics.:+: PublicFieldDefinition) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_201.\n      AST.Traversable1.Class.Traversable1 a_201\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClassBody where\n  matchedSymbols _ = [227]\n  showFailure _ node_202 =\n    \"expected \"\n      GHC.Base.<> ( \"class_body\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_202 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_202) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_203 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_204 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_205 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_206 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_203\n        c1_204 = TreeSitter.Node.nodeStartPoint node_202\n      TreeSitter.Node.TSPoint\n        r2_205\n        c2_206 = TreeSitter.Node.nodeEndPoint node_202\n\nderiving instance GHC.Classes.Eq a_207 => GHC.Classes.Eq (ClassBody a_207)\n\nderiving instance GHC.Classes.Ord a_208 => GHC.Classes.Ord (ClassBody a_208)\n\nderiving instance GHC.Show.Show a_209 => GHC.Show.Show (ClassBody a_209)\n\ninstance AST.Unmarshal.Unmarshal ClassBody\n\ninstance Data.Foldable.Foldable ClassBody where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClassBody where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClassBody where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ClassDeclaration a = ClassDeclaration\n  { ann :: a,\n    decorator :: ([AST.Parse.Err (Decorator a)]),\n    body :: (AST.Parse.Err (ClassBody a)),\n    name :: (AST.Parse.Err (TypeIdentifier a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ClassHeritage a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_210.\n      AST.Traversable1.Class.Traversable1 a_210\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClassDeclaration where\n  matchedSymbols _ = [196]\n  showFailure _ node_211 =\n    \"expected \"\n      GHC.Base.<> ( \"class_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_211 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_211) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_212 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_213 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_214 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_215 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_212\n        c1_213 = TreeSitter.Node.nodeStartPoint node_211\n      TreeSitter.Node.TSPoint\n        r2_214\n        c2_215 = TreeSitter.Node.nodeEndPoint node_211\n\nderiving instance GHC.Classes.Eq a_216 => GHC.Classes.Eq (ClassDeclaration a_216)\n\nderiving instance GHC.Classes.Ord a_217 => GHC.Classes.Ord (ClassDeclaration a_217)\n\nderiving instance GHC.Show.Show a_218 => GHC.Show.Show (ClassDeclaration a_218)\n\ninstance AST.Unmarshal.Unmarshal ClassDeclaration\n\ninstance Data.Foldable.Foldable ClassDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClassDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClassDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ClassHeritage a = ClassHeritage\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ExtendsClause GHC.Generics.:+: ImplementsClause) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_219.\n      AST.Traversable1.Class.Traversable1 a_219\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClassHeritage where\n  matchedSymbols _ = [197]\n  showFailure _ node_220 =\n    \"expected \"\n      GHC.Base.<> ( \"class_heritage\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_220 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_220) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_221 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_222 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_223 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_224 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_221\n        c1_222 = TreeSitter.Node.nodeStartPoint node_220\n      TreeSitter.Node.TSPoint\n        r2_223\n        c2_224 = TreeSitter.Node.nodeEndPoint node_220\n\nderiving instance GHC.Classes.Eq a_225 => GHC.Classes.Eq (ClassHeritage a_225)\n\nderiving instance GHC.Classes.Ord a_226 => GHC.Classes.Ord (ClassHeritage a_226)\n\nderiving instance GHC.Show.Show a_227 => GHC.Show.Show (ClassHeritage a_227)\n\ninstance AST.Unmarshal.Unmarshal ClassHeritage\n\ninstance Data.Foldable.Foldable ClassHeritage where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClassHeritage where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClassHeritage where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ComputedPropertyName a = ComputedPropertyName\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_228.\n      AST.Traversable1.Class.Traversable1 a_228\n    )\n\ninstance AST.Unmarshal.SymbolMatching ComputedPropertyName where\n  matchedSymbols _ = [234]\n  showFailure _ node_229 =\n    \"expected \"\n      GHC.Base.<> ( \"computed_property_name\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_229 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_229) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_230 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_231 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_232 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_233 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_230\n        c1_231 = TreeSitter.Node.nodeStartPoint node_229\n      TreeSitter.Node.TSPoint\n        r2_232\n        c2_233 = TreeSitter.Node.nodeEndPoint node_229\n\nderiving instance GHC.Classes.Eq a_234 => GHC.Classes.Eq (ComputedPropertyName a_234)\n\nderiving instance GHC.Classes.Ord a_235 => GHC.Classes.Ord (ComputedPropertyName a_235)\n\nderiving instance GHC.Show.Show a_236 => GHC.Show.Show (ComputedPropertyName a_236)\n\ninstance AST.Unmarshal.Unmarshal ComputedPropertyName\n\ninstance Data.Foldable.Foldable ComputedPropertyName where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ComputedPropertyName where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ComputedPropertyName where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Constraint a = Constraint\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_237.\n      AST.Traversable1.Class.Traversable1 a_237\n    )\n\ninstance AST.Unmarshal.SymbolMatching Constraint where\n  matchedSymbols _ = [282]\n  showFailure _ node_238 =\n    \"expected \"\n      GHC.Base.<> ( \"constraint\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_238 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_238) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_239 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_240 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_241 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_242 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_239\n        c1_240 = TreeSitter.Node.nodeStartPoint node_238\n      TreeSitter.Node.TSPoint\n        r2_241\n        c2_242 = TreeSitter.Node.nodeEndPoint node_238\n\nderiving instance GHC.Classes.Eq a_243 => GHC.Classes.Eq (Constraint a_243)\n\nderiving instance GHC.Classes.Ord a_244 => GHC.Classes.Ord (Constraint a_244)\n\nderiving instance GHC.Show.Show a_245 => GHC.Show.Show (Constraint a_245)\n\ninstance AST.Unmarshal.Unmarshal Constraint\n\ninstance Data.Foldable.Foldable Constraint where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Constraint where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Constraint where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ConstructSignature a = ConstructSignature\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((FormalParameters GHC.Generics.:+: TypeAnnotation GHC.Generics.:+: TypeParameters) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_246.\n      AST.Traversable1.Class.Traversable1 a_246\n    )\n\ninstance AST.Unmarshal.SymbolMatching ConstructSignature where\n  matchedSymbols _ = [283]\n  showFailure _ node_247 =\n    \"expected \"\n      GHC.Base.<> ( \"construct_signature\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_247 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_247) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_248 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_249 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_250 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_251 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_248\n        c1_249 = TreeSitter.Node.nodeStartPoint node_247\n      TreeSitter.Node.TSPoint\n        r2_250\n        c2_251 = TreeSitter.Node.nodeEndPoint node_247\n\nderiving instance GHC.Classes.Eq a_252 => GHC.Classes.Eq (ConstructSignature a_252)\n\nderiving instance GHC.Classes.Ord a_253 => GHC.Classes.Ord (ConstructSignature a_253)\n\nderiving instance GHC.Show.Show a_254 => GHC.Show.Show (ConstructSignature a_254)\n\ninstance AST.Unmarshal.Unmarshal ConstructSignature\n\ninstance Data.Foldable.Foldable ConstructSignature where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ConstructSignature where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ConstructSignature where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ConstructorType a = ConstructorType\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FormalParameters GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypeParameters GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_255.\n      AST.Traversable1.Class.Traversable1 a_255\n    )\n\ninstance AST.Unmarshal.SymbolMatching ConstructorType where\n  matchedSymbols _ = [261]\n  showFailure _ node_256 =\n    \"expected \"\n      GHC.Base.<> ( \"constructor_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_256 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_256) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_257 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_258 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_259 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_260 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_257\n        c1_258 = TreeSitter.Node.nodeStartPoint node_256\n      TreeSitter.Node.TSPoint\n        r2_259\n        c2_260 = TreeSitter.Node.nodeEndPoint node_256\n\nderiving instance GHC.Classes.Eq a_261 => GHC.Classes.Eq (ConstructorType a_261)\n\nderiving instance GHC.Classes.Ord a_262 => GHC.Classes.Ord (ConstructorType a_262)\n\nderiving instance GHC.Show.Show a_263 => GHC.Show.Show (ConstructorType a_263)\n\ninstance AST.Unmarshal.Unmarshal ConstructorType\n\ninstance Data.Foldable.Foldable ConstructorType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ConstructorType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ConstructorType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ContinueStatement a = ContinueStatement\n  { ann :: a,\n    label :: (GHC.Maybe.Maybe (AST.Parse.Err (StatementIdentifier a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_264.\n      AST.Traversable1.Class.Traversable1 a_264\n    )\n\ninstance AST.Unmarshal.SymbolMatching ContinueStatement where\n  matchedSymbols _ = [169]\n  showFailure _ node_265 =\n    \"expected \"\n      GHC.Base.<> ( \"continue_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_265 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_265) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_266 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_267 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_268 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_269 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_266\n        c1_267 = TreeSitter.Node.nodeStartPoint node_265\n      TreeSitter.Node.TSPoint\n        r2_268\n        c2_269 = TreeSitter.Node.nodeEndPoint node_265\n\nderiving instance GHC.Classes.Eq a_270 => GHC.Classes.Eq (ContinueStatement a_270)\n\nderiving instance GHC.Classes.Ord a_271 => GHC.Classes.Ord (ContinueStatement a_271)\n\nderiving instance GHC.Show.Show a_272 => GHC.Show.Show (ContinueStatement a_272)\n\ninstance AST.Unmarshal.Unmarshal ContinueStatement\n\ninstance Data.Foldable.Foldable ContinueStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ContinueStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ContinueStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DebuggerStatement a = DebuggerStatement {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_273.\n      AST.Traversable1.Class.Traversable1 a_273\n    )\n\ninstance AST.Unmarshal.SymbolMatching DebuggerStatement where\n  matchedSymbols _ = [170]\n  showFailure _ node_274 =\n    \"expected \"\n      GHC.Base.<> ( \"debugger_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_274 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_274) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_275 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_276 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_277 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_278 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_275\n        c1_276 = TreeSitter.Node.nodeStartPoint node_274\n      TreeSitter.Node.TSPoint\n        r2_277\n        c2_278 = TreeSitter.Node.nodeEndPoint node_274\n\nderiving instance GHC.Classes.Eq a_279 => GHC.Classes.Eq (DebuggerStatement a_279)\n\nderiving instance GHC.Classes.Ord a_280 => GHC.Classes.Ord (DebuggerStatement a_280)\n\nderiving instance GHC.Show.Show a_281 => GHC.Show.Show (DebuggerStatement a_281)\n\ninstance AST.Unmarshal.Unmarshal DebuggerStatement\n\ninstance Data.Foldable.Foldable DebuggerStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DebuggerStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DebuggerStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Decorator a = Decorator\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((CallExpression GHC.Generics.:+: Identifier GHC.Generics.:+: MemberExpression) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_282.\n      AST.Traversable1.Class.Traversable1 a_282\n    )\n\ninstance AST.Unmarshal.SymbolMatching Decorator where\n  matchedSymbols _ = [224]\n  showFailure _ node_283 =\n    \"expected \"\n      GHC.Base.<> ( \"decorator\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_283 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_283) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_284 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_285 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_286 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_287 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_284\n        c1_285 = TreeSitter.Node.nodeStartPoint node_283\n      TreeSitter.Node.TSPoint\n        r2_286\n        c2_287 = TreeSitter.Node.nodeEndPoint node_283\n\nderiving instance GHC.Classes.Eq a_288 => GHC.Classes.Eq (Decorator a_288)\n\nderiving instance GHC.Classes.Ord a_289 => GHC.Classes.Ord (Decorator a_289)\n\nderiving instance GHC.Show.Show a_290 => GHC.Show.Show (Decorator a_290)\n\ninstance AST.Unmarshal.Unmarshal Decorator\n\ninstance Data.Foldable.Foldable Decorator where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Decorator where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Decorator where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DefaultType a = DefaultType\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_291.\n      AST.Traversable1.Class.Traversable1 a_291\n    )\n\ninstance AST.Unmarshal.SymbolMatching DefaultType where\n  matchedSymbols _ = [281]\n  showFailure _ node_292 =\n    \"expected \"\n      GHC.Base.<> ( \"default_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_292 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_292) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_293 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_294 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_295 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_296 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_293\n        c1_294 = TreeSitter.Node.nodeStartPoint node_292\n      TreeSitter.Node.TSPoint\n        r2_295\n        c2_296 = TreeSitter.Node.nodeEndPoint node_292\n\nderiving instance GHC.Classes.Eq a_297 => GHC.Classes.Eq (DefaultType a_297)\n\nderiving instance GHC.Classes.Ord a_298 => GHC.Classes.Ord (DefaultType a_298)\n\nderiving instance GHC.Show.Show a_299 => GHC.Show.Show (DefaultType a_299)\n\ninstance AST.Unmarshal.Unmarshal DefaultType\n\ninstance Data.Foldable.Foldable DefaultType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DefaultType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DefaultType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DoStatement a = DoStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (Statement a)),\n    condition :: (AST.Parse.Err (ParenthesizedExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_300.\n      AST.Traversable1.Class.Traversable1 a_300\n    )\n\ninstance AST.Unmarshal.SymbolMatching DoStatement where\n  matchedSymbols _ = [165]\n  showFailure _ node_301 =\n    \"expected \"\n      GHC.Base.<> ( \"do_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_301 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_301) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_302 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_303 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_304 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_305 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_302\n        c1_303 = TreeSitter.Node.nodeStartPoint node_301\n      TreeSitter.Node.TSPoint\n        r2_304\n        c2_305 = TreeSitter.Node.nodeEndPoint node_301\n\nderiving instance GHC.Classes.Eq a_306 => GHC.Classes.Eq (DoStatement a_306)\n\nderiving instance GHC.Classes.Ord a_307 => GHC.Classes.Ord (DoStatement a_307)\n\nderiving instance GHC.Show.Show a_308 => GHC.Show.Show (DoStatement a_308)\n\ninstance AST.Unmarshal.Unmarshal DoStatement\n\ninstance Data.Foldable.Foldable DoStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DoStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DoStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata EmptyStatement a = EmptyStatement {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_309.\n      AST.Traversable1.Class.Traversable1 a_309\n    )\n\ninstance AST.Unmarshal.SymbolMatching EmptyStatement where\n  matchedSymbols _ = [173]\n  showFailure _ node_310 =\n    \"expected \"\n      GHC.Base.<> ( \"empty_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_310 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_310) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_311 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_312 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_313 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_314 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_311\n        c1_312 = TreeSitter.Node.nodeStartPoint node_310\n      TreeSitter.Node.TSPoint\n        r2_313\n        c2_314 = TreeSitter.Node.nodeEndPoint node_310\n\nderiving instance GHC.Classes.Eq a_315 => GHC.Classes.Eq (EmptyStatement a_315)\n\nderiving instance GHC.Classes.Ord a_316 => GHC.Classes.Ord (EmptyStatement a_316)\n\nderiving instance GHC.Show.Show a_317 => GHC.Show.Show (EmptyStatement a_317)\n\ninstance AST.Unmarshal.Unmarshal EmptyStatement\n\ninstance Data.Foldable.Foldable EmptyStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EmptyStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EmptyStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata EnumAssignment a = EnumAssignment\n  { ann :: a,\n    value :: (AST.Parse.Err (Expression a)),\n    extraChildren :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_318.\n      AST.Traversable1.Class.Traversable1 a_318\n    )\n\ninstance AST.Unmarshal.SymbolMatching EnumAssignment where\n  matchedSymbols _ = [253]\n  showFailure _ node_319 =\n    \"expected \"\n      GHC.Base.<> ( \"enum_assignment\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_319 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_319) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_320 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_321 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_322 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_323 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_320\n        c1_321 = TreeSitter.Node.nodeStartPoint node_319\n      TreeSitter.Node.TSPoint\n        r2_322\n        c2_323 = TreeSitter.Node.nodeEndPoint node_319\n\nderiving instance GHC.Classes.Eq a_324 => GHC.Classes.Eq (EnumAssignment a_324)\n\nderiving instance GHC.Classes.Ord a_325 => GHC.Classes.Ord (EnumAssignment a_325)\n\nderiving instance GHC.Show.Show a_326 => GHC.Show.Show (EnumAssignment a_326)\n\ninstance AST.Unmarshal.Unmarshal EnumAssignment\n\ninstance Data.Foldable.Foldable EnumAssignment where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EnumAssignment where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EnumAssignment where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata EnumBody a = EnumBody\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: EnumAssignment GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_327.\n      AST.Traversable1.Class.Traversable1 a_327\n    )\n\ninstance AST.Unmarshal.SymbolMatching EnumBody where\n  matchedSymbols _ = [252]\n  showFailure _ node_328 =\n    \"expected \"\n      GHC.Base.<> ( \"enum_body\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_328 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_328) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_329 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_330 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_331 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_332 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_329\n        c1_330 = TreeSitter.Node.nodeStartPoint node_328\n      TreeSitter.Node.TSPoint\n        r2_331\n        c2_332 = TreeSitter.Node.nodeEndPoint node_328\n\nderiving instance GHC.Classes.Eq a_333 => GHC.Classes.Eq (EnumBody a_333)\n\nderiving instance GHC.Classes.Ord a_334 => GHC.Classes.Ord (EnumBody a_334)\n\nderiving instance GHC.Show.Show a_335 => GHC.Show.Show (EnumBody a_335)\n\ninstance AST.Unmarshal.Unmarshal EnumBody\n\ninstance Data.Foldable.Foldable EnumBody where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EnumBody where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EnumBody where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata EnumDeclaration a = EnumDeclaration\n  { ann :: a,\n    body :: (AST.Parse.Err (EnumBody a)),\n    name :: (AST.Parse.Err (Identifier a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_336.\n      AST.Traversable1.Class.Traversable1 a_336\n    )\n\ninstance AST.Unmarshal.SymbolMatching EnumDeclaration where\n  matchedSymbols _ = [251]\n  showFailure _ node_337 =\n    \"expected \"\n      GHC.Base.<> ( \"enum_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_337 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_337) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_338 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_339 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_340 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_341 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_338\n        c1_339 = TreeSitter.Node.nodeStartPoint node_337\n      TreeSitter.Node.TSPoint\n        r2_340\n        c2_341 = TreeSitter.Node.nodeEndPoint node_337\n\nderiving instance GHC.Classes.Eq a_342 => GHC.Classes.Eq (EnumDeclaration a_342)\n\nderiving instance GHC.Classes.Ord a_343 => GHC.Classes.Ord (EnumDeclaration a_343)\n\nderiving instance GHC.Show.Show a_344 => GHC.Show.Show (EnumDeclaration a_344)\n\ninstance AST.Unmarshal.Unmarshal EnumDeclaration\n\ninstance Data.Foldable.Foldable EnumDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EnumDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EnumDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExistentialType a = ExistentialType {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_345.\n      AST.Traversable1.Class.Traversable1 a_345\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExistentialType where\n  matchedSymbols _ = [271]\n  showFailure _ node_346 =\n    \"expected \"\n      GHC.Base.<> ( \"existential_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_346 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_346) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_347 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_348 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_349 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_350 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_347\n        c1_348 = TreeSitter.Node.nodeStartPoint node_346\n      TreeSitter.Node.TSPoint\n        r2_349\n        c2_350 = TreeSitter.Node.nodeEndPoint node_346\n\nderiving instance GHC.Classes.Eq a_351 => GHC.Classes.Eq (ExistentialType a_351)\n\nderiving instance GHC.Classes.Ord a_352 => GHC.Classes.Ord (ExistentialType a_352)\n\nderiving instance GHC.Show.Show a_353 => GHC.Show.Show (ExistentialType a_353)\n\ninstance AST.Unmarshal.Unmarshal ExistentialType\n\ninstance Data.Foldable.Foldable ExistentialType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExistentialType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExistentialType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExportClause a = ExportClause\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (ExportSpecifier a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_354.\n      AST.Traversable1.Class.Traversable1 a_354\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExportClause where\n  matchedSymbols _ = [145]\n  showFailure _ node_355 =\n    \"expected \"\n      GHC.Base.<> ( \"export_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_355 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_355) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_356 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_357 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_358 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_359 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_356\n        c1_357 = TreeSitter.Node.nodeStartPoint node_355\n      TreeSitter.Node.TSPoint\n        r2_358\n        c2_359 = TreeSitter.Node.nodeEndPoint node_355\n\nderiving instance GHC.Classes.Eq a_360 => GHC.Classes.Eq (ExportClause a_360)\n\nderiving instance GHC.Classes.Ord a_361 => GHC.Classes.Ord (ExportClause a_361)\n\nderiving instance GHC.Show.Show a_362 => GHC.Show.Show (ExportClause a_362)\n\ninstance AST.Unmarshal.Unmarshal ExportClause\n\ninstance Data.Foldable.Foldable ExportClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExportClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExportClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExportSpecifier a = ExportSpecifier\n  { ann :: a,\n    alias :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))),\n    name :: (AST.Parse.Err (Identifier a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_363.\n      AST.Traversable1.Class.Traversable1 a_363\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExportSpecifier where\n  matchedSymbols _ = [311]\n  showFailure _ node_364 =\n    \"expected \"\n      GHC.Base.<> ( \"export_specifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_364 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_364) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_365 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_366 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_367 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_368 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_365\n        c1_366 = TreeSitter.Node.nodeStartPoint node_364\n      TreeSitter.Node.TSPoint\n        r2_367\n        c2_368 = TreeSitter.Node.nodeEndPoint node_364\n\nderiving instance GHC.Classes.Eq a_369 => GHC.Classes.Eq (ExportSpecifier a_369)\n\nderiving instance GHC.Classes.Ord a_370 => GHC.Classes.Ord (ExportSpecifier a_370)\n\nderiving instance GHC.Show.Show a_371 => GHC.Show.Show (ExportSpecifier a_371)\n\ninstance AST.Unmarshal.Unmarshal ExportSpecifier\n\ninstance Data.Foldable.Foldable ExportSpecifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExportSpecifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExportSpecifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExportStatement a = ExportStatement\n  { ann :: a,\n    decorator :: ([AST.Parse.Err (Decorator a)]),\n    declaration :: (GHC.Maybe.Maybe (AST.Parse.Err (Declaration a))),\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    source :: (GHC.Maybe.Maybe (AST.Parse.Err (String a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((ExportClause GHC.Generics.:+: Identifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_372.\n      AST.Traversable1.Class.Traversable1 a_372\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExportStatement where\n  matchedSymbols _ = [144]\n  showFailure _ node_373 =\n    \"expected \"\n      GHC.Base.<> ( \"export_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_373 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_373) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_374 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_375 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_376 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_377 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_374\n        c1_375 = TreeSitter.Node.nodeStartPoint node_373\n      TreeSitter.Node.TSPoint\n        r2_376\n        c2_377 = TreeSitter.Node.nodeEndPoint node_373\n\nderiving instance GHC.Classes.Eq a_378 => GHC.Classes.Eq (ExportStatement a_378)\n\nderiving instance GHC.Classes.Ord a_379 => GHC.Classes.Ord (ExportStatement a_379)\n\nderiving instance GHC.Show.Show a_380 => GHC.Show.Show (ExportStatement a_380)\n\ninstance AST.Unmarshal.Unmarshal ExportStatement\n\ninstance Data.Foldable.Foldable ExportStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExportStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExportStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExpressionStatement a = ExpressionStatement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_381.\n      AST.Traversable1.Class.Traversable1 a_381\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExpressionStatement where\n  matchedSymbols _ = [154]\n  showFailure _ node_382 =\n    \"expected \"\n      GHC.Base.<> ( \"expression_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_382 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_382) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_383 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_384 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_385 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_386 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_383\n        c1_384 = TreeSitter.Node.nodeStartPoint node_382\n      TreeSitter.Node.TSPoint\n        r2_385\n        c2_386 = TreeSitter.Node.nodeEndPoint node_382\n\nderiving instance GHC.Classes.Eq a_387 => GHC.Classes.Eq (ExpressionStatement a_387)\n\nderiving instance GHC.Classes.Ord a_388 => GHC.Classes.Ord (ExpressionStatement a_388)\n\nderiving instance GHC.Show.Show a_389 => GHC.Show.Show (ExpressionStatement a_389)\n\ninstance AST.Unmarshal.Unmarshal ExpressionStatement\n\ninstance Data.Foldable.Foldable ExpressionStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExpressionStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExpressionStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExtendsClause a = ExtendsClause\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: GenericType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: TypeIdentifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_390.\n      AST.Traversable1.Class.Traversable1 a_390\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExtendsClause where\n  matchedSymbols _ = [250]\n  showFailure _ node_391 =\n    \"expected \"\n      GHC.Base.<> ( \"extends_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_391 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_391) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_392 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_393 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_394 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_395 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_392\n        c1_393 = TreeSitter.Node.nodeStartPoint node_391\n      TreeSitter.Node.TSPoint\n        r2_394\n        c2_395 = TreeSitter.Node.nodeEndPoint node_391\n\nderiving instance GHC.Classes.Eq a_396 => GHC.Classes.Eq (ExtendsClause a_396)\n\nderiving instance GHC.Classes.Ord a_397 => GHC.Classes.Ord (ExtendsClause a_397)\n\nderiving instance GHC.Show.Show a_398 => GHC.Show.Show (ExtendsClause a_398)\n\ninstance AST.Unmarshal.Unmarshal ExtendsClause\n\ninstance Data.Foldable.Foldable ExtendsClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExtendsClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExtendsClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FinallyClause a = FinallyClause\n  { ann :: a,\n    body :: (AST.Parse.Err (StatementBlock a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_399.\n      AST.Traversable1.Class.Traversable1 a_399\n    )\n\ninstance AST.Unmarshal.SymbolMatching FinallyClause where\n  matchedSymbols _ = [179]\n  showFailure _ node_400 =\n    \"expected \"\n      GHC.Base.<> ( \"finally_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_400 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_400) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_401 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_402 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_403 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_404 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_401\n        c1_402 = TreeSitter.Node.nodeStartPoint node_400\n      TreeSitter.Node.TSPoint\n        r2_403\n        c2_404 = TreeSitter.Node.nodeEndPoint node_400\n\nderiving instance GHC.Classes.Eq a_405 => GHC.Classes.Eq (FinallyClause a_405)\n\nderiving instance GHC.Classes.Ord a_406 => GHC.Classes.Ord (FinallyClause a_406)\n\nderiving instance GHC.Show.Show a_407 => GHC.Show.Show (FinallyClause a_407)\n\ninstance AST.Unmarshal.Unmarshal FinallyClause\n\ninstance Data.Foldable.Foldable FinallyClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FinallyClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FinallyClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FlowMaybeType a = FlowMaybeType\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((ArrayType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_408.\n      AST.Traversable1.Class.Traversable1 a_408\n    )\n\ninstance AST.Unmarshal.SymbolMatching FlowMaybeType where\n  matchedSymbols _ = [272]\n  showFailure _ node_409 =\n    \"expected \"\n      GHC.Base.<> ( \"flow_maybe_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_409 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_409) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_410 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_411 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_412 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_413 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_410\n        c1_411 = TreeSitter.Node.nodeStartPoint node_409\n      TreeSitter.Node.TSPoint\n        r2_412\n        c2_413 = TreeSitter.Node.nodeEndPoint node_409\n\nderiving instance GHC.Classes.Eq a_414 => GHC.Classes.Eq (FlowMaybeType a_414)\n\nderiving instance GHC.Classes.Ord a_415 => GHC.Classes.Ord (FlowMaybeType a_415)\n\nderiving instance GHC.Show.Show a_416 => GHC.Show.Show (FlowMaybeType a_416)\n\ninstance AST.Unmarshal.Unmarshal FlowMaybeType\n\ninstance Data.Foldable.Foldable FlowMaybeType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FlowMaybeType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FlowMaybeType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ForInStatement a = ForInStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (Statement a)),\n    left :: (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: Identifier GHC.Generics.:+: MemberExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: SubscriptExpression) a)),\n    right :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_417.\n      AST.Traversable1.Class.Traversable1 a_417\n    )\n\ninstance AST.Unmarshal.SymbolMatching ForInStatement where\n  matchedSymbols _ = [162]\n  showFailure _ node_418 =\n    \"expected \"\n      GHC.Base.<> ( \"for_in_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_418 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_418) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_419 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_420 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_421 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_422 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_419\n        c1_420 = TreeSitter.Node.nodeStartPoint node_418\n      TreeSitter.Node.TSPoint\n        r2_421\n        c2_422 = TreeSitter.Node.nodeEndPoint node_418\n\nderiving instance GHC.Classes.Eq a_423 => GHC.Classes.Eq (ForInStatement a_423)\n\nderiving instance GHC.Classes.Ord a_424 => GHC.Classes.Ord (ForInStatement a_424)\n\nderiving instance GHC.Show.Show a_425 => GHC.Show.Show (ForInStatement a_425)\n\ninstance AST.Unmarshal.Unmarshal ForInStatement\n\ninstance Data.Foldable.Foldable ForInStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ForInStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ForInStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ForStatement a = ForStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (Statement a)),\n    initializer :: (AST.Parse.Err ((EmptyStatement GHC.Generics.:+: ExpressionStatement GHC.Generics.:+: LexicalDeclaration GHC.Generics.:+: VariableDeclaration) a)),\n    condition :: (AST.Parse.Err ((EmptyStatement GHC.Generics.:+: ExpressionStatement) a)),\n    increment :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_426.\n      AST.Traversable1.Class.Traversable1 a_426\n    )\n\ninstance AST.Unmarshal.SymbolMatching ForStatement where\n  matchedSymbols _ = [161]\n  showFailure _ node_427 =\n    \"expected \"\n      GHC.Base.<> ( \"for_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_427 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_427) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_428 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_429 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_430 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_431 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_428\n        c1_429 = TreeSitter.Node.nodeStartPoint node_427\n      TreeSitter.Node.TSPoint\n        r2_430\n        c2_431 = TreeSitter.Node.nodeEndPoint node_427\n\nderiving instance GHC.Classes.Eq a_432 => GHC.Classes.Eq (ForStatement a_432)\n\nderiving instance GHC.Classes.Ord a_433 => GHC.Classes.Ord (ForStatement a_433)\n\nderiving instance GHC.Show.Show a_434 => GHC.Show.Show (ForStatement a_434)\n\ninstance AST.Unmarshal.Unmarshal ForStatement\n\ninstance Data.Foldable.Foldable ForStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ForStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ForStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FormalParameters a = FormalParameters\n  { ann :: a,\n    decorator :: ([AST.Parse.Err (Decorator a)]),\n    extraChildren :: ([AST.Parse.Err ((OptionalParameter GHC.Generics.:+: RequiredParameter GHC.Generics.:+: RestParameter) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_435.\n      AST.Traversable1.Class.Traversable1 a_435\n    )\n\ninstance AST.Unmarshal.SymbolMatching FormalParameters where\n  matchedSymbols _ = [229]\n  showFailure _ node_436 =\n    \"expected \"\n      GHC.Base.<> ( \"formal_parameters\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_436 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_436) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_437 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_438 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_439 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_440 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_437\n        c1_438 = TreeSitter.Node.nodeStartPoint node_436\n      TreeSitter.Node.TSPoint\n        r2_439\n        c2_440 = TreeSitter.Node.nodeEndPoint node_436\n\nderiving instance GHC.Classes.Eq a_441 => GHC.Classes.Eq (FormalParameters a_441)\n\nderiving instance GHC.Classes.Ord a_442 => GHC.Classes.Ord (FormalParameters a_442)\n\nderiving instance GHC.Show.Show a_443 => GHC.Show.Show (FormalParameters a_443)\n\ninstance AST.Unmarshal.Unmarshal FormalParameters\n\ninstance Data.Foldable.Foldable FormalParameters where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FormalParameters where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FormalParameters where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Function a = Function\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    body :: (AST.Parse.Err (StatementBlock a)),\n    name :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_444.\n      AST.Traversable1.Class.Traversable1 a_444\n    )\n\ninstance AST.Unmarshal.SymbolMatching Function where\n  matchedSymbols _ = [198]\n  showFailure _ node_445 =\n    \"expected \"\n      GHC.Base.<> ( \"function\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_445 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_445) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_446 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_447 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_448 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_449 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_446\n        c1_447 = TreeSitter.Node.nodeStartPoint node_445\n      TreeSitter.Node.TSPoint\n        r2_448\n        c2_449 = TreeSitter.Node.nodeEndPoint node_445\n\nderiving instance GHC.Classes.Eq a_450 => GHC.Classes.Eq (Function a_450)\n\nderiving instance GHC.Classes.Ord a_451 => GHC.Classes.Ord (Function a_451)\n\nderiving instance GHC.Show.Show a_452 => GHC.Show.Show (Function a_452)\n\ninstance AST.Unmarshal.Unmarshal Function\n\ninstance Data.Foldable.Foldable Function where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Function where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Function where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FunctionDeclaration a = FunctionDeclaration\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    body :: (AST.Parse.Err (StatementBlock a)),\n    name :: (AST.Parse.Err (Identifier a)),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_453.\n      AST.Traversable1.Class.Traversable1 a_453\n    )\n\ninstance AST.Unmarshal.SymbolMatching FunctionDeclaration where\n  matchedSymbols _ = [199]\n  showFailure _ node_454 =\n    \"expected \"\n      GHC.Base.<> ( \"function_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_454 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_454) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_455 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_456 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_457 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_458 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_455\n        c1_456 = TreeSitter.Node.nodeStartPoint node_454\n      TreeSitter.Node.TSPoint\n        r2_457\n        c2_458 = TreeSitter.Node.nodeEndPoint node_454\n\nderiving instance GHC.Classes.Eq a_459 => GHC.Classes.Eq (FunctionDeclaration a_459)\n\nderiving instance GHC.Classes.Ord a_460 => GHC.Classes.Ord (FunctionDeclaration a_460)\n\nderiving instance GHC.Show.Show a_461 => GHC.Show.Show (FunctionDeclaration a_461)\n\ninstance AST.Unmarshal.Unmarshal FunctionDeclaration\n\ninstance Data.Foldable.Foldable FunctionDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FunctionDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FunctionDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FunctionSignature a = FunctionSignature\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    name :: (AST.Parse.Err (Identifier a)),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_462.\n      AST.Traversable1.Class.Traversable1 a_462\n    )\n\ninstance AST.Unmarshal.SymbolMatching FunctionSignature where\n  matchedSymbols _ = [238]\n  showFailure _ node_463 =\n    \"expected \"\n      GHC.Base.<> ( \"function_signature\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_463 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_463) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_464 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_465 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_466 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_467 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_464\n        c1_465 = TreeSitter.Node.nodeStartPoint node_463\n      TreeSitter.Node.TSPoint\n        r2_466\n        c2_467 = TreeSitter.Node.nodeEndPoint node_463\n\nderiving instance GHC.Classes.Eq a_468 => GHC.Classes.Eq (FunctionSignature a_468)\n\nderiving instance GHC.Classes.Ord a_469 => GHC.Classes.Ord (FunctionSignature a_469)\n\nderiving instance GHC.Show.Show a_470 => GHC.Show.Show (FunctionSignature a_470)\n\ninstance AST.Unmarshal.Unmarshal FunctionSignature\n\ninstance Data.Foldable.Foldable FunctionSignature where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FunctionSignature where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FunctionSignature where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FunctionType a = FunctionType\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FormalParameters GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypeParameters GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_471.\n      AST.Traversable1.Class.Traversable1 a_471\n    )\n\ninstance AST.Unmarshal.SymbolMatching FunctionType where\n  matchedSymbols _ = [289]\n  showFailure _ node_472 =\n    \"expected \"\n      GHC.Base.<> ( \"function_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_472 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_472) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_473 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_474 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_475 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_476 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_473\n        c1_474 = TreeSitter.Node.nodeStartPoint node_472\n      TreeSitter.Node.TSPoint\n        r2_475\n        c2_476 = TreeSitter.Node.nodeEndPoint node_472\n\nderiving instance GHC.Classes.Eq a_477 => GHC.Classes.Eq (FunctionType a_477)\n\nderiving instance GHC.Classes.Ord a_478 => GHC.Classes.Ord (FunctionType a_478)\n\nderiving instance GHC.Show.Show a_479 => GHC.Show.Show (FunctionType a_479)\n\ninstance AST.Unmarshal.Unmarshal FunctionType\n\ninstance Data.Foldable.Foldable FunctionType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FunctionType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FunctionType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata GeneratorFunction a = GeneratorFunction\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    body :: (AST.Parse.Err (StatementBlock a)),\n    name :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_480.\n      AST.Traversable1.Class.Traversable1 a_480\n    )\n\ninstance AST.Unmarshal.SymbolMatching GeneratorFunction where\n  matchedSymbols _ = [200]\n  showFailure _ node_481 =\n    \"expected \"\n      GHC.Base.<> ( \"generator_function\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_481 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_481) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_482 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_483 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_484 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_485 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_482\n        c1_483 = TreeSitter.Node.nodeStartPoint node_481\n      TreeSitter.Node.TSPoint\n        r2_484\n        c2_485 = TreeSitter.Node.nodeEndPoint node_481\n\nderiving instance GHC.Classes.Eq a_486 => GHC.Classes.Eq (GeneratorFunction a_486)\n\nderiving instance GHC.Classes.Ord a_487 => GHC.Classes.Ord (GeneratorFunction a_487)\n\nderiving instance GHC.Show.Show a_488 => GHC.Show.Show (GeneratorFunction a_488)\n\ninstance AST.Unmarshal.Unmarshal GeneratorFunction\n\ninstance Data.Foldable.Foldable GeneratorFunction where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor GeneratorFunction where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable GeneratorFunction where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata GeneratorFunctionDeclaration a = GeneratorFunctionDeclaration\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    body :: (AST.Parse.Err (StatementBlock a)),\n    name :: (AST.Parse.Err (Identifier a)),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_489.\n      AST.Traversable1.Class.Traversable1 a_489\n    )\n\ninstance AST.Unmarshal.SymbolMatching GeneratorFunctionDeclaration where\n  matchedSymbols _ = [201]\n  showFailure _ node_490 =\n    \"expected \"\n      GHC.Base.<> ( \"generator_function_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_490 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_490) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_491 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_492 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_493 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_494 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_491\n        c1_492 = TreeSitter.Node.nodeStartPoint node_490\n      TreeSitter.Node.TSPoint\n        r2_493\n        c2_494 = TreeSitter.Node.nodeEndPoint node_490\n\nderiving instance GHC.Classes.Eq a_495 => GHC.Classes.Eq (GeneratorFunctionDeclaration a_495)\n\nderiving instance GHC.Classes.Ord a_496 => GHC.Classes.Ord (GeneratorFunctionDeclaration a_496)\n\nderiving instance GHC.Show.Show a_497 => GHC.Show.Show (GeneratorFunctionDeclaration a_497)\n\ninstance AST.Unmarshal.Unmarshal GeneratorFunctionDeclaration\n\ninstance Data.Foldable.Foldable GeneratorFunctionDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor GeneratorFunctionDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable GeneratorFunctionDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata GenericType a = GenericType\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((NestedTypeIdentifier GHC.Generics.:+: TypeArguments GHC.Generics.:+: TypeIdentifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_498.\n      AST.Traversable1.Class.Traversable1 a_498\n    )\n\ninstance AST.Unmarshal.SymbolMatching GenericType where\n  matchedSymbols _ = [263]\n  showFailure _ node_499 =\n    \"expected \"\n      GHC.Base.<> ( \"generic_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_499 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_499) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_500 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_501 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_502 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_503 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_500\n        c1_501 = TreeSitter.Node.nodeStartPoint node_499\n      TreeSitter.Node.TSPoint\n        r2_502\n        c2_503 = TreeSitter.Node.nodeEndPoint node_499\n\nderiving instance GHC.Classes.Eq a_504 => GHC.Classes.Eq (GenericType a_504)\n\nderiving instance GHC.Classes.Ord a_505 => GHC.Classes.Ord (GenericType a_505)\n\nderiving instance GHC.Show.Show a_506 => GHC.Show.Show (GenericType a_506)\n\ninstance AST.Unmarshal.Unmarshal GenericType\n\ninstance Data.Foldable.Foldable GenericType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor GenericType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable GenericType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IfStatement a = IfStatement\n  { ann :: a,\n    alternative :: (GHC.Maybe.Maybe (AST.Parse.Err (Statement a))),\n    consequence :: (AST.Parse.Err (Statement a)),\n    condition :: (AST.Parse.Err (ParenthesizedExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_507.\n      AST.Traversable1.Class.Traversable1 a_507\n    )\n\ninstance AST.Unmarshal.SymbolMatching IfStatement where\n  matchedSymbols _ = [159]\n  showFailure _ node_508 =\n    \"expected \"\n      GHC.Base.<> ( \"if_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_508 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_508) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_509 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_510 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_511 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_512 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_509\n        c1_510 = TreeSitter.Node.nodeStartPoint node_508\n      TreeSitter.Node.TSPoint\n        r2_511\n        c2_512 = TreeSitter.Node.nodeEndPoint node_508\n\nderiving instance GHC.Classes.Eq a_513 => GHC.Classes.Eq (IfStatement a_513)\n\nderiving instance GHC.Classes.Ord a_514 => GHC.Classes.Ord (IfStatement a_514)\n\nderiving instance GHC.Show.Show a_515 => GHC.Show.Show (IfStatement a_515)\n\ninstance AST.Unmarshal.Unmarshal IfStatement\n\ninstance Data.Foldable.Foldable IfStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IfStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IfStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImplementsClause a = ImplementsClause\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_516.\n      AST.Traversable1.Class.Traversable1 a_516\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImplementsClause where\n  matchedSymbols _ = [241]\n  showFailure _ node_517 =\n    \"expected \"\n      GHC.Base.<> ( \"implements_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_517 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_517) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_518 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_519 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_520 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_521 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_518\n        c1_519 = TreeSitter.Node.nodeStartPoint node_517\n      TreeSitter.Node.TSPoint\n        r2_520\n        c2_521 = TreeSitter.Node.nodeEndPoint node_517\n\nderiving instance GHC.Classes.Eq a_522 => GHC.Classes.Eq (ImplementsClause a_522)\n\nderiving instance GHC.Classes.Ord a_523 => GHC.Classes.Ord (ImplementsClause a_523)\n\nderiving instance GHC.Show.Show a_524 => GHC.Show.Show (ImplementsClause a_524)\n\ninstance AST.Unmarshal.Unmarshal ImplementsClause\n\ninstance Data.Foldable.Foldable ImplementsClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImplementsClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImplementsClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Import a = Import {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_525.\n      AST.Traversable1.Class.Traversable1 a_525\n    )\n\ninstance AST.Unmarshal.SymbolMatching Import where\n  matchedSymbols _ = [148]\n  showFailure _ node_526 =\n    \"expected \"\n      GHC.Base.<> ( \"import\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_526 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_526) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_527 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_528 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_529 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_530 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_527\n        c1_528 = TreeSitter.Node.nodeStartPoint node_526\n      TreeSitter.Node.TSPoint\n        r2_529\n        c2_530 = TreeSitter.Node.nodeEndPoint node_526\n\nderiving instance GHC.Classes.Eq a_531 => GHC.Classes.Eq (Import a_531)\n\nderiving instance GHC.Classes.Ord a_532 => GHC.Classes.Ord (Import a_532)\n\nderiving instance GHC.Show.Show a_533 => GHC.Show.Show (Import a_533)\n\ninstance AST.Unmarshal.Unmarshal Import\n\ninstance Data.Foldable.Foldable Import where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Import where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Import where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImportAlias a = ImportAlias\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_534.\n      AST.Traversable1.Class.Traversable1 a_534\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImportAlias where\n  matchedSymbols _ = [247]\n  showFailure _ node_535 =\n    \"expected \"\n      GHC.Base.<> ( \"import_alias\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_535 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_535) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_536 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_537 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_538 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_539 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_536\n        c1_537 = TreeSitter.Node.nodeStartPoint node_535\n      TreeSitter.Node.TSPoint\n        r2_538\n        c2_539 = TreeSitter.Node.nodeEndPoint node_535\n\nderiving instance GHC.Classes.Eq a_540 => GHC.Classes.Eq (ImportAlias a_540)\n\nderiving instance GHC.Classes.Ord a_541 => GHC.Classes.Ord (ImportAlias a_541)\n\nderiving instance GHC.Show.Show a_542 => GHC.Show.Show (ImportAlias a_542)\n\ninstance AST.Unmarshal.Unmarshal ImportAlias\n\ninstance Data.Foldable.Foldable ImportAlias where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImportAlias where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImportAlias where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImportClause a = ImportClause\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: NamedImports GHC.Generics.:+: NamespaceImport) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_543.\n      AST.Traversable1.Class.Traversable1 a_543\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImportClause where\n  matchedSymbols _ = [150]\n  showFailure _ node_544 =\n    \"expected \"\n      GHC.Base.<> ( \"import_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_544 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_544) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_545 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_546 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_547 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_548 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_545\n        c1_546 = TreeSitter.Node.nodeStartPoint node_544\n      TreeSitter.Node.TSPoint\n        r2_547\n        c2_548 = TreeSitter.Node.nodeEndPoint node_544\n\nderiving instance GHC.Classes.Eq a_549 => GHC.Classes.Eq (ImportClause a_549)\n\nderiving instance GHC.Classes.Ord a_550 => GHC.Classes.Ord (ImportClause a_550)\n\nderiving instance GHC.Show.Show a_551 => GHC.Show.Show (ImportClause a_551)\n\ninstance AST.Unmarshal.Unmarshal ImportClause\n\ninstance Data.Foldable.Foldable ImportClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImportClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImportClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImportRequireClause a = ImportRequireClause\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: String) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_552.\n      AST.Traversable1.Class.Traversable1 a_552\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImportRequireClause where\n  matchedSymbols _ = [240]\n  showFailure _ node_553 =\n    \"expected \"\n      GHC.Base.<> ( \"import_require_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_553 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_553) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_554 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_555 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_556 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_557 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_554\n        c1_555 = TreeSitter.Node.nodeStartPoint node_553\n      TreeSitter.Node.TSPoint\n        r2_556\n        c2_557 = TreeSitter.Node.nodeEndPoint node_553\n\nderiving instance GHC.Classes.Eq a_558 => GHC.Classes.Eq (ImportRequireClause a_558)\n\nderiving instance GHC.Classes.Ord a_559 => GHC.Classes.Ord (ImportRequireClause a_559)\n\nderiving instance GHC.Show.Show a_560 => GHC.Show.Show (ImportRequireClause a_560)\n\ninstance AST.Unmarshal.Unmarshal ImportRequireClause\n\ninstance Data.Foldable.Foldable ImportRequireClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImportRequireClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImportRequireClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImportSpecifier a = ImportSpecifier\n  { ann :: a,\n    alias :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))),\n    name :: (AST.Parse.Err (Identifier a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_561.\n      AST.Traversable1.Class.Traversable1 a_561\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImportSpecifier where\n  matchedSymbols _ = [312]\n  showFailure _ node_562 =\n    \"expected \"\n      GHC.Base.<> ( \"import_specifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_562 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_562) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_563 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_564 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_565 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_566 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_563\n        c1_564 = TreeSitter.Node.nodeStartPoint node_562\n      TreeSitter.Node.TSPoint\n        r2_565\n        c2_566 = TreeSitter.Node.nodeEndPoint node_562\n\nderiving instance GHC.Classes.Eq a_567 => GHC.Classes.Eq (ImportSpecifier a_567)\n\nderiving instance GHC.Classes.Ord a_568 => GHC.Classes.Ord (ImportSpecifier a_568)\n\nderiving instance GHC.Show.Show a_569 => GHC.Show.Show (ImportSpecifier a_569)\n\ninstance AST.Unmarshal.Unmarshal ImportSpecifier\n\ninstance Data.Foldable.Foldable ImportSpecifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImportSpecifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImportSpecifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImportStatement a = ImportStatement\n  { ann :: a,\n    source :: (GHC.Maybe.Maybe (AST.Parse.Err (String a))),\n    extraChildren :: (AST.Parse.Err ((ImportClause GHC.Generics.:+: ImportRequireClause GHC.Generics.:+: String) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_570.\n      AST.Traversable1.Class.Traversable1 a_570\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImportStatement where\n  matchedSymbols _ = [149]\n  showFailure _ node_571 =\n    \"expected \"\n      GHC.Base.<> ( \"import_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_571 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_571) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_572 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_573 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_574 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_575 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_572\n        c1_573 = TreeSitter.Node.nodeStartPoint node_571\n      TreeSitter.Node.TSPoint\n        r2_574\n        c2_575 = TreeSitter.Node.nodeEndPoint node_571\n\nderiving instance GHC.Classes.Eq a_576 => GHC.Classes.Eq (ImportStatement a_576)\n\nderiving instance GHC.Classes.Ord a_577 => GHC.Classes.Ord (ImportStatement a_577)\n\nderiving instance GHC.Show.Show a_578 => GHC.Show.Show (ImportStatement a_578)\n\ninstance AST.Unmarshal.Unmarshal ImportStatement\n\ninstance Data.Foldable.Foldable ImportStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImportStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImportStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IndexSignature a = IndexSignature\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: MappedTypeClause GHC.Generics.:+: PredefinedType GHC.Generics.:+: TypeAnnotation) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_579.\n      AST.Traversable1.Class.Traversable1 a_579\n    )\n\ninstance AST.Unmarshal.SymbolMatching IndexSignature where\n  matchedSymbols _ = [284]\n  showFailure _ node_580 =\n    \"expected \"\n      GHC.Base.<> ( \"index_signature\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_580 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_580) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_581 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_582 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_583 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_584 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_581\n        c1_582 = TreeSitter.Node.nodeStartPoint node_580\n      TreeSitter.Node.TSPoint\n        r2_583\n        c2_584 = TreeSitter.Node.nodeEndPoint node_580\n\nderiving instance GHC.Classes.Eq a_585 => GHC.Classes.Eq (IndexSignature a_585)\n\nderiving instance GHC.Classes.Ord a_586 => GHC.Classes.Ord (IndexSignature a_586)\n\nderiving instance GHC.Show.Show a_587 => GHC.Show.Show (IndexSignature a_587)\n\ninstance AST.Unmarshal.Unmarshal IndexSignature\n\ninstance Data.Foldable.Foldable IndexSignature where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IndexSignature where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IndexSignature where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IndexTypeQuery a = IndexTypeQuery\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((NestedTypeIdentifier GHC.Generics.:+: TypeIdentifier) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_588.\n      AST.Traversable1.Class.Traversable1 a_588\n    )\n\ninstance AST.Unmarshal.SymbolMatching IndexTypeQuery where\n  matchedSymbols _ = [266]\n  showFailure _ node_589 =\n    \"expected \"\n      GHC.Base.<> ( \"index_type_query\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_589 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_589) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_590 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_591 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_592 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_593 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_590\n        c1_591 = TreeSitter.Node.nodeStartPoint node_589\n      TreeSitter.Node.TSPoint\n        r2_592\n        c2_593 = TreeSitter.Node.nodeEndPoint node_589\n\nderiving instance GHC.Classes.Eq a_594 => GHC.Classes.Eq (IndexTypeQuery a_594)\n\nderiving instance GHC.Classes.Ord a_595 => GHC.Classes.Ord (IndexTypeQuery a_595)\n\nderiving instance GHC.Show.Show a_596 => GHC.Show.Show (IndexTypeQuery a_596)\n\ninstance AST.Unmarshal.Unmarshal IndexTypeQuery\n\ninstance Data.Foldable.Foldable IndexTypeQuery where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IndexTypeQuery where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IndexTypeQuery where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata InterfaceDeclaration a = InterfaceDeclaration\n  { ann :: a,\n    body :: (AST.Parse.Err (ObjectType a)),\n    name :: (AST.Parse.Err (TypeIdentifier a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ExtendsClause a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_597.\n      AST.Traversable1.Class.Traversable1 a_597\n    )\n\ninstance AST.Unmarshal.SymbolMatching InterfaceDeclaration where\n  matchedSymbols _ = [249]\n  showFailure _ node_598 =\n    \"expected \"\n      GHC.Base.<> ( \"interface_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_598 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_598) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_599 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_600 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_601 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_602 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_599\n        c1_600 = TreeSitter.Node.nodeStartPoint node_598\n      TreeSitter.Node.TSPoint\n        r2_601\n        c2_602 = TreeSitter.Node.nodeEndPoint node_598\n\nderiving instance GHC.Classes.Eq a_603 => GHC.Classes.Eq (InterfaceDeclaration a_603)\n\nderiving instance GHC.Classes.Ord a_604 => GHC.Classes.Ord (InterfaceDeclaration a_604)\n\nderiving instance GHC.Show.Show a_605 => GHC.Show.Show (InterfaceDeclaration a_605)\n\ninstance AST.Unmarshal.Unmarshal InterfaceDeclaration\n\ninstance Data.Foldable.Foldable InterfaceDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor InterfaceDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable InterfaceDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata InternalModule a = InternalModule\n  { ann :: a,\n    body :: (GHC.Maybe.Maybe (AST.Parse.Err (StatementBlock a))),\n    name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier GHC.Generics.:+: String) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_606.\n      AST.Traversable1.Class.Traversable1 a_606\n    )\n\ninstance AST.Unmarshal.SymbolMatching InternalModule where\n  matchedSymbols _ = [245]\n  showFailure _ node_607 =\n    \"expected \"\n      GHC.Base.<> ( \"internal_module\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_607 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_607) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_608 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_609 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_610 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_611 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_608\n        c1_609 = TreeSitter.Node.nodeStartPoint node_607\n      TreeSitter.Node.TSPoint\n        r2_610\n        c2_611 = TreeSitter.Node.nodeEndPoint node_607\n\nderiving instance GHC.Classes.Eq a_612 => GHC.Classes.Eq (InternalModule a_612)\n\nderiving instance GHC.Classes.Ord a_613 => GHC.Classes.Ord (InternalModule a_613)\n\nderiving instance GHC.Show.Show a_614 => GHC.Show.Show (InternalModule a_614)\n\ninstance AST.Unmarshal.Unmarshal InternalModule\n\ninstance Data.Foldable.Foldable InternalModule where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor InternalModule where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable InternalModule where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IntersectionType a = IntersectionType\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_615.\n      AST.Traversable1.Class.Traversable1 a_615\n    )\n\ninstance AST.Unmarshal.SymbolMatching IntersectionType where\n  matchedSymbols _ = [288]\n  showFailure _ node_616 =\n    \"expected \"\n      GHC.Base.<> ( \"intersection_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_616 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_616) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_617 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_618 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_619 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_620 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_617\n        c1_618 = TreeSitter.Node.nodeStartPoint node_616\n      TreeSitter.Node.TSPoint\n        r2_619\n        c2_620 = TreeSitter.Node.nodeEndPoint node_616\n\nderiving instance GHC.Classes.Eq a_621 => GHC.Classes.Eq (IntersectionType a_621)\n\nderiving instance GHC.Classes.Ord a_622 => GHC.Classes.Ord (IntersectionType a_622)\n\nderiving instance GHC.Show.Show a_623 => GHC.Show.Show (IntersectionType a_623)\n\ninstance AST.Unmarshal.Unmarshal IntersectionType\n\ninstance Data.Foldable.Foldable IntersectionType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IntersectionType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IntersectionType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata JsxAttribute a = JsxAttribute\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((JsxElement GHC.Generics.:+: JsxExpression GHC.Generics.:+: JsxFragment GHC.Generics.:+: JsxNamespaceName GHC.Generics.:+: JsxSelfClosingElement GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_624.\n      AST.Traversable1.Class.Traversable1 a_624\n    )\n\ninstance AST.Unmarshal.SymbolMatching JsxAttribute where\n  matchedSymbols _ = [194]\n  showFailure _ node_625 =\n    \"expected \"\n      GHC.Base.<> ( \"jsx_attribute\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_625 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_625) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_626 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_627 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_628 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_629 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_626\n        c1_627 = TreeSitter.Node.nodeStartPoint node_625\n      TreeSitter.Node.TSPoint\n        r2_628\n        c2_629 = TreeSitter.Node.nodeEndPoint node_625\n\nderiving instance GHC.Classes.Eq a_630 => GHC.Classes.Eq (JsxAttribute a_630)\n\nderiving instance GHC.Classes.Ord a_631 => GHC.Classes.Ord (JsxAttribute a_631)\n\nderiving instance GHC.Show.Show a_632 => GHC.Show.Show (JsxAttribute a_632)\n\ninstance AST.Unmarshal.Unmarshal JsxAttribute\n\ninstance Data.Foldable.Foldable JsxAttribute where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor JsxAttribute where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable JsxAttribute where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata JsxClosingElement a = JsxClosingElement\n  { ann :: a,\n    name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: JsxNamespaceName GHC.Generics.:+: NestedIdentifier) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_633.\n      AST.Traversable1.Class.Traversable1 a_633\n    )\n\ninstance AST.Unmarshal.SymbolMatching JsxClosingElement where\n  matchedSymbols _ = [192]\n  showFailure _ node_634 =\n    \"expected \"\n      GHC.Base.<> ( \"jsx_closing_element\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_634 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_634) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_635 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_636 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_637 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_638 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_635\n        c1_636 = TreeSitter.Node.nodeStartPoint node_634\n      TreeSitter.Node.TSPoint\n        r2_637\n        c2_638 = TreeSitter.Node.nodeEndPoint node_634\n\nderiving instance GHC.Classes.Eq a_639 => GHC.Classes.Eq (JsxClosingElement a_639)\n\nderiving instance GHC.Classes.Ord a_640 => GHC.Classes.Ord (JsxClosingElement a_640)\n\nderiving instance GHC.Show.Show a_641 => GHC.Show.Show (JsxClosingElement a_641)\n\ninstance AST.Unmarshal.Unmarshal JsxClosingElement\n\ninstance Data.Foldable.Foldable JsxClosingElement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor JsxClosingElement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable JsxClosingElement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata JsxElement a = JsxElement\n  { ann :: a,\n    closeTag :: (AST.Parse.Err (JsxClosingElement a)),\n    openTag :: (AST.Parse.Err (JsxOpeningElement a)),\n    extraChildren :: ([AST.Parse.Err ((JsxElement GHC.Generics.:+: JsxExpression GHC.Generics.:+: JsxSelfClosingElement GHC.Generics.:+: JsxText) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_642.\n      AST.Traversable1.Class.Traversable1 a_642\n    )\n\ninstance AST.Unmarshal.SymbolMatching JsxElement where\n  matchedSymbols _ = [186]\n  showFailure _ node_643 =\n    \"expected \"\n      GHC.Base.<> ( \"jsx_element\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_643 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_643) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_644 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_645 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_646 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_647 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_644\n        c1_645 = TreeSitter.Node.nodeStartPoint node_643\n      TreeSitter.Node.TSPoint\n        r2_646\n        c2_647 = TreeSitter.Node.nodeEndPoint node_643\n\nderiving instance GHC.Classes.Eq a_648 => GHC.Classes.Eq (JsxElement a_648)\n\nderiving instance GHC.Classes.Ord a_649 => GHC.Classes.Ord (JsxElement a_649)\n\nderiving instance GHC.Show.Show a_650 => GHC.Show.Show (JsxElement a_650)\n\ninstance AST.Unmarshal.Unmarshal JsxElement\n\ninstance Data.Foldable.Foldable JsxElement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor JsxElement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable JsxElement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata JsxExpression a = JsxExpression\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression GHC.Generics.:+: SpreadElement) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_651.\n      AST.Traversable1.Class.Traversable1 a_651\n    )\n\ninstance AST.Unmarshal.SymbolMatching JsxExpression where\n  matchedSymbols _ = [188]\n  showFailure _ node_652 =\n    \"expected \"\n      GHC.Base.<> ( \"jsx_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_652 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_652) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_653 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_654 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_655 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_656 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_653\n        c1_654 = TreeSitter.Node.nodeStartPoint node_652\n      TreeSitter.Node.TSPoint\n        r2_655\n        c2_656 = TreeSitter.Node.nodeEndPoint node_652\n\nderiving instance GHC.Classes.Eq a_657 => GHC.Classes.Eq (JsxExpression a_657)\n\nderiving instance GHC.Classes.Ord a_658 => GHC.Classes.Ord (JsxExpression a_658)\n\nderiving instance GHC.Show.Show a_659 => GHC.Show.Show (JsxExpression a_659)\n\ninstance AST.Unmarshal.Unmarshal JsxExpression\n\ninstance Data.Foldable.Foldable JsxExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor JsxExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable JsxExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata JsxFragment a = JsxFragment\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((JsxElement GHC.Generics.:+: JsxExpression GHC.Generics.:+: JsxSelfClosingElement GHC.Generics.:+: JsxText) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_660.\n      AST.Traversable1.Class.Traversable1 a_660\n    )\n\ninstance AST.Unmarshal.SymbolMatching JsxFragment where\n  matchedSymbols _ = [187]\n  showFailure _ node_661 =\n    \"expected \"\n      GHC.Base.<> ( \"jsx_fragment\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_661 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_661) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_662 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_663 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_664 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_665 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_662\n        c1_663 = TreeSitter.Node.nodeStartPoint node_661\n      TreeSitter.Node.TSPoint\n        r2_664\n        c2_665 = TreeSitter.Node.nodeEndPoint node_661\n\nderiving instance GHC.Classes.Eq a_666 => GHC.Classes.Eq (JsxFragment a_666)\n\nderiving instance GHC.Classes.Ord a_667 => GHC.Classes.Ord (JsxFragment a_667)\n\nderiving instance GHC.Show.Show a_668 => GHC.Show.Show (JsxFragment a_668)\n\ninstance AST.Unmarshal.Unmarshal JsxFragment\n\ninstance Data.Foldable.Foldable JsxFragment where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor JsxFragment where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable JsxFragment where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata JsxNamespaceName a = JsxNamespaceName\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Identifier a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_669.\n      AST.Traversable1.Class.Traversable1 a_669\n    )\n\ninstance AST.Unmarshal.SymbolMatching JsxNamespaceName where\n  matchedSymbols _ = [191]\n  showFailure _ node_670 =\n    \"expected \"\n      GHC.Base.<> ( \"jsx_namespace_name\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_670 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_670) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_671 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_672 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_673 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_674 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_671\n        c1_672 = TreeSitter.Node.nodeStartPoint node_670\n      TreeSitter.Node.TSPoint\n        r2_673\n        c2_674 = TreeSitter.Node.nodeEndPoint node_670\n\nderiving instance GHC.Classes.Eq a_675 => GHC.Classes.Eq (JsxNamespaceName a_675)\n\nderiving instance GHC.Classes.Ord a_676 => GHC.Classes.Ord (JsxNamespaceName a_676)\n\nderiving instance GHC.Show.Show a_677 => GHC.Show.Show (JsxNamespaceName a_677)\n\ninstance AST.Unmarshal.Unmarshal JsxNamespaceName\n\ninstance Data.Foldable.Foldable JsxNamespaceName where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor JsxNamespaceName where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable JsxNamespaceName where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata JsxOpeningElement a = JsxOpeningElement\n  { ann :: a,\n    attribute :: ([AST.Parse.Err ((JsxAttribute GHC.Generics.:+: JsxExpression) a)]),\n    name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: JsxNamespaceName GHC.Generics.:+: NestedIdentifier) a)),\n    typeArguments :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeArguments a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_678.\n      AST.Traversable1.Class.Traversable1 a_678\n    )\n\ninstance AST.Unmarshal.SymbolMatching JsxOpeningElement where\n  matchedSymbols _ = [189]\n  showFailure _ node_679 =\n    \"expected \"\n      GHC.Base.<> ( \"jsx_opening_element\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_679 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_679) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_680 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_681 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_682 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_683 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_680\n        c1_681 = TreeSitter.Node.nodeStartPoint node_679\n      TreeSitter.Node.TSPoint\n        r2_682\n        c2_683 = TreeSitter.Node.nodeEndPoint node_679\n\nderiving instance GHC.Classes.Eq a_684 => GHC.Classes.Eq (JsxOpeningElement a_684)\n\nderiving instance GHC.Classes.Ord a_685 => GHC.Classes.Ord (JsxOpeningElement a_685)\n\nderiving instance GHC.Show.Show a_686 => GHC.Show.Show (JsxOpeningElement a_686)\n\ninstance AST.Unmarshal.Unmarshal JsxOpeningElement\n\ninstance Data.Foldable.Foldable JsxOpeningElement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor JsxOpeningElement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable JsxOpeningElement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata JsxSelfClosingElement a = JsxSelfClosingElement\n  { ann :: a,\n    attribute :: ([AST.Parse.Err ((JsxAttribute GHC.Generics.:+: JsxExpression) a)]),\n    name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: JsxNamespaceName GHC.Generics.:+: NestedIdentifier) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_687.\n      AST.Traversable1.Class.Traversable1 a_687\n    )\n\ninstance AST.Unmarshal.SymbolMatching JsxSelfClosingElement where\n  matchedSymbols _ = [193]\n  showFailure _ node_688 =\n    \"expected \"\n      GHC.Base.<> ( \"jsx_self_closing_element\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_688 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_688) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_689 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_690 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_691 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_692 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_689\n        c1_690 = TreeSitter.Node.nodeStartPoint node_688\n      TreeSitter.Node.TSPoint\n        r2_691\n        c2_692 = TreeSitter.Node.nodeEndPoint node_688\n\nderiving instance GHC.Classes.Eq a_693 => GHC.Classes.Eq (JsxSelfClosingElement a_693)\n\nderiving instance GHC.Classes.Ord a_694 => GHC.Classes.Ord (JsxSelfClosingElement a_694)\n\nderiving instance GHC.Show.Show a_695 => GHC.Show.Show (JsxSelfClosingElement a_695)\n\ninstance AST.Unmarshal.Unmarshal JsxSelfClosingElement\n\ninstance Data.Foldable.Foldable JsxSelfClosingElement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor JsxSelfClosingElement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable JsxSelfClosingElement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata LabeledStatement a = LabeledStatement\n  { ann :: a,\n    label :: (AST.Parse.Err (StatementIdentifier a)),\n    extraChildren :: (AST.Parse.Err (Statement a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_696.\n      AST.Traversable1.Class.Traversable1 a_696\n    )\n\ninstance AST.Unmarshal.SymbolMatching LabeledStatement where\n  matchedSymbols _ = [174]\n  showFailure _ node_697 =\n    \"expected \"\n      GHC.Base.<> ( \"labeled_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_697 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_697) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_698 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_699 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_700 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_701 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_698\n        c1_699 = TreeSitter.Node.nodeStartPoint node_697\n      TreeSitter.Node.TSPoint\n        r2_700\n        c2_701 = TreeSitter.Node.nodeEndPoint node_697\n\nderiving instance GHC.Classes.Eq a_702 => GHC.Classes.Eq (LabeledStatement a_702)\n\nderiving instance GHC.Classes.Ord a_703 => GHC.Classes.Ord (LabeledStatement a_703)\n\nderiving instance GHC.Show.Show a_704 => GHC.Show.Show (LabeledStatement a_704)\n\ninstance AST.Unmarshal.Unmarshal LabeledStatement\n\ninstance Data.Foldable.Foldable LabeledStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor LabeledStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable LabeledStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata LexicalDeclaration a = LexicalDeclaration\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (VariableDeclarator a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_705.\n      AST.Traversable1.Class.Traversable1 a_705\n    )\n\ninstance AST.Unmarshal.SymbolMatching LexicalDeclaration where\n  matchedSymbols _ = [156]\n  showFailure _ node_706 =\n    \"expected \"\n      GHC.Base.<> ( \"lexical_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_706 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_706) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_707 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_708 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_709 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_710 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_707\n        c1_708 = TreeSitter.Node.nodeStartPoint node_706\n      TreeSitter.Node.TSPoint\n        r2_709\n        c2_710 = TreeSitter.Node.nodeEndPoint node_706\n\nderiving instance GHC.Classes.Eq a_711 => GHC.Classes.Eq (LexicalDeclaration a_711)\n\nderiving instance GHC.Classes.Ord a_712 => GHC.Classes.Ord (LexicalDeclaration a_712)\n\nderiving instance GHC.Show.Show a_713 => GHC.Show.Show (LexicalDeclaration a_713)\n\ninstance AST.Unmarshal.Unmarshal LexicalDeclaration\n\ninstance Data.Foldable.Foldable LexicalDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor LexicalDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable LexicalDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata LiteralType a = LiteralType\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((False GHC.Generics.:+: Number GHC.Generics.:+: String GHC.Generics.:+: True GHC.Generics.:+: UnaryExpression) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_714.\n      AST.Traversable1.Class.Traversable1 a_714\n    )\n\ninstance AST.Unmarshal.SymbolMatching LiteralType where\n  matchedSymbols _ = [269]\n  showFailure _ node_715 =\n    \"expected \"\n      GHC.Base.<> ( \"literal_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_715 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_715) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_716 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_717 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_718 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_719 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_716\n        c1_717 = TreeSitter.Node.nodeStartPoint node_715\n      TreeSitter.Node.TSPoint\n        r2_718\n        c2_719 = TreeSitter.Node.nodeEndPoint node_715\n\nderiving instance GHC.Classes.Eq a_720 => GHC.Classes.Eq (LiteralType a_720)\n\nderiving instance GHC.Classes.Ord a_721 => GHC.Classes.Ord (LiteralType a_721)\n\nderiving instance GHC.Show.Show a_722 => GHC.Show.Show (LiteralType a_722)\n\ninstance AST.Unmarshal.Unmarshal LiteralType\n\ninstance Data.Foldable.Foldable LiteralType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor LiteralType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable LiteralType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata LookupType a = LookupType\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_723.\n      AST.Traversable1.Class.Traversable1 a_723\n    )\n\ninstance AST.Unmarshal.SymbolMatching LookupType where\n  matchedSymbols _ = [267]\n  showFailure _ node_724 =\n    \"expected \"\n      GHC.Base.<> ( \"lookup_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_724 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_724) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_725 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_726 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_727 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_728 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_725\n        c1_726 = TreeSitter.Node.nodeStartPoint node_724\n      TreeSitter.Node.TSPoint\n        r2_727\n        c2_728 = TreeSitter.Node.nodeEndPoint node_724\n\nderiving instance GHC.Classes.Eq a_729 => GHC.Classes.Eq (LookupType a_729)\n\nderiving instance GHC.Classes.Ord a_730 => GHC.Classes.Ord (LookupType a_730)\n\nderiving instance GHC.Show.Show a_731 => GHC.Show.Show (LookupType a_731)\n\ninstance AST.Unmarshal.Unmarshal LookupType\n\ninstance Data.Foldable.Foldable LookupType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor LookupType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable LookupType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MappedTypeClause a = MappedTypeClause\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_732.\n      AST.Traversable1.Class.Traversable1 a_732\n    )\n\ninstance AST.Unmarshal.SymbolMatching MappedTypeClause where\n  matchedSymbols _ = [268]\n  showFailure _ node_733 =\n    \"expected \"\n      GHC.Base.<> ( \"mapped_type_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_733 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_733) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_734 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_735 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_736 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_737 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_734\n        c1_735 = TreeSitter.Node.nodeStartPoint node_733\n      TreeSitter.Node.TSPoint\n        r2_736\n        c2_737 = TreeSitter.Node.nodeEndPoint node_733\n\nderiving instance GHC.Classes.Eq a_738 => GHC.Classes.Eq (MappedTypeClause a_738)\n\nderiving instance GHC.Classes.Ord a_739 => GHC.Classes.Ord (MappedTypeClause a_739)\n\nderiving instance GHC.Show.Show a_740 => GHC.Show.Show (MappedTypeClause a_740)\n\ninstance AST.Unmarshal.Unmarshal MappedTypeClause\n\ninstance Data.Foldable.Foldable MappedTypeClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MappedTypeClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MappedTypeClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MemberExpression a = MemberExpression\n  { ann :: a,\n    property :: (AST.Parse.Err (PropertyIdentifier a)),\n    object :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_741.\n      AST.Traversable1.Class.Traversable1 a_741\n    )\n\ninstance AST.Unmarshal.SymbolMatching MemberExpression where\n  matchedSymbols _ = [207, 225]\n  showFailure _ node_742 =\n    \"expected \"\n      GHC.Base.<> ( \"member_expression, member_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_742 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_742) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_743 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_744 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_745 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_746 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_743\n        c1_744 = TreeSitter.Node.nodeStartPoint node_742\n      TreeSitter.Node.TSPoint\n        r2_745\n        c2_746 = TreeSitter.Node.nodeEndPoint node_742\n\nderiving instance GHC.Classes.Eq a_747 => GHC.Classes.Eq (MemberExpression a_747)\n\nderiving instance GHC.Classes.Ord a_748 => GHC.Classes.Ord (MemberExpression a_748)\n\nderiving instance GHC.Show.Show a_749 => GHC.Show.Show (MemberExpression a_749)\n\ninstance AST.Unmarshal.Unmarshal MemberExpression\n\ninstance Data.Foldable.Foldable MemberExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MemberExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MemberExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MetaProperty a = MetaProperty {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_750.\n      AST.Traversable1.Class.Traversable1 a_750\n    )\n\ninstance AST.Unmarshal.SymbolMatching MetaProperty where\n  matchedSymbols _ = [222]\n  showFailure _ node_751 =\n    \"expected \"\n      GHC.Base.<> ( \"meta_property\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_751 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_751) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_752 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_753 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_754 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_755 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_752\n        c1_753 = TreeSitter.Node.nodeStartPoint node_751\n      TreeSitter.Node.TSPoint\n        r2_754\n        c2_755 = TreeSitter.Node.nodeEndPoint node_751\n\nderiving instance GHC.Classes.Eq a_756 => GHC.Classes.Eq (MetaProperty a_756)\n\nderiving instance GHC.Classes.Ord a_757 => GHC.Classes.Ord (MetaProperty a_757)\n\nderiving instance GHC.Show.Show a_758 => GHC.Show.Show (MetaProperty a_758)\n\ninstance AST.Unmarshal.Unmarshal MetaProperty\n\ninstance Data.Foldable.Foldable MetaProperty where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MetaProperty where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MetaProperty where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MethodDefinition a = MethodDefinition\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    body :: (AST.Parse.Err (StatementBlock a)),\n    name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    extraChildren :: ([AST.Parse.Err ((AccessibilityModifier GHC.Generics.:+: Readonly) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_759.\n      AST.Traversable1.Class.Traversable1 a_759\n    )\n\ninstance AST.Unmarshal.SymbolMatching MethodDefinition where\n  matchedSymbols _ = [231]\n  showFailure _ node_760 =\n    \"expected \"\n      GHC.Base.<> ( \"method_definition\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_760 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_760) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_761 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_762 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_763 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_764 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_761\n        c1_762 = TreeSitter.Node.nodeStartPoint node_760\n      TreeSitter.Node.TSPoint\n        r2_763\n        c2_764 = TreeSitter.Node.nodeEndPoint node_760\n\nderiving instance GHC.Classes.Eq a_765 => GHC.Classes.Eq (MethodDefinition a_765)\n\nderiving instance GHC.Classes.Ord a_766 => GHC.Classes.Ord (MethodDefinition a_766)\n\nderiving instance GHC.Show.Show a_767 => GHC.Show.Show (MethodDefinition a_767)\n\ninstance AST.Unmarshal.Unmarshal MethodDefinition\n\ninstance Data.Foldable.Foldable MethodDefinition where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MethodDefinition where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MethodDefinition where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MethodSignature a = MethodSignature\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    extraChildren :: ([AST.Parse.Err ((AccessibilityModifier GHC.Generics.:+: Readonly) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_768.\n      AST.Traversable1.Class.Traversable1 a_768\n    )\n\ninstance AST.Unmarshal.SymbolMatching MethodSignature where\n  matchedSymbols _ = [236]\n  showFailure _ node_769 =\n    \"expected \"\n      GHC.Base.<> ( \"method_signature\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_769 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_769) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_770 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_771 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_772 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_773 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_770\n        c1_771 = TreeSitter.Node.nodeStartPoint node_769\n      TreeSitter.Node.TSPoint\n        r2_772\n        c2_773 = TreeSitter.Node.nodeEndPoint node_769\n\nderiving instance GHC.Classes.Eq a_774 => GHC.Classes.Eq (MethodSignature a_774)\n\nderiving instance GHC.Classes.Ord a_775 => GHC.Classes.Ord (MethodSignature a_775)\n\nderiving instance GHC.Show.Show a_776 => GHC.Show.Show (MethodSignature a_776)\n\ninstance AST.Unmarshal.Unmarshal MethodSignature\n\ninstance Data.Foldable.Foldable MethodSignature where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MethodSignature where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MethodSignature where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Module a = Module\n  { ann :: a,\n    body :: (GHC.Maybe.Maybe (AST.Parse.Err (StatementBlock a))),\n    name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier GHC.Generics.:+: String) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_777.\n      AST.Traversable1.Class.Traversable1 a_777\n    )\n\ninstance AST.Unmarshal.SymbolMatching Module where\n  matchedSymbols _ = [244]\n  showFailure _ node_778 =\n    \"expected \"\n      GHC.Base.<> ( \"module\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_778 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_778) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_779 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_780 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_781 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_782 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_779\n        c1_780 = TreeSitter.Node.nodeStartPoint node_778\n      TreeSitter.Node.TSPoint\n        r2_781\n        c2_782 = TreeSitter.Node.nodeEndPoint node_778\n\nderiving instance GHC.Classes.Eq a_783 => GHC.Classes.Eq (Module a_783)\n\nderiving instance GHC.Classes.Ord a_784 => GHC.Classes.Ord (Module a_784)\n\nderiving instance GHC.Show.Show a_785 => GHC.Show.Show (Module a_785)\n\ninstance AST.Unmarshal.Unmarshal Module\n\ninstance Data.Foldable.Foldable Module where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Module where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Module where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NamedImports a = NamedImports\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (ImportSpecifier a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_786.\n      AST.Traversable1.Class.Traversable1 a_786\n    )\n\ninstance AST.Unmarshal.SymbolMatching NamedImports where\n  matchedSymbols _ = [153]\n  showFailure _ node_787 =\n    \"expected \"\n      GHC.Base.<> ( \"named_imports\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_787 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_787) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_788 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_789 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_790 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_791 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_788\n        c1_789 = TreeSitter.Node.nodeStartPoint node_787\n      TreeSitter.Node.TSPoint\n        r2_790\n        c2_791 = TreeSitter.Node.nodeEndPoint node_787\n\nderiving instance GHC.Classes.Eq a_792 => GHC.Classes.Eq (NamedImports a_792)\n\nderiving instance GHC.Classes.Ord a_793 => GHC.Classes.Ord (NamedImports a_793)\n\nderiving instance GHC.Show.Show a_794 => GHC.Show.Show (NamedImports a_794)\n\ninstance AST.Unmarshal.Unmarshal NamedImports\n\ninstance Data.Foldable.Foldable NamedImports where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NamedImports where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NamedImports where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NamespaceImport a = NamespaceImport\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Identifier a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_795.\n      AST.Traversable1.Class.Traversable1 a_795\n    )\n\ninstance AST.Unmarshal.SymbolMatching NamespaceImport where\n  matchedSymbols _ = [152]\n  showFailure _ node_796 =\n    \"expected \"\n      GHC.Base.<> ( \"namespace_import\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_796 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_796) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_797 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_798 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_799 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_800 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_797\n        c1_798 = TreeSitter.Node.nodeStartPoint node_796\n      TreeSitter.Node.TSPoint\n        r2_799\n        c2_800 = TreeSitter.Node.nodeEndPoint node_796\n\nderiving instance GHC.Classes.Eq a_801 => GHC.Classes.Eq (NamespaceImport a_801)\n\nderiving instance GHC.Classes.Ord a_802 => GHC.Classes.Ord (NamespaceImport a_802)\n\nderiving instance GHC.Show.Show a_803 => GHC.Show.Show (NamespaceImport a_803)\n\ninstance AST.Unmarshal.Unmarshal NamespaceImport\n\ninstance Data.Foldable.Foldable NamespaceImport where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NamespaceImport where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NamespaceImport where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NestedIdentifier a = NestedIdentifier\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_804.\n      AST.Traversable1.Class.Traversable1 a_804\n    )\n\ninstance AST.Unmarshal.SymbolMatching NestedIdentifier where\n  matchedSymbols _ = [190]\n  showFailure _ node_805 =\n    \"expected \"\n      GHC.Base.<> ( \"nested_identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_805 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_805) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_806 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_807 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_808 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_809 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_806\n        c1_807 = TreeSitter.Node.nodeStartPoint node_805\n      TreeSitter.Node.TSPoint\n        r2_808\n        c2_809 = TreeSitter.Node.nodeEndPoint node_805\n\nderiving instance GHC.Classes.Eq a_810 => GHC.Classes.Eq (NestedIdentifier a_810)\n\nderiving instance GHC.Classes.Ord a_811 => GHC.Classes.Ord (NestedIdentifier a_811)\n\nderiving instance GHC.Show.Show a_812 => GHC.Show.Show (NestedIdentifier a_812)\n\ninstance AST.Unmarshal.Unmarshal NestedIdentifier\n\ninstance Data.Foldable.Foldable NestedIdentifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NestedIdentifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NestedIdentifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NestedTypeIdentifier a = NestedTypeIdentifier\n  { ann :: a,\n    name :: (AST.Parse.Err (TypeIdentifier a)),\n    module' :: (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_813.\n      AST.Traversable1.Class.Traversable1 a_813\n    )\n\ninstance AST.Unmarshal.SymbolMatching NestedTypeIdentifier where\n  matchedSymbols _ = [248]\n  showFailure _ node_814 =\n    \"expected \"\n      GHC.Base.<> ( \"nested_type_identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_814 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_814) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_815 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_816 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_817 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_818 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_815\n        c1_816 = TreeSitter.Node.nodeStartPoint node_814\n      TreeSitter.Node.TSPoint\n        r2_817\n        c2_818 = TreeSitter.Node.nodeEndPoint node_814\n\nderiving instance GHC.Classes.Eq a_819 => GHC.Classes.Eq (NestedTypeIdentifier a_819)\n\nderiving instance GHC.Classes.Ord a_820 => GHC.Classes.Ord (NestedTypeIdentifier a_820)\n\nderiving instance GHC.Show.Show a_821 => GHC.Show.Show (NestedTypeIdentifier a_821)\n\ninstance AST.Unmarshal.Unmarshal NestedTypeIdentifier\n\ninstance Data.Foldable.Foldable NestedTypeIdentifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NestedTypeIdentifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NestedTypeIdentifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NewExpression a = NewExpression\n  { ann :: a,\n    arguments :: (GHC.Maybe.Maybe (AST.Parse.Err (Arguments a))),\n    constructor :: (AST.Parse.Err ((Array GHC.Generics.:+: ArrowFunction GHC.Generics.:+: Class GHC.Generics.:+: False GHC.Generics.:+: Function GHC.Generics.:+: GeneratorFunction GHC.Generics.:+: Identifier GHC.Generics.:+: Import GHC.Generics.:+: MemberExpression GHC.Generics.:+: MetaProperty GHC.Generics.:+: NewExpression GHC.Generics.:+: Null GHC.Generics.:+: Number GHC.Generics.:+: Object GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: Regex GHC.Generics.:+: String GHC.Generics.:+: SubscriptExpression GHC.Generics.:+: TemplateString GHC.Generics.:+: This GHC.Generics.:+: True GHC.Generics.:+: Undefined) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_822.\n      AST.Traversable1.Class.Traversable1 a_822\n    )\n\ninstance AST.Unmarshal.SymbolMatching NewExpression where\n  matchedSymbols _ = [205]\n  showFailure _ node_823 =\n    \"expected \"\n      GHC.Base.<> ( \"new_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_823 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_823) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_824 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_825 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_826 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_827 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_824\n        c1_825 = TreeSitter.Node.nodeStartPoint node_823\n      TreeSitter.Node.TSPoint\n        r2_826\n        c2_827 = TreeSitter.Node.nodeEndPoint node_823\n\nderiving instance GHC.Classes.Eq a_828 => GHC.Classes.Eq (NewExpression a_828)\n\nderiving instance GHC.Classes.Ord a_829 => GHC.Classes.Ord (NewExpression a_829)\n\nderiving instance GHC.Show.Show a_830 => GHC.Show.Show (NewExpression a_830)\n\ninstance AST.Unmarshal.Unmarshal NewExpression\n\ninstance Data.Foldable.Foldable NewExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NewExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NewExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NonNullExpression a = NonNullExpression\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_831.\n      AST.Traversable1.Class.Traversable1 a_831\n    )\n\ninstance AST.Unmarshal.SymbolMatching NonNullExpression where\n  matchedSymbols _ = [235]\n  showFailure _ node_832 =\n    \"expected \"\n      GHC.Base.<> ( \"non_null_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_832 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_832) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_833 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_834 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_835 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_836 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_833\n        c1_834 = TreeSitter.Node.nodeStartPoint node_832\n      TreeSitter.Node.TSPoint\n        r2_835\n        c2_836 = TreeSitter.Node.nodeEndPoint node_832\n\nderiving instance GHC.Classes.Eq a_837 => GHC.Classes.Eq (NonNullExpression a_837)\n\nderiving instance GHC.Classes.Ord a_838 => GHC.Classes.Ord (NonNullExpression a_838)\n\nderiving instance GHC.Show.Show a_839 => GHC.Show.Show (NonNullExpression a_839)\n\ninstance AST.Unmarshal.Unmarshal NonNullExpression\n\ninstance Data.Foldable.Foldable NonNullExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NonNullExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NonNullExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Object a = Object\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((AssignmentPattern GHC.Generics.:+: MethodDefinition GHC.Generics.:+: Pair GHC.Generics.:+: ShorthandPropertyIdentifier GHC.Generics.:+: SpreadElement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_840.\n      AST.Traversable1.Class.Traversable1 a_840\n    )\n\ninstance AST.Unmarshal.SymbolMatching Object where\n  matchedSymbols _ = [183]\n  showFailure _ node_841 =\n    \"expected \"\n      GHC.Base.<> ( \"object\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_841 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_841) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_842 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_843 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_844 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_845 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_842\n        c1_843 = TreeSitter.Node.nodeStartPoint node_841\n      TreeSitter.Node.TSPoint\n        r2_844\n        c2_845 = TreeSitter.Node.nodeEndPoint node_841\n\nderiving instance GHC.Classes.Eq a_846 => GHC.Classes.Eq (Object a_846)\n\nderiving instance GHC.Classes.Ord a_847 => GHC.Classes.Ord (Object a_847)\n\nderiving instance GHC.Show.Show a_848 => GHC.Show.Show (Object a_848)\n\ninstance AST.Unmarshal.Unmarshal Object\n\ninstance Data.Foldable.Foldable Object where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Object where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Object where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ObjectPattern a = ObjectPattern\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((AssignmentPattern GHC.Generics.:+: MethodDefinition GHC.Generics.:+: Pair GHC.Generics.:+: ShorthandPropertyIdentifier GHC.Generics.:+: SpreadElement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_849.\n      AST.Traversable1.Class.Traversable1 a_849\n    )\n\ninstance AST.Unmarshal.SymbolMatching ObjectPattern where\n  matchedSymbols _ = [313]\n  showFailure _ node_850 =\n    \"expected \"\n      GHC.Base.<> ( \"object_pattern\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_850 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_850) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_851 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_852 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_853 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_854 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_851\n        c1_852 = TreeSitter.Node.nodeStartPoint node_850\n      TreeSitter.Node.TSPoint\n        r2_853\n        c2_854 = TreeSitter.Node.nodeEndPoint node_850\n\nderiving instance GHC.Classes.Eq a_855 => GHC.Classes.Eq (ObjectPattern a_855)\n\nderiving instance GHC.Classes.Ord a_856 => GHC.Classes.Ord (ObjectPattern a_856)\n\nderiving instance GHC.Show.Show a_857 => GHC.Show.Show (ObjectPattern a_857)\n\ninstance AST.Unmarshal.Unmarshal ObjectPattern\n\ninstance Data.Foldable.Foldable ObjectPattern where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ObjectPattern where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ObjectPattern where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ObjectType a = ObjectType\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((CallSignature GHC.Generics.:+: ConstructSignature GHC.Generics.:+: ExportStatement GHC.Generics.:+: IndexSignature GHC.Generics.:+: MethodSignature GHC.Generics.:+: PropertySignature) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_858.\n      AST.Traversable1.Class.Traversable1 a_858\n    )\n\ninstance AST.Unmarshal.SymbolMatching ObjectType where\n  matchedSymbols _ = [276]\n  showFailure _ node_859 =\n    \"expected \"\n      GHC.Base.<> ( \"object_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_859 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_859) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_860 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_861 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_862 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_863 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_860\n        c1_861 = TreeSitter.Node.nodeStartPoint node_859\n      TreeSitter.Node.TSPoint\n        r2_862\n        c2_863 = TreeSitter.Node.nodeEndPoint node_859\n\nderiving instance GHC.Classes.Eq a_864 => GHC.Classes.Eq (ObjectType a_864)\n\nderiving instance GHC.Classes.Ord a_865 => GHC.Classes.Ord (ObjectType a_865)\n\nderiving instance GHC.Show.Show a_866 => GHC.Show.Show (ObjectType a_866)\n\ninstance AST.Unmarshal.Unmarshal ObjectType\n\ninstance Data.Foldable.Foldable ObjectType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ObjectType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ObjectType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata OptionalParameter a = OptionalParameter\n  { ann :: a,\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: AccessibilityModifier GHC.Generics.:+: Identifier GHC.Generics.:+: Readonly GHC.Generics.:+: This GHC.Generics.:+: TypeAnnotation) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_867.\n      AST.Traversable1.Class.Traversable1 a_867\n    )\n\ninstance AST.Unmarshal.SymbolMatching OptionalParameter where\n  matchedSymbols _ = [257]\n  showFailure _ node_868 =\n    \"expected \"\n      GHC.Base.<> ( \"optional_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_868 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_868) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_869 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_870 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_871 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_872 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_869\n        c1_870 = TreeSitter.Node.nodeStartPoint node_868\n      TreeSitter.Node.TSPoint\n        r2_871\n        c2_872 = TreeSitter.Node.nodeEndPoint node_868\n\nderiving instance GHC.Classes.Eq a_873 => GHC.Classes.Eq (OptionalParameter a_873)\n\nderiving instance GHC.Classes.Ord a_874 => GHC.Classes.Ord (OptionalParameter a_874)\n\nderiving instance GHC.Show.Show a_875 => GHC.Show.Show (OptionalParameter a_875)\n\ninstance AST.Unmarshal.Unmarshal OptionalParameter\n\ninstance Data.Foldable.Foldable OptionalParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor OptionalParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable OptionalParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Pair a = Pair\n  { ann :: a,\n    value :: (AST.Parse.Err (Expression a)),\n    key :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_876.\n      AST.Traversable1.Class.Traversable1 a_876\n    )\n\ninstance AST.Unmarshal.SymbolMatching Pair where\n  matchedSymbols _ = [232]\n  showFailure _ node_877 =\n    \"expected \"\n      GHC.Base.<> ( \"pair\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_877 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_877) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_878 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_879 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_880 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_881 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_878\n        c1_879 = TreeSitter.Node.nodeStartPoint node_877\n      TreeSitter.Node.TSPoint\n        r2_880\n        c2_881 = TreeSitter.Node.nodeEndPoint node_877\n\nderiving instance GHC.Classes.Eq a_882 => GHC.Classes.Eq (Pair a_882)\n\nderiving instance GHC.Classes.Ord a_883 => GHC.Classes.Ord (Pair a_883)\n\nderiving instance GHC.Show.Show a_884 => GHC.Show.Show (Pair a_884)\n\ninstance AST.Unmarshal.Unmarshal Pair\n\ninstance Data.Foldable.Foldable Pair where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Pair where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Pair where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ParenthesizedExpression a = ParenthesizedExpression\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression GHC.Generics.:+: TypeAnnotation) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_885.\n      AST.Traversable1.Class.Traversable1 a_885\n    )\n\ninstance AST.Unmarshal.SymbolMatching ParenthesizedExpression where\n  matchedSymbols _ = [180]\n  showFailure _ node_886 =\n    \"expected \"\n      GHC.Base.<> ( \"parenthesized_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_886 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_886) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_887 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_888 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_889 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_890 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_887\n        c1_888 = TreeSitter.Node.nodeStartPoint node_886\n      TreeSitter.Node.TSPoint\n        r2_889\n        c2_890 = TreeSitter.Node.nodeEndPoint node_886\n\nderiving instance GHC.Classes.Eq a_891 => GHC.Classes.Eq (ParenthesizedExpression a_891)\n\nderiving instance GHC.Classes.Ord a_892 => GHC.Classes.Ord (ParenthesizedExpression a_892)\n\nderiving instance GHC.Show.Show a_893 => GHC.Show.Show (ParenthesizedExpression a_893)\n\ninstance AST.Unmarshal.Unmarshal ParenthesizedExpression\n\ninstance Data.Foldable.Foldable ParenthesizedExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ParenthesizedExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ParenthesizedExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ParenthesizedType a = ParenthesizedType\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_894.\n      AST.Traversable1.Class.Traversable1 a_894\n    )\n\ninstance AST.Unmarshal.SymbolMatching ParenthesizedType where\n  matchedSymbols _ = [273]\n  showFailure _ node_895 =\n    \"expected \"\n      GHC.Base.<> ( \"parenthesized_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_895 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_895) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_896 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_897 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_898 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_899 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_896\n        c1_897 = TreeSitter.Node.nodeStartPoint node_895\n      TreeSitter.Node.TSPoint\n        r2_898\n        c2_899 = TreeSitter.Node.nodeEndPoint node_895\n\nderiving instance GHC.Classes.Eq a_900 => GHC.Classes.Eq (ParenthesizedType a_900)\n\nderiving instance GHC.Classes.Ord a_901 => GHC.Classes.Ord (ParenthesizedType a_901)\n\nderiving instance GHC.Show.Show a_902 => GHC.Show.Show (ParenthesizedType a_902)\n\ninstance AST.Unmarshal.Unmarshal ParenthesizedType\n\ninstance Data.Foldable.Foldable ParenthesizedType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ParenthesizedType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ParenthesizedType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PredefinedType a = PredefinedType {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_903.\n      AST.Traversable1.Class.Traversable1 a_903\n    )\n\ninstance AST.Unmarshal.SymbolMatching PredefinedType where\n  matchedSymbols _ = [274]\n  showFailure _ node_904 =\n    \"expected \"\n      GHC.Base.<> ( \"predefined_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_904 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_904) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_905 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_906 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_907 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_908 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_905\n        c1_906 = TreeSitter.Node.nodeStartPoint node_904\n      TreeSitter.Node.TSPoint\n        r2_907\n        c2_908 = TreeSitter.Node.nodeEndPoint node_904\n\nderiving instance GHC.Classes.Eq a_909 => GHC.Classes.Eq (PredefinedType a_909)\n\nderiving instance GHC.Classes.Ord a_910 => GHC.Classes.Ord (PredefinedType a_910)\n\nderiving instance GHC.Show.Show a_911 => GHC.Show.Show (PredefinedType a_911)\n\ninstance AST.Unmarshal.Unmarshal PredefinedType\n\ninstance Data.Foldable.Foldable PredefinedType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PredefinedType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PredefinedType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Program a = Program\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: HashBangLine) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_912.\n      AST.Traversable1.Class.Traversable1 a_912\n    )\n\ninstance AST.Unmarshal.SymbolMatching Program where\n  matchedSymbols _ = [143]\n  showFailure _ node_913 =\n    \"expected \"\n      GHC.Base.<> ( \"program\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_913 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_913) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_914 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_915 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_916 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_917 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_914\n        c1_915 = TreeSitter.Node.nodeStartPoint node_913\n      TreeSitter.Node.TSPoint\n        r2_916\n        c2_917 = TreeSitter.Node.nodeEndPoint node_913\n\nderiving instance GHC.Classes.Eq a_918 => GHC.Classes.Eq (Program a_918)\n\nderiving instance GHC.Classes.Ord a_919 => GHC.Classes.Ord (Program a_919)\n\nderiving instance GHC.Show.Show a_920 => GHC.Show.Show (Program a_920)\n\ninstance AST.Unmarshal.Unmarshal Program\n\ninstance Data.Foldable.Foldable Program where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Program where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Program where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PropertySignature a = PropertySignature\n  { ann :: a,\n    name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)),\n    type' :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    extraChildren :: ([AST.Parse.Err ((AccessibilityModifier GHC.Generics.:+: Readonly) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_921.\n      AST.Traversable1.Class.Traversable1 a_921\n    )\n\ninstance AST.Unmarshal.SymbolMatching PropertySignature where\n  matchedSymbols _ = [278]\n  showFailure _ node_922 =\n    \"expected \"\n      GHC.Base.<> ( \"property_signature\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_922 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_922) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_923 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_924 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_925 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_926 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_923\n        c1_924 = TreeSitter.Node.nodeStartPoint node_922\n      TreeSitter.Node.TSPoint\n        r2_925\n        c2_926 = TreeSitter.Node.nodeEndPoint node_922\n\nderiving instance GHC.Classes.Eq a_927 => GHC.Classes.Eq (PropertySignature a_927)\n\nderiving instance GHC.Classes.Ord a_928 => GHC.Classes.Ord (PropertySignature a_928)\n\nderiving instance GHC.Show.Show a_929 => GHC.Show.Show (PropertySignature a_929)\n\ninstance AST.Unmarshal.Unmarshal PropertySignature\n\ninstance Data.Foldable.Foldable PropertySignature where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PropertySignature where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PropertySignature where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PublicFieldDefinition a = PublicFieldDefinition\n  { ann :: a,\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)),\n    type' :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    extraChildren :: ([AST.Parse.Err ((AccessibilityModifier GHC.Generics.:+: Readonly) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_930.\n      AST.Traversable1.Class.Traversable1 a_930\n    )\n\ninstance AST.Unmarshal.SymbolMatching PublicFieldDefinition where\n  matchedSymbols _ = [228]\n  showFailure _ node_931 =\n    \"expected \"\n      GHC.Base.<> ( \"public_field_definition\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_931 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_931) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_932 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_933 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_934 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_935 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_932\n        c1_933 = TreeSitter.Node.nodeStartPoint node_931\n      TreeSitter.Node.TSPoint\n        r2_934\n        c2_935 = TreeSitter.Node.nodeEndPoint node_931\n\nderiving instance GHC.Classes.Eq a_936 => GHC.Classes.Eq (PublicFieldDefinition a_936)\n\nderiving instance GHC.Classes.Ord a_937 => GHC.Classes.Ord (PublicFieldDefinition a_937)\n\nderiving instance GHC.Show.Show a_938 => GHC.Show.Show (PublicFieldDefinition a_938)\n\ninstance AST.Unmarshal.Unmarshal PublicFieldDefinition\n\ninstance Data.Foldable.Foldable PublicFieldDefinition where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PublicFieldDefinition where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PublicFieldDefinition where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Regex a = Regex\n  { ann :: a,\n    flags :: (GHC.Maybe.Maybe (AST.Parse.Err (RegexFlags a))),\n    pattern :: (AST.Parse.Err (RegexPattern a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_939.\n      AST.Traversable1.Class.Traversable1 a_939\n    )\n\ninstance AST.Unmarshal.SymbolMatching Regex where\n  matchedSymbols _ = [221]\n  showFailure _ node_940 =\n    \"expected \"\n      GHC.Base.<> ( \"regex\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_940 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_940) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_941 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_942 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_943 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_944 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_941\n        c1_942 = TreeSitter.Node.nodeStartPoint node_940\n      TreeSitter.Node.TSPoint\n        r2_943\n        c2_944 = TreeSitter.Node.nodeEndPoint node_940\n\nderiving instance GHC.Classes.Eq a_945 => GHC.Classes.Eq (Regex a_945)\n\nderiving instance GHC.Classes.Ord a_946 => GHC.Classes.Ord (Regex a_946)\n\nderiving instance GHC.Show.Show a_947 => GHC.Show.Show (Regex a_947)\n\ninstance AST.Unmarshal.Unmarshal Regex\n\ninstance Data.Foldable.Foldable Regex where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Regex where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Regex where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata RequiredParameter a = RequiredParameter\n  { ann :: a,\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: AccessibilityModifier GHC.Generics.:+: Identifier GHC.Generics.:+: Readonly GHC.Generics.:+: This GHC.Generics.:+: TypeAnnotation) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_948.\n      AST.Traversable1.Class.Traversable1 a_948\n    )\n\ninstance AST.Unmarshal.SymbolMatching RequiredParameter where\n  matchedSymbols _ = [256]\n  showFailure _ node_949 =\n    \"expected \"\n      GHC.Base.<> ( \"required_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_949 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_949) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_950 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_951 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_952 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_953 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_950\n        c1_951 = TreeSitter.Node.nodeStartPoint node_949\n      TreeSitter.Node.TSPoint\n        r2_952\n        c2_953 = TreeSitter.Node.nodeEndPoint node_949\n\nderiving instance GHC.Classes.Eq a_954 => GHC.Classes.Eq (RequiredParameter a_954)\n\nderiving instance GHC.Classes.Ord a_955 => GHC.Classes.Ord (RequiredParameter a_955)\n\nderiving instance GHC.Show.Show a_956 => GHC.Show.Show (RequiredParameter a_956)\n\ninstance AST.Unmarshal.Unmarshal RequiredParameter\n\ninstance Data.Foldable.Foldable RequiredParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RequiredParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RequiredParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata RestParameter a = RestParameter\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: TypeAnnotation) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_957.\n      AST.Traversable1.Class.Traversable1 a_957\n    )\n\ninstance AST.Unmarshal.SymbolMatching RestParameter where\n  matchedSymbols _ = [230]\n  showFailure _ node_958 =\n    \"expected \"\n      GHC.Base.<> ( \"rest_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_958 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_958) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_959 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_960 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_961 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_962 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_959\n        c1_960 = TreeSitter.Node.nodeStartPoint node_958\n      TreeSitter.Node.TSPoint\n        r2_961\n        c2_962 = TreeSitter.Node.nodeEndPoint node_958\n\nderiving instance GHC.Classes.Eq a_963 => GHC.Classes.Eq (RestParameter a_963)\n\nderiving instance GHC.Classes.Ord a_964 => GHC.Classes.Ord (RestParameter a_964)\n\nderiving instance GHC.Show.Show a_965 => GHC.Show.Show (RestParameter a_965)\n\ninstance AST.Unmarshal.Unmarshal RestParameter\n\ninstance Data.Foldable.Foldable RestParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RestParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RestParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ReturnStatement a = ReturnStatement\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_966.\n      AST.Traversable1.Class.Traversable1 a_966\n    )\n\ninstance AST.Unmarshal.SymbolMatching ReturnStatement where\n  matchedSymbols _ = [171]\n  showFailure _ node_967 =\n    \"expected \"\n      GHC.Base.<> ( \"return_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_967 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_967) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_968 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_969 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_970 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_971 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_968\n        c1_969 = TreeSitter.Node.nodeStartPoint node_967\n      TreeSitter.Node.TSPoint\n        r2_970\n        c2_971 = TreeSitter.Node.nodeEndPoint node_967\n\nderiving instance GHC.Classes.Eq a_972 => GHC.Classes.Eq (ReturnStatement a_972)\n\nderiving instance GHC.Classes.Ord a_973 => GHC.Classes.Ord (ReturnStatement a_973)\n\nderiving instance GHC.Show.Show a_974 => GHC.Show.Show (ReturnStatement a_974)\n\ninstance AST.Unmarshal.Unmarshal ReturnStatement\n\ninstance Data.Foldable.Foldable ReturnStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ReturnStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ReturnStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SequenceExpression a = SequenceExpression\n  { ann :: a,\n    left :: (AST.Parse.Err (Expression a)),\n    right :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_975.\n      AST.Traversable1.Class.Traversable1 a_975\n    )\n\ninstance AST.Unmarshal.SymbolMatching SequenceExpression where\n  matchedSymbols _ = [217]\n  showFailure _ node_976 =\n    \"expected \"\n      GHC.Base.<> ( \"sequence_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_976 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_976) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_977 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_978 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_979 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_980 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_977\n        c1_978 = TreeSitter.Node.nodeStartPoint node_976\n      TreeSitter.Node.TSPoint\n        r2_979\n        c2_980 = TreeSitter.Node.nodeEndPoint node_976\n\nderiving instance GHC.Classes.Eq a_981 => GHC.Classes.Eq (SequenceExpression a_981)\n\nderiving instance GHC.Classes.Ord a_982 => GHC.Classes.Ord (SequenceExpression a_982)\n\nderiving instance GHC.Show.Show a_983 => GHC.Show.Show (SequenceExpression a_983)\n\ninstance AST.Unmarshal.Unmarshal SequenceExpression\n\ninstance Data.Foldable.Foldable SequenceExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SequenceExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SequenceExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SpreadElement a = SpreadElement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_984.\n      AST.Traversable1.Class.Traversable1 a_984\n    )\n\ninstance AST.Unmarshal.SymbolMatching SpreadElement where\n  matchedSymbols _ = [212]\n  showFailure _ node_985 =\n    \"expected \"\n      GHC.Base.<> ( \"spread_element\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_985 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_985) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_986 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_987 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_988 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_989 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_986\n        c1_987 = TreeSitter.Node.nodeStartPoint node_985\n      TreeSitter.Node.TSPoint\n        r2_988\n        c2_989 = TreeSitter.Node.nodeEndPoint node_985\n\nderiving instance GHC.Classes.Eq a_990 => GHC.Classes.Eq (SpreadElement a_990)\n\nderiving instance GHC.Classes.Ord a_991 => GHC.Classes.Ord (SpreadElement a_991)\n\nderiving instance GHC.Show.Show a_992 => GHC.Show.Show (SpreadElement a_992)\n\ninstance AST.Unmarshal.Unmarshal SpreadElement\n\ninstance Data.Foldable.Foldable SpreadElement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SpreadElement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SpreadElement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata StatementBlock a = StatementBlock\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (Statement a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_993.\n      AST.Traversable1.Class.Traversable1 a_993\n    )\n\ninstance AST.Unmarshal.SymbolMatching StatementBlock where\n  matchedSymbols _ = [158]\n  showFailure _ node_994 =\n    \"expected \"\n      GHC.Base.<> ( \"statement_block\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_994 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_994) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_995 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_996 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_997 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_998 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_995\n        c1_996 = TreeSitter.Node.nodeStartPoint node_994\n      TreeSitter.Node.TSPoint\n        r2_997\n        c2_998 = TreeSitter.Node.nodeEndPoint node_994\n\nderiving instance GHC.Classes.Eq a_999 => GHC.Classes.Eq (StatementBlock a_999)\n\nderiving instance GHC.Classes.Ord a_1000 => GHC.Classes.Ord (StatementBlock a_1000)\n\nderiving instance GHC.Show.Show a_1001 => GHC.Show.Show (StatementBlock a_1001)\n\ninstance AST.Unmarshal.Unmarshal StatementBlock\n\ninstance Data.Foldable.Foldable StatementBlock where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor StatementBlock where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable StatementBlock where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata String a = String\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (EscapeSequence a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1002.\n      AST.Traversable1.Class.Traversable1 a_1002\n    )\n\ninstance AST.Unmarshal.SymbolMatching String where\n  matchedSymbols _ = [218]\n  showFailure _ node_1003 =\n    \"expected \"\n      GHC.Base.<> ( \"string\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1003 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1003) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1004 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1005 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1006 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1007 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1004\n        c1_1005 = TreeSitter.Node.nodeStartPoint node_1003\n      TreeSitter.Node.TSPoint\n        r2_1006\n        c2_1007 = TreeSitter.Node.nodeEndPoint node_1003\n\nderiving instance GHC.Classes.Eq a_1008 => GHC.Classes.Eq (String a_1008)\n\nderiving instance GHC.Classes.Ord a_1009 => GHC.Classes.Ord (String a_1009)\n\nderiving instance GHC.Show.Show a_1010 => GHC.Show.Show (String a_1010)\n\ninstance AST.Unmarshal.Unmarshal String\n\ninstance Data.Foldable.Foldable String where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor String where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable String where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SubscriptExpression a = SubscriptExpression\n  { ann :: a,\n    object :: (AST.Parse.Err (Expression a)),\n    index :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1011.\n      AST.Traversable1.Class.Traversable1 a_1011\n    )\n\ninstance AST.Unmarshal.SymbolMatching SubscriptExpression where\n  matchedSymbols _ = [208]\n  showFailure _ node_1012 =\n    \"expected \"\n      GHC.Base.<> ( \"subscript_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1012 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1012) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1013 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1014 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1015 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1016 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1013\n        c1_1014 = TreeSitter.Node.nodeStartPoint node_1012\n      TreeSitter.Node.TSPoint\n        r2_1015\n        c2_1016 = TreeSitter.Node.nodeEndPoint node_1012\n\nderiving instance GHC.Classes.Eq a_1017 => GHC.Classes.Eq (SubscriptExpression a_1017)\n\nderiving instance GHC.Classes.Ord a_1018 => GHC.Classes.Ord (SubscriptExpression a_1018)\n\nderiving instance GHC.Show.Show a_1019 => GHC.Show.Show (SubscriptExpression a_1019)\n\ninstance AST.Unmarshal.Unmarshal SubscriptExpression\n\ninstance Data.Foldable.Foldable SubscriptExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SubscriptExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SubscriptExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SwitchBody a = SwitchBody\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((SwitchCase GHC.Generics.:+: SwitchDefault) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1020.\n      AST.Traversable1.Class.Traversable1 a_1020\n    )\n\ninstance AST.Unmarshal.SymbolMatching SwitchBody where\n  matchedSymbols _ = [175]\n  showFailure _ node_1021 =\n    \"expected \"\n      GHC.Base.<> ( \"switch_body\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1021 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1021) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1022 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1023 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1024 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1025 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1022\n        c1_1023 = TreeSitter.Node.nodeStartPoint node_1021\n      TreeSitter.Node.TSPoint\n        r2_1024\n        c2_1025 = TreeSitter.Node.nodeEndPoint node_1021\n\nderiving instance GHC.Classes.Eq a_1026 => GHC.Classes.Eq (SwitchBody a_1026)\n\nderiving instance GHC.Classes.Ord a_1027 => GHC.Classes.Ord (SwitchBody a_1027)\n\nderiving instance GHC.Show.Show a_1028 => GHC.Show.Show (SwitchBody a_1028)\n\ninstance AST.Unmarshal.Unmarshal SwitchBody\n\ninstance Data.Foldable.Foldable SwitchBody where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SwitchBody where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SwitchBody where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SwitchCase a = SwitchCase\n  { ann :: a,\n    value :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)),\n    extraChildren :: ([AST.Parse.Err (Statement a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1029.\n      AST.Traversable1.Class.Traversable1 a_1029\n    )\n\ninstance AST.Unmarshal.SymbolMatching SwitchCase where\n  matchedSymbols _ = [176]\n  showFailure _ node_1030 =\n    \"expected \"\n      GHC.Base.<> ( \"switch_case\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1030 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1030) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1031 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1032 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1033 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1034 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1031\n        c1_1032 = TreeSitter.Node.nodeStartPoint node_1030\n      TreeSitter.Node.TSPoint\n        r2_1033\n        c2_1034 = TreeSitter.Node.nodeEndPoint node_1030\n\nderiving instance GHC.Classes.Eq a_1035 => GHC.Classes.Eq (SwitchCase a_1035)\n\nderiving instance GHC.Classes.Ord a_1036 => GHC.Classes.Ord (SwitchCase a_1036)\n\nderiving instance GHC.Show.Show a_1037 => GHC.Show.Show (SwitchCase a_1037)\n\ninstance AST.Unmarshal.Unmarshal SwitchCase\n\ninstance Data.Foldable.Foldable SwitchCase where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SwitchCase where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SwitchCase where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SwitchDefault a = SwitchDefault\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (Statement a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1038.\n      AST.Traversable1.Class.Traversable1 a_1038\n    )\n\ninstance AST.Unmarshal.SymbolMatching SwitchDefault where\n  matchedSymbols _ = [177]\n  showFailure _ node_1039 =\n    \"expected \"\n      GHC.Base.<> ( \"switch_default\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1039 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1039) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1040 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1041 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1042 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1043 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1040\n        c1_1041 = TreeSitter.Node.nodeStartPoint node_1039\n      TreeSitter.Node.TSPoint\n        r2_1042\n        c2_1043 = TreeSitter.Node.nodeEndPoint node_1039\n\nderiving instance GHC.Classes.Eq a_1044 => GHC.Classes.Eq (SwitchDefault a_1044)\n\nderiving instance GHC.Classes.Ord a_1045 => GHC.Classes.Ord (SwitchDefault a_1045)\n\nderiving instance GHC.Show.Show a_1046 => GHC.Show.Show (SwitchDefault a_1046)\n\ninstance AST.Unmarshal.Unmarshal SwitchDefault\n\ninstance Data.Foldable.Foldable SwitchDefault where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SwitchDefault where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SwitchDefault where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SwitchStatement a = SwitchStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (SwitchBody a)),\n    value :: (AST.Parse.Err (ParenthesizedExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1047.\n      AST.Traversable1.Class.Traversable1 a_1047\n    )\n\ninstance AST.Unmarshal.SymbolMatching SwitchStatement where\n  matchedSymbols _ = [160]\n  showFailure _ node_1048 =\n    \"expected \"\n      GHC.Base.<> ( \"switch_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1048 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1048) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1049 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1050 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1051 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1052 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1049\n        c1_1050 = TreeSitter.Node.nodeStartPoint node_1048\n      TreeSitter.Node.TSPoint\n        r2_1051\n        c2_1052 = TreeSitter.Node.nodeEndPoint node_1048\n\nderiving instance GHC.Classes.Eq a_1053 => GHC.Classes.Eq (SwitchStatement a_1053)\n\nderiving instance GHC.Classes.Ord a_1054 => GHC.Classes.Ord (SwitchStatement a_1054)\n\nderiving instance GHC.Show.Show a_1055 => GHC.Show.Show (SwitchStatement a_1055)\n\ninstance AST.Unmarshal.Unmarshal SwitchStatement\n\ninstance Data.Foldable.Foldable SwitchStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SwitchStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SwitchStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TemplateString a = TemplateString\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((EscapeSequence GHC.Generics.:+: TemplateSubstitution) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1056.\n      AST.Traversable1.Class.Traversable1 a_1056\n    )\n\ninstance AST.Unmarshal.SymbolMatching TemplateString where\n  matchedSymbols _ = [219]\n  showFailure _ node_1057 =\n    \"expected \"\n      GHC.Base.<> ( \"template_string\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1057 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1057) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1058 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1059 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1060 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1061 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1058\n        c1_1059 = TreeSitter.Node.nodeStartPoint node_1057\n      TreeSitter.Node.TSPoint\n        r2_1060\n        c2_1061 = TreeSitter.Node.nodeEndPoint node_1057\n\nderiving instance GHC.Classes.Eq a_1062 => GHC.Classes.Eq (TemplateString a_1062)\n\nderiving instance GHC.Classes.Ord a_1063 => GHC.Classes.Ord (TemplateString a_1063)\n\nderiving instance GHC.Show.Show a_1064 => GHC.Show.Show (TemplateString a_1064)\n\ninstance AST.Unmarshal.Unmarshal TemplateString\n\ninstance Data.Foldable.Foldable TemplateString where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TemplateString where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TemplateString where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TemplateSubstitution a = TemplateSubstitution\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1065.\n      AST.Traversable1.Class.Traversable1 a_1065\n    )\n\ninstance AST.Unmarshal.SymbolMatching TemplateSubstitution where\n  matchedSymbols _ = [220]\n  showFailure _ node_1066 =\n    \"expected \"\n      GHC.Base.<> ( \"template_substitution\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1066 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1066) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1067 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1068 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1069 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1070 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1067\n        c1_1068 = TreeSitter.Node.nodeStartPoint node_1066\n      TreeSitter.Node.TSPoint\n        r2_1069\n        c2_1070 = TreeSitter.Node.nodeEndPoint node_1066\n\nderiving instance GHC.Classes.Eq a_1071 => GHC.Classes.Eq (TemplateSubstitution a_1071)\n\nderiving instance GHC.Classes.Ord a_1072 => GHC.Classes.Ord (TemplateSubstitution a_1072)\n\nderiving instance GHC.Show.Show a_1073 => GHC.Show.Show (TemplateSubstitution a_1073)\n\ninstance AST.Unmarshal.Unmarshal TemplateSubstitution\n\ninstance Data.Foldable.Foldable TemplateSubstitution where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TemplateSubstitution where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TemplateSubstitution where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TernaryExpression a = TernaryExpression\n  { ann :: a,\n    alternative :: (AST.Parse.Err (Expression a)),\n    consequence :: (AST.Parse.Err (Expression a)),\n    condition :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1074.\n      AST.Traversable1.Class.Traversable1 a_1074\n    )\n\ninstance AST.Unmarshal.SymbolMatching TernaryExpression where\n  matchedSymbols _ = [213]\n  showFailure _ node_1075 =\n    \"expected \"\n      GHC.Base.<> ( \"ternary_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1075 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1075) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1076 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1077 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1078 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1079 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1076\n        c1_1077 = TreeSitter.Node.nodeStartPoint node_1075\n      TreeSitter.Node.TSPoint\n        r2_1078\n        c2_1079 = TreeSitter.Node.nodeEndPoint node_1075\n\nderiving instance GHC.Classes.Eq a_1080 => GHC.Classes.Eq (TernaryExpression a_1080)\n\nderiving instance GHC.Classes.Ord a_1081 => GHC.Classes.Ord (TernaryExpression a_1081)\n\nderiving instance GHC.Show.Show a_1082 => GHC.Show.Show (TernaryExpression a_1082)\n\ninstance AST.Unmarshal.Unmarshal TernaryExpression\n\ninstance Data.Foldable.Foldable TernaryExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TernaryExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TernaryExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ThrowStatement a = ThrowStatement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1083.\n      AST.Traversable1.Class.Traversable1 a_1083\n    )\n\ninstance AST.Unmarshal.SymbolMatching ThrowStatement where\n  matchedSymbols _ = [172]\n  showFailure _ node_1084 =\n    \"expected \"\n      GHC.Base.<> ( \"throw_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1084 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1084) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1085 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1086 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1087 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1088 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1085\n        c1_1086 = TreeSitter.Node.nodeStartPoint node_1084\n      TreeSitter.Node.TSPoint\n        r2_1087\n        c2_1088 = TreeSitter.Node.nodeEndPoint node_1084\n\nderiving instance GHC.Classes.Eq a_1089 => GHC.Classes.Eq (ThrowStatement a_1089)\n\nderiving instance GHC.Classes.Ord a_1090 => GHC.Classes.Ord (ThrowStatement a_1090)\n\nderiving instance GHC.Show.Show a_1091 => GHC.Show.Show (ThrowStatement a_1091)\n\ninstance AST.Unmarshal.Unmarshal ThrowStatement\n\ninstance Data.Foldable.Foldable ThrowStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ThrowStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ThrowStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TryStatement a = TryStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (StatementBlock a)),\n    handler :: (GHC.Maybe.Maybe (AST.Parse.Err (CatchClause a))),\n    finalizer :: (GHC.Maybe.Maybe (AST.Parse.Err (FinallyClause a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1092.\n      AST.Traversable1.Class.Traversable1 a_1092\n    )\n\ninstance AST.Unmarshal.SymbolMatching TryStatement where\n  matchedSymbols _ = [166]\n  showFailure _ node_1093 =\n    \"expected \"\n      GHC.Base.<> ( \"try_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1093 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1093) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1094 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1095 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1096 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1097 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1094\n        c1_1095 = TreeSitter.Node.nodeStartPoint node_1093\n      TreeSitter.Node.TSPoint\n        r2_1096\n        c2_1097 = TreeSitter.Node.nodeEndPoint node_1093\n\nderiving instance GHC.Classes.Eq a_1098 => GHC.Classes.Eq (TryStatement a_1098)\n\nderiving instance GHC.Classes.Ord a_1099 => GHC.Classes.Ord (TryStatement a_1099)\n\nderiving instance GHC.Show.Show a_1100 => GHC.Show.Show (TryStatement a_1100)\n\ninstance AST.Unmarshal.Unmarshal TryStatement\n\ninstance Data.Foldable.Foldable TryStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TryStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TryStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TupleType a = TupleType\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1101.\n      AST.Traversable1.Class.Traversable1 a_1101\n    )\n\ninstance AST.Unmarshal.SymbolMatching TupleType where\n  matchedSymbols _ = [286]\n  showFailure _ node_1102 =\n    \"expected \"\n      GHC.Base.<> ( \"tuple_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1102 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1102) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1103 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1104 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1105 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1106 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1103\n        c1_1104 = TreeSitter.Node.nodeStartPoint node_1102\n      TreeSitter.Node.TSPoint\n        r2_1105\n        c2_1106 = TreeSitter.Node.nodeEndPoint node_1102\n\nderiving instance GHC.Classes.Eq a_1107 => GHC.Classes.Eq (TupleType a_1107)\n\nderiving instance GHC.Classes.Ord a_1108 => GHC.Classes.Ord (TupleType a_1108)\n\nderiving instance GHC.Show.Show a_1109 => GHC.Show.Show (TupleType a_1109)\n\ninstance AST.Unmarshal.Unmarshal TupleType\n\ninstance Data.Foldable.Foldable TupleType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TupleType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TupleType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeAliasDeclaration a = TypeAliasDeclaration\n  { ann :: a,\n    value :: (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)),\n    name :: (AST.Parse.Err (TypeIdentifier a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1110.\n      AST.Traversable1.Class.Traversable1 a_1110\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeAliasDeclaration where\n  matchedSymbols _ = [254]\n  showFailure _ node_1111 =\n    \"expected \"\n      GHC.Base.<> ( \"type_alias_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1111 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1111) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1112 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1113 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1114 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1115 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1112\n        c1_1113 = TreeSitter.Node.nodeStartPoint node_1111\n      TreeSitter.Node.TSPoint\n        r2_1114\n        c2_1115 = TreeSitter.Node.nodeEndPoint node_1111\n\nderiving instance GHC.Classes.Eq a_1116 => GHC.Classes.Eq (TypeAliasDeclaration a_1116)\n\nderiving instance GHC.Classes.Ord a_1117 => GHC.Classes.Ord (TypeAliasDeclaration a_1117)\n\nderiving instance GHC.Show.Show a_1118 => GHC.Show.Show (TypeAliasDeclaration a_1118)\n\ninstance AST.Unmarshal.Unmarshal TypeAliasDeclaration\n\ninstance Data.Foldable.Foldable TypeAliasDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeAliasDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeAliasDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeAnnotation a = TypeAnnotation\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1119.\n      AST.Traversable1.Class.Traversable1 a_1119\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeAnnotation where\n  matchedSymbols _ = [259]\n  showFailure _ node_1120 =\n    \"expected \"\n      GHC.Base.<> ( \"type_annotation\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1120 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1120) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1121 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1122 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1123 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1124 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1121\n        c1_1122 = TreeSitter.Node.nodeStartPoint node_1120\n      TreeSitter.Node.TSPoint\n        r2_1123\n        c2_1124 = TreeSitter.Node.nodeEndPoint node_1120\n\nderiving instance GHC.Classes.Eq a_1125 => GHC.Classes.Eq (TypeAnnotation a_1125)\n\nderiving instance GHC.Classes.Ord a_1126 => GHC.Classes.Ord (TypeAnnotation a_1126)\n\nderiving instance GHC.Show.Show a_1127 => GHC.Show.Show (TypeAnnotation a_1127)\n\ninstance AST.Unmarshal.Unmarshal TypeAnnotation\n\ninstance Data.Foldable.Foldable TypeAnnotation where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeAnnotation where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeAnnotation where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeArguments a = TypeArguments\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1128.\n      AST.Traversable1.Class.Traversable1 a_1128\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeArguments where\n  matchedSymbols _ = [275]\n  showFailure _ node_1129 =\n    \"expected \"\n      GHC.Base.<> ( \"type_arguments\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1129 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1129) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1130 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1131 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1132 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1133 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1130\n        c1_1131 = TreeSitter.Node.nodeStartPoint node_1129\n      TreeSitter.Node.TSPoint\n        r2_1132\n        c2_1133 = TreeSitter.Node.nodeEndPoint node_1129\n\nderiving instance GHC.Classes.Eq a_1134 => GHC.Classes.Eq (TypeArguments a_1134)\n\nderiving instance GHC.Classes.Ord a_1135 => GHC.Classes.Ord (TypeArguments a_1135)\n\nderiving instance GHC.Show.Show a_1136 => GHC.Show.Show (TypeArguments a_1136)\n\ninstance AST.Unmarshal.Unmarshal TypeArguments\n\ninstance Data.Foldable.Foldable TypeArguments where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeArguments where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeArguments where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeParameter a = TypeParameter\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Constraint GHC.Generics.:+: DefaultType GHC.Generics.:+: TypeIdentifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1137.\n      AST.Traversable1.Class.Traversable1 a_1137\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeParameter where\n  matchedSymbols _ = [280]\n  showFailure _ node_1138 =\n    \"expected \"\n      GHC.Base.<> ( \"type_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1138 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1138) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1139 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1140 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1141 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1142 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1139\n        c1_1140 = TreeSitter.Node.nodeStartPoint node_1138\n      TreeSitter.Node.TSPoint\n        r2_1141\n        c2_1142 = TreeSitter.Node.nodeEndPoint node_1138\n\nderiving instance GHC.Classes.Eq a_1143 => GHC.Classes.Eq (TypeParameter a_1143)\n\nderiving instance GHC.Classes.Ord a_1144 => GHC.Classes.Ord (TypeParameter a_1144)\n\nderiving instance GHC.Show.Show a_1145 => GHC.Show.Show (TypeParameter a_1145)\n\ninstance AST.Unmarshal.Unmarshal TypeParameter\n\ninstance Data.Foldable.Foldable TypeParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeParameters a = TypeParameters\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (TypeParameter a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1146.\n      AST.Traversable1.Class.Traversable1 a_1146\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeParameters where\n  matchedSymbols _ = [279]\n  showFailure _ node_1147 =\n    \"expected \"\n      GHC.Base.<> ( \"type_parameters\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1147 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1147) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1148 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1149 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1150 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1151 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1148\n        c1_1149 = TreeSitter.Node.nodeStartPoint node_1147\n      TreeSitter.Node.TSPoint\n        r2_1150\n        c2_1151 = TreeSitter.Node.nodeEndPoint node_1147\n\nderiving instance GHC.Classes.Eq a_1152 => GHC.Classes.Eq (TypeParameters a_1152)\n\nderiving instance GHC.Classes.Ord a_1153 => GHC.Classes.Ord (TypeParameters a_1153)\n\nderiving instance GHC.Show.Show a_1154 => GHC.Show.Show (TypeParameters a_1154)\n\ninstance AST.Unmarshal.Unmarshal TypeParameters\n\ninstance Data.Foldable.Foldable TypeParameters where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeParameters where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeParameters where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypePredicate a = TypePredicate\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: Identifier GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1155.\n      AST.Traversable1.Class.Traversable1 a_1155\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypePredicate where\n  matchedSymbols _ = [264]\n  showFailure _ node_1156 =\n    \"expected \"\n      GHC.Base.<> ( \"type_predicate\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1156 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1156) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1157 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1158 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1159 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1160 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1157\n        c1_1158 = TreeSitter.Node.nodeStartPoint node_1156\n      TreeSitter.Node.TSPoint\n        r2_1159\n        c2_1160 = TreeSitter.Node.nodeEndPoint node_1156\n\nderiving instance GHC.Classes.Eq a_1161 => GHC.Classes.Eq (TypePredicate a_1161)\n\nderiving instance GHC.Classes.Ord a_1162 => GHC.Classes.Ord (TypePredicate a_1162)\n\nderiving instance GHC.Show.Show a_1163 => GHC.Show.Show (TypePredicate a_1163)\n\ninstance AST.Unmarshal.Unmarshal TypePredicate\n\ninstance Data.Foldable.Foldable TypePredicate where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypePredicate where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypePredicate where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeQuery a = TypeQuery\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1164.\n      AST.Traversable1.Class.Traversable1 a_1164\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeQuery where\n  matchedSymbols _ = [265]\n  showFailure _ node_1165 =\n    \"expected \"\n      GHC.Base.<> ( \"type_query\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1165 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1165) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1166 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1167 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1168 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1169 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1166\n        c1_1167 = TreeSitter.Node.nodeStartPoint node_1165\n      TreeSitter.Node.TSPoint\n        r2_1168\n        c2_1169 = TreeSitter.Node.nodeEndPoint node_1165\n\nderiving instance GHC.Classes.Eq a_1170 => GHC.Classes.Eq (TypeQuery a_1170)\n\nderiving instance GHC.Classes.Ord a_1171 => GHC.Classes.Ord (TypeQuery a_1171)\n\nderiving instance GHC.Show.Show a_1172 => GHC.Show.Show (TypeQuery a_1172)\n\ninstance AST.Unmarshal.Unmarshal TypeQuery\n\ninstance Data.Foldable.Foldable TypeQuery where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeQuery where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeQuery where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UnaryExpression a = UnaryExpression\n  { ann :: a,\n    operator :: (AST.Parse.Err ((AnonymousBang GHC.Generics.:+: AnonymousPlus GHC.Generics.:+: AnonymousMinus GHC.Generics.:+: AnonymousDelete GHC.Generics.:+: AnonymousTypeof GHC.Generics.:+: AnonymousVoid GHC.Generics.:+: AnonymousTilde) a)),\n    argument :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1173.\n      AST.Traversable1.Class.Traversable1 a_1173\n    )\n\ninstance AST.Unmarshal.SymbolMatching UnaryExpression where\n  matchedSymbols _ = [215, 270]\n  showFailure _ node_1174 =\n    \"expected \"\n      GHC.Base.<> ( \"unary_expression, unary_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1174 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1174) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1175 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1176 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1177 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1178 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1175\n        c1_1176 = TreeSitter.Node.nodeStartPoint node_1174\n      TreeSitter.Node.TSPoint\n        r2_1177\n        c2_1178 = TreeSitter.Node.nodeEndPoint node_1174\n\nderiving instance GHC.Classes.Eq a_1179 => GHC.Classes.Eq (UnaryExpression a_1179)\n\nderiving instance GHC.Classes.Ord a_1180 => GHC.Classes.Ord (UnaryExpression a_1180)\n\nderiving instance GHC.Show.Show a_1181 => GHC.Show.Show (UnaryExpression a_1181)\n\ninstance AST.Unmarshal.Unmarshal UnaryExpression\n\ninstance Data.Foldable.Foldable UnaryExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UnaryExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UnaryExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UnionType a = UnionType\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1182.\n      AST.Traversable1.Class.Traversable1 a_1182\n    )\n\ninstance AST.Unmarshal.SymbolMatching UnionType where\n  matchedSymbols _ = [287]\n  showFailure _ node_1183 =\n    \"expected \"\n      GHC.Base.<> ( \"union_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1183 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1183) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1184 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1185 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1186 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1187 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1184\n        c1_1185 = TreeSitter.Node.nodeStartPoint node_1183\n      TreeSitter.Node.TSPoint\n        r2_1186\n        c2_1187 = TreeSitter.Node.nodeEndPoint node_1183\n\nderiving instance GHC.Classes.Eq a_1188 => GHC.Classes.Eq (UnionType a_1188)\n\nderiving instance GHC.Classes.Ord a_1189 => GHC.Classes.Ord (UnionType a_1189)\n\nderiving instance GHC.Show.Show a_1190 => GHC.Show.Show (UnionType a_1190)\n\ninstance AST.Unmarshal.Unmarshal UnionType\n\ninstance Data.Foldable.Foldable UnionType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UnionType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UnionType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UpdateExpression a = UpdateExpression\n  { ann :: a,\n    operator :: (AST.Parse.Err ((AnonymousPlusPlus GHC.Generics.:+: AnonymousMinusMinus) a)),\n    argument :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1191.\n      AST.Traversable1.Class.Traversable1 a_1191\n    )\n\ninstance AST.Unmarshal.SymbolMatching UpdateExpression where\n  matchedSymbols _ = [216]\n  showFailure _ node_1192 =\n    \"expected \"\n      GHC.Base.<> ( \"update_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1192 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1192) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1193 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1194 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1195 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1196 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1193\n        c1_1194 = TreeSitter.Node.nodeStartPoint node_1192\n      TreeSitter.Node.TSPoint\n        r2_1195\n        c2_1196 = TreeSitter.Node.nodeEndPoint node_1192\n\nderiving instance GHC.Classes.Eq a_1197 => GHC.Classes.Eq (UpdateExpression a_1197)\n\nderiving instance GHC.Classes.Ord a_1198 => GHC.Classes.Ord (UpdateExpression a_1198)\n\nderiving instance GHC.Show.Show a_1199 => GHC.Show.Show (UpdateExpression a_1199)\n\ninstance AST.Unmarshal.Unmarshal UpdateExpression\n\ninstance Data.Foldable.Foldable UpdateExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UpdateExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UpdateExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata VariableDeclaration a = VariableDeclaration\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (VariableDeclarator a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1200.\n      AST.Traversable1.Class.Traversable1 a_1200\n    )\n\ninstance AST.Unmarshal.SymbolMatching VariableDeclaration where\n  matchedSymbols _ = [155]\n  showFailure _ node_1201 =\n    \"expected \"\n      GHC.Base.<> ( \"variable_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1201 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1201) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1202 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1203 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1204 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1205 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1202\n        c1_1203 = TreeSitter.Node.nodeStartPoint node_1201\n      TreeSitter.Node.TSPoint\n        r2_1204\n        c2_1205 = TreeSitter.Node.nodeEndPoint node_1201\n\nderiving instance GHC.Classes.Eq a_1206 => GHC.Classes.Eq (VariableDeclaration a_1206)\n\nderiving instance GHC.Classes.Ord a_1207 => GHC.Classes.Ord (VariableDeclaration a_1207)\n\nderiving instance GHC.Show.Show a_1208 => GHC.Show.Show (VariableDeclaration a_1208)\n\ninstance AST.Unmarshal.Unmarshal VariableDeclaration\n\ninstance Data.Foldable.Foldable VariableDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor VariableDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable VariableDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata VariableDeclarator a = VariableDeclarator\n  { ann :: a,\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    name :: (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: Identifier) a)),\n    type' :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1209.\n      AST.Traversable1.Class.Traversable1 a_1209\n    )\n\ninstance AST.Unmarshal.SymbolMatching VariableDeclarator where\n  matchedSymbols _ = [157]\n  showFailure _ node_1210 =\n    \"expected \"\n      GHC.Base.<> ( \"variable_declarator\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1210 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1210) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1211 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1212 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1213 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1214 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1211\n        c1_1212 = TreeSitter.Node.nodeStartPoint node_1210\n      TreeSitter.Node.TSPoint\n        r2_1213\n        c2_1214 = TreeSitter.Node.nodeEndPoint node_1210\n\nderiving instance GHC.Classes.Eq a_1215 => GHC.Classes.Eq (VariableDeclarator a_1215)\n\nderiving instance GHC.Classes.Ord a_1216 => GHC.Classes.Ord (VariableDeclarator a_1216)\n\nderiving instance GHC.Show.Show a_1217 => GHC.Show.Show (VariableDeclarator a_1217)\n\ninstance AST.Unmarshal.Unmarshal VariableDeclarator\n\ninstance Data.Foldable.Foldable VariableDeclarator where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor VariableDeclarator where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable VariableDeclarator where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata WhileStatement a = WhileStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (Statement a)),\n    condition :: (AST.Parse.Err (ParenthesizedExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1218.\n      AST.Traversable1.Class.Traversable1 a_1218\n    )\n\ninstance AST.Unmarshal.SymbolMatching WhileStatement where\n  matchedSymbols _ = [164]\n  showFailure _ node_1219 =\n    \"expected \"\n      GHC.Base.<> ( \"while_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1219 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1219) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1220 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1221 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1222 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1223 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1220\n        c1_1221 = TreeSitter.Node.nodeStartPoint node_1219\n      TreeSitter.Node.TSPoint\n        r2_1222\n        c2_1223 = TreeSitter.Node.nodeEndPoint node_1219\n\nderiving instance GHC.Classes.Eq a_1224 => GHC.Classes.Eq (WhileStatement a_1224)\n\nderiving instance GHC.Classes.Ord a_1225 => GHC.Classes.Ord (WhileStatement a_1225)\n\nderiving instance GHC.Show.Show a_1226 => GHC.Show.Show (WhileStatement a_1226)\n\ninstance AST.Unmarshal.Unmarshal WhileStatement\n\ninstance Data.Foldable.Foldable WhileStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor WhileStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable WhileStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata WithStatement a = WithStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (Statement a)),\n    object :: (AST.Parse.Err (ParenthesizedExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1227.\n      AST.Traversable1.Class.Traversable1 a_1227\n    )\n\ninstance AST.Unmarshal.SymbolMatching WithStatement where\n  matchedSymbols _ = [167]\n  showFailure _ node_1228 =\n    \"expected \"\n      GHC.Base.<> ( \"with_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1228 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1228) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1229 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1230 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1231 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1232 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1229\n        c1_1230 = TreeSitter.Node.nodeStartPoint node_1228\n      TreeSitter.Node.TSPoint\n        r2_1231\n        c2_1232 = TreeSitter.Node.nodeEndPoint node_1228\n\nderiving instance GHC.Classes.Eq a_1233 => GHC.Classes.Eq (WithStatement a_1233)\n\nderiving instance GHC.Classes.Ord a_1234 => GHC.Classes.Ord (WithStatement a_1234)\n\nderiving instance GHC.Show.Show a_1235 => GHC.Show.Show (WithStatement a_1235)\n\ninstance AST.Unmarshal.Unmarshal WithStatement\n\ninstance Data.Foldable.Foldable WithStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor WithStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable WithStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata YieldExpression a = YieldExpression\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1236.\n      AST.Traversable1.Class.Traversable1 a_1236\n    )\n\ninstance AST.Unmarshal.SymbolMatching YieldExpression where\n  matchedSymbols _ = [182]\n  showFailure _ node_1237 =\n    \"expected \"\n      GHC.Base.<> ( \"yield_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1237 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1237) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1238 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1239 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1240 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1241 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1238\n        c1_1239 = TreeSitter.Node.nodeStartPoint node_1237\n      TreeSitter.Node.TSPoint\n        r2_1240\n        c2_1241 = TreeSitter.Node.nodeEndPoint node_1237\n\nderiving instance GHC.Classes.Eq a_1242 => GHC.Classes.Eq (YieldExpression a_1242)\n\nderiving instance GHC.Classes.Ord a_1243 => GHC.Classes.Ord (YieldExpression a_1243)\n\nderiving instance GHC.Show.Show a_1244 => GHC.Show.Show (YieldExpression a_1244)\n\ninstance AST.Unmarshal.Unmarshal YieldExpression\n\ninstance Data.Foldable.Foldable YieldExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor YieldExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable YieldExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousBang = AST.Token.Token \"!\" 90\n\ntype AnonymousBangEqual = AST.Token.Token \"!=\" 85\n\ntype AnonymousBangEqualEqual = AST.Token.Token \"!==\" 86\n\ntype AnonymousDQuote = AST.Token.Token \"\\\"\" 96\n\ntype AnonymousDollarLBrace = AST.Token.Token \"${\" 103\n\ntype AnonymousPercent = AST.Token.Token \"%\" 80\n\ntype AnonymousPercentEqual = AST.Token.Token \"%=\" 60\n\ntype AnonymousAmpersand = AST.Token.Token \"&\" 75\n\ntype AnonymousAmpersandAmpersand = AST.Token.Token \"&&\" 70\n\ntype AnonymousAmpersandEqual = AST.Token.Token \"&=\" 62\n\ntype AnonymousSQuote = AST.Token.Token \"'\" 98\n\ntype AnonymousLParen = AST.Token.Token \"(\" 23\n\ntype AnonymousRParen = AST.Token.Token \")\" 24\n\ntype AnonymousStar = AST.Token.Token \"*\" 4\n\ntype AnonymousStarStar = AST.Token.Token \"**\" 81\n\ntype AnonymousStarStarEqual = AST.Token.Token \"**=\" 67\n\ntype AnonymousStarEqual = AST.Token.Token \"*=\" 58\n\ntype AnonymousPlus = AST.Token.Token \"+\" 78\n\ntype AnonymousPlusPlus = AST.Token.Token \"++\" 94\n\ntype AnonymousPlusEqual = AST.Token.Token \"+=\" 56\n\ntype AnonymousComma = AST.Token.Token \",\" 10\n\ntype AnonymousMinus = AST.Token.Token \"-\" 79\n\ntype AnonymousMinusMinus = AST.Token.Token \"--\" 95\n\ntype AnonymousMinusEqual = AST.Token.Token \"-=\" 57\n\ntype AnonymousDot = AST.Token.Token \".\" 50\n\ntype AnonymousDotDotDot = AST.Token.Token \"...\" 68\n\ntype AnonymousSlash = AST.Token.Token \"/\" 47\n\ntype AnonymousSlashEqual = AST.Token.Token \"/=\" 59\n\ntype AnonymousColon = AST.Token.Token \":\" 38\n\ntype AnonymousSemicolon = AST.Token.Token \";\" 37\n\ntype AnonymousLAngle = AST.Token.Token \"<\" 45\n\ntype AnonymousLAngleLAngle = AST.Token.Token \"<<\" 74\n\ntype AnonymousLAngleLAngleEqual = AST.Token.Token \"<<=\" 66\n\ntype AnonymousLAngleEqual = AST.Token.Token \"<=\" 82\n\ntype AnonymousEqual = AST.Token.Token \"=\" 6\n\ntype AnonymousEqualEqual = AST.Token.Token \"==\" 83\n\ntype AnonymousEqualEqualEqual = AST.Token.Token \"===\" 84\n\ntype AnonymousEqualRAngle = AST.Token.Token \"=>\" 54\n\ntype AnonymousRAngle = AST.Token.Token \">\" 46\n\ntype AnonymousRAngleEqual = AST.Token.Token \">=\" 87\n\ntype AnonymousRAngleRAngle = AST.Token.Token \">>\" 72\n\ntype AnonymousRAngleRAngleEqual = AST.Token.Token \">>=\" 64\n\ntype AnonymousRAngleRAngleRAngle = AST.Token.Token \">>>\" 73\n\ntype AnonymousRAngleRAngleRAngleEqual = AST.Token.Token \">>>=\" 65\n\ntype AnonymousQuestion = AST.Token.Token \"?\" 69\n\ntype AnonymousQuestionQuestion = AST.Token.Token \"??\" 88\n\ntype AnonymousAt = AST.Token.Token \"@\" 115\n\ntype AnonymousLBracket = AST.Token.Token \"[\" 43\n\ntype AnonymousRBracket = AST.Token.Token \"]\" 44\n\ntype AnonymousCaret = AST.Token.Token \"^\" 76\n\ntype AnonymousCaretEqual = AST.Token.Token \"^=\" 61\n\ntype AnonymousBacktick = AST.Token.Token \"`\" 102\n\ntype AnonymousAbstract = AST.Token.Token \"abstract\" 117\n\ntype AnonymousAny = AST.Token.Token \"any\" 125\n\ntype AnonymousAs = AST.Token.Token \"as\" 7\n\ntype AnonymousAsync = AST.Token.Token \"async\" 52\n\ntype AnonymousAwait = AST.Token.Token \"await\" 25\n\ntype AnonymousBoolean = AST.Token.Token \"boolean\" 127\n\ntype AnonymousBreak = AST.Token.Token \"break\" 32\n\ntype AnonymousCase = AST.Token.Token \"case\" 39\n\ntype AnonymousCatch = AST.Token.Token \"catch\" 40\n\ntype AnonymousClass = AST.Token.Token \"class\" 51\n\ntype AnonymousConst = AST.Token.Token \"const\" 18\n\ntype AnonymousContinue = AST.Token.Token \"continue\" 33\n\ntype AnonymousDebugger = AST.Token.Token \"debugger\" 34\n\ntype AnonymousDeclare = AST.Token.Token \"declare\" 120\n\ntype AnonymousDefault = AST.Token.Token \"default\" 5\n\ntype AnonymousDelete = AST.Token.Token \"delete\" 93\n\ntype AnonymousDo = AST.Token.Token \"do\" 29\n\ntype AnonymousElse = AST.Token.Token \"else\" 20\n\ntype AnonymousEnum = AST.Token.Token \"enum\" 135\n\ndata EscapeSequence a = EscapeSequence {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1245.\n      AST.Traversable1.Class.Traversable1 a_1245\n    )\n\ninstance AST.Unmarshal.SymbolMatching EscapeSequence where\n  matchedSymbols _ = [100]\n  showFailure _ node_1246 =\n    \"expected \"\n      GHC.Base.<> ( \"escape_sequence\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1246 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1246) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1247 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1248 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1249 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1250 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1247\n        c1_1248 = TreeSitter.Node.nodeStartPoint node_1246\n      TreeSitter.Node.TSPoint\n        r2_1249\n        c2_1250 = TreeSitter.Node.nodeEndPoint node_1246\n\nderiving instance GHC.Classes.Eq a_1251 => GHC.Classes.Eq (EscapeSequence a_1251)\n\nderiving instance GHC.Classes.Ord a_1252 => GHC.Classes.Ord (EscapeSequence a_1252)\n\nderiving instance GHC.Show.Show a_1253 => GHC.Show.Show (EscapeSequence a_1253)\n\ninstance AST.Unmarshal.Unmarshal EscapeSequence\n\ninstance Data.Foldable.Foldable EscapeSequence where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EscapeSequence where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EscapeSequence where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousExport = AST.Token.Token \"export\" 3\n\ntype AnonymousExtends = AST.Token.Token \"extends\" 134\n\ndata False a = False {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1254.\n      AST.Traversable1.Class.Traversable1 a_1254\n    )\n\ninstance AST.Unmarshal.SymbolMatching False where\n  matchedSymbols _ = [112]\n  showFailure _ node_1255 =\n    \"expected \"\n      GHC.Base.<> ( \"false\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1255 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1255) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1256 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1257 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1258 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1259 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1256\n        c1_1257 = TreeSitter.Node.nodeStartPoint node_1255\n      TreeSitter.Node.TSPoint\n        r2_1258\n        c2_1259 = TreeSitter.Node.nodeEndPoint node_1255\n\nderiving instance GHC.Classes.Eq a_1260 => GHC.Classes.Eq (False a_1260)\n\nderiving instance GHC.Classes.Ord a_1261 => GHC.Classes.Ord (False a_1261)\n\nderiving instance GHC.Show.Show a_1262 => GHC.Show.Show (False a_1262)\n\ninstance AST.Unmarshal.Unmarshal False\n\ninstance Data.Foldable.Foldable False where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor False where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable False where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousFinally = AST.Token.Token \"finally\" 41\n\ntype AnonymousFor = AST.Token.Token \"for\" 22\n\ntype AnonymousFrom = AST.Token.Token \"from\" 15\n\ntype AnonymousFunction = AST.Token.Token \"function\" 53\n\ntype AnonymousGet = AST.Token.Token \"get\" 118\n\ntype AnonymousGlobal = AST.Token.Token \"global\" 132\n\ndata HashBangLine a = HashBangLine {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1263.\n      AST.Traversable1.Class.Traversable1 a_1263\n    )\n\ninstance AST.Unmarshal.SymbolMatching HashBangLine where\n  matchedSymbols _ = [2]\n  showFailure _ node_1264 =\n    \"expected \"\n      GHC.Base.<> ( \"hash_bang_line\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1264 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1264) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1265 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1266 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1267 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1268 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1265\n        c1_1266 = TreeSitter.Node.nodeStartPoint node_1264\n      TreeSitter.Node.TSPoint\n        r2_1267\n        c2_1268 = TreeSitter.Node.nodeEndPoint node_1264\n\nderiving instance GHC.Classes.Eq a_1269 => GHC.Classes.Eq (HashBangLine a_1269)\n\nderiving instance GHC.Classes.Ord a_1270 => GHC.Classes.Ord (HashBangLine a_1270)\n\nderiving instance GHC.Show.Show a_1271 => GHC.Show.Show (HashBangLine a_1271)\n\ninstance AST.Unmarshal.Unmarshal HashBangLine\n\ninstance Data.Foldable.Foldable HashBangLine where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor HashBangLine where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable HashBangLine where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Identifier a = Identifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1272.\n      AST.Traversable1.Class.Traversable1 a_1272\n    )\n\ninstance AST.Unmarshal.SymbolMatching Identifier where\n  matchedSymbols _ = [1, 49]\n  showFailure _ node_1273 =\n    \"expected \"\n      GHC.Base.<> ( \"identifier, identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1273 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1273) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1274 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1275 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1276 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1277 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1274\n        c1_1275 = TreeSitter.Node.nodeStartPoint node_1273\n      TreeSitter.Node.TSPoint\n        r2_1276\n        c2_1277 = TreeSitter.Node.nodeEndPoint node_1273\n\nderiving instance GHC.Classes.Eq a_1278 => GHC.Classes.Eq (Identifier a_1278)\n\nderiving instance GHC.Classes.Ord a_1279 => GHC.Classes.Ord (Identifier a_1279)\n\nderiving instance GHC.Show.Show a_1280 => GHC.Show.Show (Identifier a_1280)\n\ninstance AST.Unmarshal.Unmarshal Identifier\n\ninstance Data.Foldable.Foldable Identifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Identifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Identifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousIf = AST.Token.Token \"if\" 19\n\ntype AnonymousImplements = AST.Token.Token \"implements\" 131\n\ntype AnonymousImport = AST.Token.Token \"import\" 14\n\ntype AnonymousIn = AST.Token.Token \"in\" 26\n\ntype AnonymousInstanceof = AST.Token.Token \"instanceof\" 89\n\ntype AnonymousInterface = AST.Token.Token \"interface\" 133\n\ntype AnonymousIs = AST.Token.Token \"is\" 137\n\ndata JsxText a = JsxText {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1281.\n      AST.Traversable1.Class.Traversable1 a_1281\n    )\n\ninstance AST.Unmarshal.SymbolMatching JsxText where\n  matchedSymbols _ = [48]\n  showFailure _ node_1282 =\n    \"expected \"\n      GHC.Base.<> ( \"jsx_text\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1282 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1282) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1283 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1284 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1285 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1286 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1283\n        c1_1284 = TreeSitter.Node.nodeStartPoint node_1282\n      TreeSitter.Node.TSPoint\n        r2_1285\n        c2_1286 = TreeSitter.Node.nodeEndPoint node_1282\n\nderiving instance GHC.Classes.Eq a_1287 => GHC.Classes.Eq (JsxText a_1287)\n\nderiving instance GHC.Classes.Ord a_1288 => GHC.Classes.Ord (JsxText a_1288)\n\nderiving instance GHC.Show.Show a_1289 => GHC.Show.Show (JsxText a_1289)\n\ninstance AST.Unmarshal.Unmarshal JsxText\n\ninstance Data.Foldable.Foldable JsxText where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor JsxText where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable JsxText where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousKeyof = AST.Token.Token \"keyof\" 138\n\ntype AnonymousLet = AST.Token.Token \"let\" 17\n\ntype AnonymousModule = AST.Token.Token \"module\" 124\n\ntype AnonymousNamespace = AST.Token.Token \"namespace\" 8\n\ntype AnonymousNew = AST.Token.Token \"new\" 55\n\ndata Null a = Null {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1290.\n      AST.Traversable1.Class.Traversable1 a_1290\n    )\n\ninstance AST.Unmarshal.SymbolMatching Null where\n  matchedSymbols _ = [113]\n  showFailure _ node_1291 =\n    \"expected \"\n      GHC.Base.<> ( \"null\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1291 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1291) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1292 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1293 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1294 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1295 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1292\n        c1_1293 = TreeSitter.Node.nodeStartPoint node_1291\n      TreeSitter.Node.TSPoint\n        r2_1294\n        c2_1295 = TreeSitter.Node.nodeEndPoint node_1291\n\nderiving instance GHC.Classes.Eq a_1296 => GHC.Classes.Eq (Null a_1296)\n\nderiving instance GHC.Classes.Ord a_1297 => GHC.Classes.Ord (Null a_1297)\n\nderiving instance GHC.Show.Show a_1298 => GHC.Show.Show (Null a_1298)\n\ninstance AST.Unmarshal.Unmarshal Null\n\ninstance Data.Foldable.Foldable Null where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Null where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Null where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousNumber = AST.Token.Token \"number\" 126\n\ndata Number a = Number {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1299.\n      AST.Traversable1.Class.Traversable1 a_1299\n    )\n\ninstance AST.Unmarshal.SymbolMatching Number where\n  matchedSymbols _ = [107]\n  showFailure _ node_1300 =\n    \"expected \"\n      GHC.Base.<> ( \"number\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1300 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1300) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1301 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1302 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1303 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1304 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1301\n        c1_1302 = TreeSitter.Node.nodeStartPoint node_1300\n      TreeSitter.Node.TSPoint\n        r2_1303\n        c2_1304 = TreeSitter.Node.nodeEndPoint node_1300\n\nderiving instance GHC.Classes.Eq a_1305 => GHC.Classes.Eq (Number a_1305)\n\nderiving instance GHC.Classes.Ord a_1306 => GHC.Classes.Ord (Number a_1306)\n\nderiving instance GHC.Show.Show a_1307 => GHC.Show.Show (Number a_1307)\n\ninstance AST.Unmarshal.Unmarshal Number\n\ninstance Data.Foldable.Foldable Number where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Number where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Number where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousOf = AST.Token.Token \"of\" 27\n\ntype AnonymousPrivate = AST.Token.Token \"private\" 122\n\ndata PropertyIdentifier a = PropertyIdentifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1308.\n      AST.Traversable1.Class.Traversable1 a_1308\n    )\n\ninstance AST.Unmarshal.SymbolMatching PropertyIdentifier where\n  matchedSymbols _ = [314]\n  showFailure _ node_1309 =\n    \"expected \"\n      GHC.Base.<> ( \"property_identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1309 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1309) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1310 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1311 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1312 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1313 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1310\n        c1_1311 = TreeSitter.Node.nodeStartPoint node_1309\n      TreeSitter.Node.TSPoint\n        r2_1312\n        c2_1313 = TreeSitter.Node.nodeEndPoint node_1309\n\nderiving instance GHC.Classes.Eq a_1314 => GHC.Classes.Eq (PropertyIdentifier a_1314)\n\nderiving instance GHC.Classes.Ord a_1315 => GHC.Classes.Ord (PropertyIdentifier a_1315)\n\nderiving instance GHC.Show.Show a_1316 => GHC.Show.Show (PropertyIdentifier a_1316)\n\ninstance AST.Unmarshal.Unmarshal PropertyIdentifier\n\ninstance Data.Foldable.Foldable PropertyIdentifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PropertyIdentifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PropertyIdentifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousProtected = AST.Token.Token \"protected\" 123\n\ntype AnonymousPublic = AST.Token.Token \"public\" 121\n\ndata Readonly a = Readonly {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1317.\n      AST.Traversable1.Class.Traversable1 a_1317\n    )\n\ninstance AST.Unmarshal.SymbolMatching Readonly where\n  matchedSymbols _ = [136]\n  showFailure _ node_1318 =\n    \"expected \"\n      GHC.Base.<> ( \"readonly\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1318 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1318) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1319 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1320 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1321 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1322 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1319\n        c1_1320 = TreeSitter.Node.nodeStartPoint node_1318\n      TreeSitter.Node.TSPoint\n        r2_1321\n        c2_1322 = TreeSitter.Node.nodeEndPoint node_1318\n\nderiving instance GHC.Classes.Eq a_1323 => GHC.Classes.Eq (Readonly a_1323)\n\nderiving instance GHC.Classes.Ord a_1324 => GHC.Classes.Ord (Readonly a_1324)\n\nderiving instance GHC.Show.Show a_1325 => GHC.Show.Show (Readonly a_1325)\n\ninstance AST.Unmarshal.Unmarshal Readonly\n\ninstance Data.Foldable.Foldable Readonly where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Readonly where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Readonly where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata RegexFlags a = RegexFlags {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1326.\n      AST.Traversable1.Class.Traversable1 a_1326\n    )\n\ninstance AST.Unmarshal.SymbolMatching RegexFlags where\n  matchedSymbols _ = [106]\n  showFailure _ node_1327 =\n    \"expected \"\n      GHC.Base.<> ( \"regex_flags\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1327 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1327) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1328 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1329 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1330 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1331 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1328\n        c1_1329 = TreeSitter.Node.nodeStartPoint node_1327\n      TreeSitter.Node.TSPoint\n        r2_1330\n        c2_1331 = TreeSitter.Node.nodeEndPoint node_1327\n\nderiving instance GHC.Classes.Eq a_1332 => GHC.Classes.Eq (RegexFlags a_1332)\n\nderiving instance GHC.Classes.Ord a_1333 => GHC.Classes.Ord (RegexFlags a_1333)\n\nderiving instance GHC.Show.Show a_1334 => GHC.Show.Show (RegexFlags a_1334)\n\ninstance AST.Unmarshal.Unmarshal RegexFlags\n\ninstance Data.Foldable.Foldable RegexFlags where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RegexFlags where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RegexFlags where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata RegexPattern a = RegexPattern {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1335.\n      AST.Traversable1.Class.Traversable1 a_1335\n    )\n\ninstance AST.Unmarshal.SymbolMatching RegexPattern where\n  matchedSymbols _ = [105]\n  showFailure _ node_1336 =\n    \"expected \"\n      GHC.Base.<> ( \"regex_pattern\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1336 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1336) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1337 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1338 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1339 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1340 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1337\n        c1_1338 = TreeSitter.Node.nodeStartPoint node_1336\n      TreeSitter.Node.TSPoint\n        r2_1339\n        c2_1340 = TreeSitter.Node.nodeEndPoint node_1336\n\nderiving instance GHC.Classes.Eq a_1341 => GHC.Classes.Eq (RegexPattern a_1341)\n\nderiving instance GHC.Classes.Ord a_1342 => GHC.Classes.Ord (RegexPattern a_1342)\n\nderiving instance GHC.Show.Show a_1343 => GHC.Show.Show (RegexPattern a_1343)\n\ninstance AST.Unmarshal.Unmarshal RegexPattern\n\ninstance Data.Foldable.Foldable RegexPattern where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RegexPattern where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RegexPattern where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousRequire = AST.Token.Token \"require\" 130\n\ntype AnonymousReturn = AST.Token.Token \"return\" 35\n\ntype AnonymousSet = AST.Token.Token \"set\" 119\n\ndata ShorthandPropertyIdentifier a = ShorthandPropertyIdentifier\n  { ann :: a,\n    text :: Data.Text.Internal.Text\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1344.\n      AST.Traversable1.Class.Traversable1 a_1344\n    )\n\ninstance AST.Unmarshal.SymbolMatching ShorthandPropertyIdentifier where\n  matchedSymbols _ = [315]\n  showFailure _ node_1345 =\n    \"expected \"\n      GHC.Base.<> ( \"shorthand_property_identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1345 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1345) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1346 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1347 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1348 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1349 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1346\n        c1_1347 = TreeSitter.Node.nodeStartPoint node_1345\n      TreeSitter.Node.TSPoint\n        r2_1348\n        c2_1349 = TreeSitter.Node.nodeEndPoint node_1345\n\nderiving instance GHC.Classes.Eq a_1350 => GHC.Classes.Eq (ShorthandPropertyIdentifier a_1350)\n\nderiving instance GHC.Classes.Ord a_1351 => GHC.Classes.Ord (ShorthandPropertyIdentifier a_1351)\n\nderiving instance GHC.Show.Show a_1352 => GHC.Show.Show (ShorthandPropertyIdentifier a_1352)\n\ninstance AST.Unmarshal.Unmarshal ShorthandPropertyIdentifier\n\ninstance Data.Foldable.Foldable ShorthandPropertyIdentifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ShorthandPropertyIdentifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ShorthandPropertyIdentifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata StatementIdentifier a = StatementIdentifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1353.\n      AST.Traversable1.Class.Traversable1 a_1353\n    )\n\ninstance AST.Unmarshal.SymbolMatching StatementIdentifier where\n  matchedSymbols _ = [316]\n  showFailure _ node_1354 =\n    \"expected \"\n      GHC.Base.<> ( \"statement_identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1354 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1354) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1355 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1356 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1357 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1358 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1355\n        c1_1356 = TreeSitter.Node.nodeStartPoint node_1354\n      TreeSitter.Node.TSPoint\n        r2_1357\n        c2_1358 = TreeSitter.Node.nodeEndPoint node_1354\n\nderiving instance GHC.Classes.Eq a_1359 => GHC.Classes.Eq (StatementIdentifier a_1359)\n\nderiving instance GHC.Classes.Ord a_1360 => GHC.Classes.Ord (StatementIdentifier a_1360)\n\nderiving instance GHC.Show.Show a_1361 => GHC.Show.Show (StatementIdentifier a_1361)\n\ninstance AST.Unmarshal.Unmarshal StatementIdentifier\n\ninstance Data.Foldable.Foldable StatementIdentifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor StatementIdentifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable StatementIdentifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousStatic = AST.Token.Token \"static\" 116\n\ntype AnonymousString = AST.Token.Token \"string\" 128\n\ndata Super a = Super {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1362.\n      AST.Traversable1.Class.Traversable1 a_1362\n    )\n\ninstance AST.Unmarshal.SymbolMatching Super where\n  matchedSymbols _ = [110]\n  showFailure _ node_1363 =\n    \"expected \"\n      GHC.Base.<> ( \"super\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1363 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1363) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1364 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1365 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1366 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1367 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1364\n        c1_1365 = TreeSitter.Node.nodeStartPoint node_1363\n      TreeSitter.Node.TSPoint\n        r2_1366\n        c2_1367 = TreeSitter.Node.nodeEndPoint node_1363\n\nderiving instance GHC.Classes.Eq a_1368 => GHC.Classes.Eq (Super a_1368)\n\nderiving instance GHC.Classes.Ord a_1369 => GHC.Classes.Ord (Super a_1369)\n\nderiving instance GHC.Show.Show a_1370 => GHC.Show.Show (Super a_1370)\n\ninstance AST.Unmarshal.Unmarshal Super\n\ninstance Data.Foldable.Foldable Super where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Super where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Super where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousSwitch = AST.Token.Token \"switch\" 21\n\ntype AnonymousSymbol = AST.Token.Token \"symbol\" 129\n\ntype AnonymousTarget = AST.Token.Token \"target\" 108\n\ndata This a = This {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1371.\n      AST.Traversable1.Class.Traversable1 a_1371\n    )\n\ninstance AST.Unmarshal.SymbolMatching This where\n  matchedSymbols _ = [109]\n  showFailure _ node_1372 =\n    \"expected \"\n      GHC.Base.<> ( \"this\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1372 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1372) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1373 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1374 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1375 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1376 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1373\n        c1_1374 = TreeSitter.Node.nodeStartPoint node_1372\n      TreeSitter.Node.TSPoint\n        r2_1375\n        c2_1376 = TreeSitter.Node.nodeEndPoint node_1372\n\nderiving instance GHC.Classes.Eq a_1377 => GHC.Classes.Eq (This a_1377)\n\nderiving instance GHC.Classes.Ord a_1378 => GHC.Classes.Ord (This a_1378)\n\nderiving instance GHC.Show.Show a_1379 => GHC.Show.Show (This a_1379)\n\ninstance AST.Unmarshal.Unmarshal This\n\ninstance Data.Foldable.Foldable This where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor This where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable This where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousThrow = AST.Token.Token \"throw\" 36\n\ndata True a = True {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1380.\n      AST.Traversable1.Class.Traversable1 a_1380\n    )\n\ninstance AST.Unmarshal.SymbolMatching True where\n  matchedSymbols _ = [111]\n  showFailure _ node_1381 =\n    \"expected \"\n      GHC.Base.<> ( \"true\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1381 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1381) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1382 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1383 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1384 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1385 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1382\n        c1_1383 = TreeSitter.Node.nodeStartPoint node_1381\n      TreeSitter.Node.TSPoint\n        r2_1384\n        c2_1385 = TreeSitter.Node.nodeEndPoint node_1381\n\nderiving instance GHC.Classes.Eq a_1386 => GHC.Classes.Eq (True a_1386)\n\nderiving instance GHC.Classes.Ord a_1387 => GHC.Classes.Ord (True a_1387)\n\nderiving instance GHC.Show.Show a_1388 => GHC.Show.Show (True a_1388)\n\ninstance AST.Unmarshal.Unmarshal True\n\ninstance Data.Foldable.Foldable True where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor True where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable True where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousTry = AST.Token.Token \"try\" 30\n\ntype AnonymousType = AST.Token.Token \"type\" 12\n\ndata TypeIdentifier a = TypeIdentifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1389.\n      AST.Traversable1.Class.Traversable1 a_1389\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeIdentifier where\n  matchedSymbols _ = [317]\n  showFailure _ node_1390 =\n    \"expected \"\n      GHC.Base.<> ( \"type_identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1390 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1390) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1391 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1392 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1393 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1394 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1391\n        c1_1392 = TreeSitter.Node.nodeStartPoint node_1390\n      TreeSitter.Node.TSPoint\n        r2_1393\n        c2_1394 = TreeSitter.Node.nodeEndPoint node_1390\n\nderiving instance GHC.Classes.Eq a_1395 => GHC.Classes.Eq (TypeIdentifier a_1395)\n\nderiving instance GHC.Classes.Ord a_1396 => GHC.Classes.Ord (TypeIdentifier a_1396)\n\nderiving instance GHC.Show.Show a_1397 => GHC.Show.Show (TypeIdentifier a_1397)\n\ninstance AST.Unmarshal.Unmarshal TypeIdentifier\n\ninstance Data.Foldable.Foldable TypeIdentifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeIdentifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeIdentifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousTypeof = AST.Token.Token \"typeof\" 13\n\ndata Undefined a = Undefined {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1398.\n      AST.Traversable1.Class.Traversable1 a_1398\n    )\n\ninstance AST.Unmarshal.SymbolMatching Undefined where\n  matchedSymbols _ = [114]\n  showFailure _ node_1399 =\n    \"expected \"\n      GHC.Base.<> ( \"undefined\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1399 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1399) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1400 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1401 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1402 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1403 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1400\n        c1_1401 = TreeSitter.Node.nodeStartPoint node_1399\n      TreeSitter.Node.TSPoint\n        r2_1402\n        c2_1403 = TreeSitter.Node.nodeEndPoint node_1399\n\nderiving instance GHC.Classes.Eq a_1404 => GHC.Classes.Eq (Undefined a_1404)\n\nderiving instance GHC.Classes.Ord a_1405 => GHC.Classes.Ord (Undefined a_1405)\n\nderiving instance GHC.Show.Show a_1406 => GHC.Show.Show (Undefined a_1406)\n\ninstance AST.Unmarshal.Unmarshal Undefined\n\ninstance Data.Foldable.Foldable Undefined where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Undefined where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Undefined where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousVar = AST.Token.Token \"var\" 16\n\ntype AnonymousVoid = AST.Token.Token \"void\" 92\n\ntype AnonymousWhile = AST.Token.Token \"while\" 28\n\ntype AnonymousWith = AST.Token.Token \"with\" 31\n\ntype AnonymousYield = AST.Token.Token \"yield\" 42\n\ntype AnonymousLBrace = AST.Token.Token \"{\" 9\n\ntype AnonymousLBracePipe = AST.Token.Token \"{|\" 139\n\ntype AnonymousPipe = AST.Token.Token \"|\" 77\n\ntype AnonymousPipeEqual = AST.Token.Token \"|=\" 63\n\ntype AnonymousPipePipe = AST.Token.Token \"||\" 71\n\ntype AnonymousPipeRBrace = AST.Token.Token \"|}\" 140\n\ntype AnonymousRBrace = AST.Token.Token \"}\" 11\n\ntype AnonymousTilde = AST.Token.Token \"~\" 91\n"
  },
  {
    "path": "semantic-tsx/src/Language/TSX/Grammar.hs",
    "content": "{-# LANGUAGE TemplateHaskell #-}\nmodule Language.TSX.Grammar\n( tree_sitter_tsx\n, Grammar(..)\n) where\n\nimport AST.Grammar.TH\nimport Language.Haskell.TH\nimport TreeSitter.TSX (tree_sitter_tsx)\n\n-- | Statically-known rules corresponding to symbols in the grammar.\nmkStaticallyKnownRuleGrammarData  (mkName \"Grammar\") tree_sitter_tsx\n"
  },
  {
    "path": "semantic-tsx/src/Language/TSX/Tags.hs",
    "content": "{-# LANGUAGE DefaultSignatures #-}\n{-# LANGUAGE DisambiguateRecordFields #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE NamedFieldPuns #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n\nmodule Language.TSX.Tags\n  ( ToTags (..),\n  )\nwhere\n\nimport           AST.Element\nimport qualified AST.Parse as Parse\nimport           AST.Token\nimport           AST.Traversable1\nimport           Control.Effect.Reader\nimport           Control.Effect.State\nimport           Control.Effect.Writer\nimport           Data.Foldable\nimport           Data.Text (Text)\nimport qualified Language.TSX.AST as Tsx\nimport           Proto.Semantic as P\nimport           Source.Loc\nimport           Source.Source as Source\nimport qualified Tags.Tagging.Precise as Tags\n\nclass ToTags t where\n  tags ::\n    ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n      Has (Writer Tags.Tags) sig m\n    ) =>\n    t Loc ->\n    m ()\n  default tags ::\n    ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n      Has (Writer Tags.Tags) sig m,\n      Traversable1 ToTags t\n    ) =>\n    t Loc ->\n    m ()\n  tags = gtags\n\ninstance ToTags Tsx.Function where\n  tags t@Tsx.Function {ann = Loc {byteRange}, name = Just (Parse.Success (Tsx.Identifier {text, ann}))} =\n    yieldTag text P.FUNCTION P.DEFINITION ann byteRange >> gtags t\n  tags t = gtags t\n\ninstance ToTags Tsx.FunctionSignature where\n  tags t@Tsx.FunctionSignature {ann = Loc {byteRange}, name = Parse.Success (Tsx.Identifier {text, ann})} =\n    yieldTag text P.FUNCTION P.DEFINITION ann byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags Tsx.FunctionDeclaration where\n  tags t@Tsx.FunctionDeclaration {ann = Loc {byteRange}, name = Parse.Success (Tsx.Identifier {text, ann})} =\n    yieldTag text P.FUNCTION P.DEFINITION ann byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags Tsx.MethodDefinition where\n  tags t@Tsx.MethodDefinition {ann = Loc {byteRange}, name} = case name of\n    EPrj Tsx.PropertyIdentifier {text, ann} -> yieldTag text P.METHOD P.DEFINITION ann byteRange >> gtags t\n    _                                       -> gtags t\n\ninstance ToTags Tsx.Pair where\n  tags t@Tsx.Pair {ann = Loc {byteRange}, key, value = Parse.Success (Tsx.Expression expr)} = case (key, expr) of\n    (EPrj Tsx.PropertyIdentifier {text, ann}, Prj Tsx.Function {})      -> yield text ann\n    (EPrj Tsx.PropertyIdentifier {text, ann}, Prj Tsx.ArrowFunction {}) -> yield text ann\n    _                                                                   -> gtags t\n    where\n      yield text loc = yieldTag text P.FUNCTION P.DEFINITION loc byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags Tsx.ClassDeclaration where\n  tags t@Tsx.ClassDeclaration {ann = Loc {byteRange}, name = Parse.Success (Tsx.TypeIdentifier {text, ann})} =\n    yieldTag text P.CLASS P.DEFINITION ann byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags Tsx.CallExpression where\n  tags t@Tsx.CallExpression {ann = Loc {byteRange}, function = Parse.Success (Tsx.Expression expr)} = match expr\n    where\n      match expr = case expr of\n        Prj Tsx.Identifier {text, ann} -> yield text ann\n        Prj Tsx.NewExpression {constructor = EPrj Tsx.Identifier {text, ann}} -> yield text ann\n        Prj Tsx.CallExpression {function = Parse.Success (Tsx.Expression expr)} -> match expr\n        Prj Tsx.MemberExpression {property = Parse.Success (Tsx.PropertyIdentifier {text, ann})} -> yield text ann\n        Prj Tsx.Function {name = Just (Parse.Success (Tsx.Identifier {text, ann}))} -> yield text ann\n        Prj Tsx.ParenthesizedExpression {extraChildren} -> for_ extraChildren $ \\x -> case x of\n          EPrj (Tsx.Expression expr) -> match expr\n          Parse.Success x            -> tags x\n          Parse.Fail _               -> pure ()\n        _ -> gtags t\n      yield name loc = yieldTag name P.CALL P.REFERENCE loc byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags Tsx.Class where\n  tags t@Tsx.Class {ann = Loc {byteRange}, name = Just (Parse.Success (Tsx.TypeIdentifier {text, ann}))} =\n    yieldTag text P.CLASS P.DEFINITION ann byteRange >> gtags t\n  tags t = gtags t\n\ninstance ToTags Tsx.Module where\n  tags t@Tsx.Module {ann = Loc {byteRange}, name} = case name of\n    EPrj Tsx.Identifier {text, ann} -> yieldTag text P.MODULE P.DEFINITION ann byteRange >> gtags t\n    _                               -> gtags t\n\ninstance ToTags Tsx.VariableDeclarator where\n  tags t@Tsx.VariableDeclarator {ann = Loc {byteRange}, name, value = Just (Parse.Success (Tsx.Expression expr))} =\n    case (expr, name) of\n      (Prj Tsx.Function {}, EPrj Tsx.Identifier {text, ann})      -> yield text ann\n      (Prj Tsx.ArrowFunction {}, EPrj Tsx.Identifier {text, ann}) -> yield text ann\n      _                                                           -> gtags t\n    where\n      yield text loc = yieldTag text P.FUNCTION P.DEFINITION loc byteRange >> gtags t\n  tags t = gtags t\n\ninstance ToTags Tsx.AssignmentExpression where\n  tags t@Tsx.AssignmentExpression {ann = Loc {byteRange}, left, right = Parse.Success (Tsx.Expression expr)} =\n    case (left, expr) of\n      (EPrj Tsx.Identifier {text, ann}, Prj Tsx.Function {}) -> yield text ann\n      (EPrj Tsx.Identifier {text, ann}, Prj Tsx.ArrowFunction {}) -> yield text ann\n      (EPrj Tsx.MemberExpression {property = Parse.Success (Tsx.PropertyIdentifier {text, ann})}, Prj Tsx.Function {}) -> yield text ann\n      (EPrj Tsx.MemberExpression {property = Parse.Success (Tsx.PropertyIdentifier {text, ann})}, Prj Tsx.ArrowFunction {}) -> yield text ann\n      _ -> gtags t\n    where\n      yield text loc = yieldTag text P.FUNCTION P.DEFINITION loc byteRange >> gtags t\n  tags _ = pure ()\n\ninstance (ToTags l, ToTags r) => ToTags (l :+: r) where\n  tags (L1 l) = tags l\n  tags (R1 r) = tags r\n\ninstance ToTags (Token sym n) where tags _ = pure ()\n\ngtags ::\n  ( Has (Reader Source) sig m,\n    Has (State Tags.LineIndices) sig m,\n    Has (Writer Tags.Tags) sig m,\n    Traversable1 ToTags t\n  ) =>\n  t Loc ->\n  m ()\ngtags = traverse1_ @ToTags (const (pure ())) tags\n\n-- These are all valid, but point to built-in functions (e.g. require) that a la\n-- carte doesn't display and since we have nothing to link to yet (can't\n-- jump-to-def), we hide them from the current tags output.\nnameBlacklist :: [Text]\nnameBlacklist = [\"require\"]\n\nyieldTag :: (Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m) => Text -> P.SyntaxType -> P.NodeType -> Loc -> Range -> m ()\nyieldTag name P.CALL _ _ _ | name `elem` nameBlacklist = pure ()\nyieldTag name kind ty loc srcLineRange = Tags.yield name kind ty loc srcLineRange\n\n{- ORMOLU_DISABLE -}\ninstance ToTags Tsx.AbstractClassDeclaration\ninstance ToTags Tsx.AbstractMethodSignature\ninstance ToTags Tsx.AccessibilityModifier\ninstance ToTags Tsx.AmbientDeclaration\ninstance ToTags Tsx.Arguments\ninstance ToTags Tsx.Array\ninstance ToTags Tsx.ArrayPattern\ninstance ToTags Tsx.ArrayType\ninstance ToTags Tsx.ArrowFunction\ninstance ToTags Tsx.AsExpression\n-- instance ToTags Tsx.AssignmentExpression\ninstance ToTags Tsx.AssignmentPattern\ninstance ToTags Tsx.AugmentedAssignmentExpression\ninstance ToTags Tsx.AwaitExpression\ninstance ToTags Tsx.BinaryExpression\ninstance ToTags Tsx.BreakStatement\n-- instance ToTags Tsx.CallExpression\ninstance ToTags Tsx.CallSignature\ninstance ToTags Tsx.CatchClause\n-- instance ToTags Tsx.Class\ninstance ToTags Tsx.ClassBody\n-- instance ToTags Tsx.ClassDeclaration\ninstance ToTags Tsx.ClassHeritage\ninstance ToTags Tsx.ComputedPropertyName\ninstance ToTags Tsx.Constraint\ninstance ToTags Tsx.ConstructSignature\ninstance ToTags Tsx.ConstructorType\ninstance ToTags Tsx.ContinueStatement\ninstance ToTags Tsx.DebuggerStatement\ninstance ToTags Tsx.Declaration\ninstance ToTags Tsx.Decorator\ninstance ToTags Tsx.DefaultType\ninstance ToTags Tsx.DestructuringPattern\ninstance ToTags Tsx.DoStatement\ninstance ToTags Tsx.EmptyStatement\ninstance ToTags Tsx.EnumAssignment\ninstance ToTags Tsx.EnumBody\ninstance ToTags Tsx.EnumDeclaration\ninstance ToTags Tsx.EscapeSequence\ninstance ToTags Tsx.ExistentialType\ninstance ToTags Tsx.ExportClause\ninstance ToTags Tsx.ExportSpecifier\ninstance ToTags Tsx.ExportStatement\ninstance ToTags Tsx.Expression\ninstance ToTags Tsx.ExpressionStatement\ninstance ToTags Tsx.ExtendsClause\ninstance ToTags Tsx.False\ninstance ToTags Tsx.FinallyClause\ninstance ToTags Tsx.FlowMaybeType\ninstance ToTags Tsx.ForInStatement\ninstance ToTags Tsx.ForStatement\ninstance ToTags Tsx.FormalParameters\n-- instance ToTags Tsx.Function\n-- instance ToTags Tsx.FunctionDeclaration\n-- instance ToTags Tsx.FunctionSignature\ninstance ToTags Tsx.FunctionType\ninstance ToTags Tsx.GeneratorFunction\ninstance ToTags Tsx.GeneratorFunctionDeclaration\ninstance ToTags Tsx.GenericType\ninstance ToTags Tsx.HashBangLine\ninstance ToTags Tsx.Identifier\ninstance ToTags Tsx.IfStatement\ninstance ToTags Tsx.ImplementsClause\ninstance ToTags Tsx.Import\ninstance ToTags Tsx.ImportAlias\ninstance ToTags Tsx.ImportClause\ninstance ToTags Tsx.ImportRequireClause\ninstance ToTags Tsx.ImportSpecifier\ninstance ToTags Tsx.ImportStatement\ninstance ToTags Tsx.IndexSignature\ninstance ToTags Tsx.IndexTypeQuery\ninstance ToTags Tsx.InterfaceDeclaration\ninstance ToTags Tsx.InternalModule\ninstance ToTags Tsx.IntersectionType\ninstance ToTags Tsx.JsxAttribute\ninstance ToTags Tsx.JsxClosingElement\ninstance ToTags Tsx.JsxElement\ninstance ToTags Tsx.JsxExpression\ninstance ToTags Tsx.JsxFragment\ninstance ToTags Tsx.JsxNamespaceName\ninstance ToTags Tsx.JsxOpeningElement\ninstance ToTags Tsx.JsxSelfClosingElement\ninstance ToTags Tsx.JsxText\ninstance ToTags Tsx.LabeledStatement\ninstance ToTags Tsx.LexicalDeclaration\ninstance ToTags Tsx.LiteralType\ninstance ToTags Tsx.LookupType\ninstance ToTags Tsx.MappedTypeClause\ninstance ToTags Tsx.MemberExpression\ninstance ToTags Tsx.MetaProperty\n-- instance ToTags Tsx.MethodDefinition\ninstance ToTags Tsx.MethodSignature\n-- instance ToTags Tsx.Module\ninstance ToTags Tsx.NamedImports\ninstance ToTags Tsx.NamespaceImport\ninstance ToTags Tsx.NestedIdentifier\ninstance ToTags Tsx.NestedTypeIdentifier\ninstance ToTags Tsx.NewExpression\ninstance ToTags Tsx.NonNullExpression\ninstance ToTags Tsx.Null\ninstance ToTags Tsx.Number\ninstance ToTags Tsx.Object\ninstance ToTags Tsx.ObjectPattern\ninstance ToTags Tsx.ObjectType\ninstance ToTags Tsx.OptionalParameter\n-- instance ToTags Tsx.Pair\ninstance ToTags Tsx.ParenthesizedExpression\ninstance ToTags Tsx.ParenthesizedType\ninstance ToTags Tsx.PredefinedType\ninstance ToTags Tsx.Program\ninstance ToTags Tsx.PropertyIdentifier\ninstance ToTags Tsx.PropertySignature\ninstance ToTags Tsx.PublicFieldDefinition\ninstance ToTags Tsx.Readonly\ninstance ToTags Tsx.Regex\ninstance ToTags Tsx.RegexFlags\ninstance ToTags Tsx.RegexPattern\ninstance ToTags Tsx.RequiredParameter\ninstance ToTags Tsx.RestParameter\ninstance ToTags Tsx.ReturnStatement\ninstance ToTags Tsx.SequenceExpression\ninstance ToTags Tsx.ShorthandPropertyIdentifier\ninstance ToTags Tsx.SpreadElement\ninstance ToTags Tsx.Statement\ninstance ToTags Tsx.StatementBlock\ninstance ToTags Tsx.StatementIdentifier\ninstance ToTags Tsx.String\ninstance ToTags Tsx.SubscriptExpression\ninstance ToTags Tsx.Super\ninstance ToTags Tsx.SwitchBody\ninstance ToTags Tsx.SwitchCase\ninstance ToTags Tsx.SwitchDefault\ninstance ToTags Tsx.SwitchStatement\ninstance ToTags Tsx.TemplateString\ninstance ToTags Tsx.TemplateSubstitution\ninstance ToTags Tsx.TernaryExpression\ninstance ToTags Tsx.This\ninstance ToTags Tsx.ThrowStatement\ninstance ToTags Tsx.True\ninstance ToTags Tsx.TryStatement\ninstance ToTags Tsx.TupleType\ninstance ToTags Tsx.TypeAliasDeclaration\ninstance ToTags Tsx.TypeAnnotation\ninstance ToTags Tsx.TypeArguments\ninstance ToTags Tsx.TypeIdentifier\ninstance ToTags Tsx.TypeParameter\ninstance ToTags Tsx.TypeParameters\ninstance ToTags Tsx.TypePredicate\ninstance ToTags Tsx.TypeQuery\ninstance ToTags Tsx.UnaryExpression\ninstance ToTags Tsx.Undefined\ninstance ToTags Tsx.UnionType\ninstance ToTags Tsx.UpdateExpression\ninstance ToTags Tsx.VariableDeclaration\n-- instance ToTags Tsx.VariableDeclarator\ninstance ToTags Tsx.WhileStatement\ninstance ToTags Tsx.WithStatement\ninstance ToTags Tsx.YieldExpression\n{- ORMOLU_ENABLE -}\n"
  },
  {
    "path": "semantic-tsx/src/Language/TSX.hs",
    "content": "{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# OPTIONS_GHC -freduction-depth=0 #-}\n-- | Semantic functionality for TSX programs.\nmodule Language.TSX\n( Term(..)\n, Language.TSX.Grammar.tree_sitter_tsx\n) where\n\nimport           AST.Marshal.JSON\nimport           Data.Proxy\nimport qualified Language.TSX.AST as TSX\nimport qualified Language.TSX.Tags as TsxTags\nimport qualified Tags.Tagging.Precise as Tags\nimport qualified Language.TSX.Grammar (tree_sitter_tsx)\nimport qualified AST.Unmarshal as TS\n\nnewtype Term a = Term { getTerm :: TSX.Program a }\n  deriving MarshalJSON\n\ninstance TS.SymbolMatching Term where\n  matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy TSX.Program)\n  showFailure _ = TS.showFailure (Proxy :: Proxy TSX.Program)\n\ninstance TS.Unmarshal Term where\n  matchers = fmap (fmap (TS.hoist Term)) TS.matchers\n\ninstance Tags.ToTags Term where\n  tags src = Tags.runTagging src . TsxTags.tags . getTerm\n"
  },
  {
    "path": "semantic-tsx/test/PreciseTest.hs",
    "content": "{-# LANGUAGE CPP #-}\n{-# LANGUAGE DisambiguateRecordFields #-}\n{-# LANGUAGE ImplicitParams #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE TypeApplications #-}\n{-# OPTIONS_GHC -Wno-unused-imports #-}\nmodule Main (main) where\n\n\nimport           AST.TestHelpers\nimport           AST.Unmarshal\nimport qualified Language.TSX.AST as Tsx\nimport qualified System.Path.Fixture as Fixture\nimport           Test.Tasty\nimport           TreeSitter.TSX\n\nmain :: IO ()\nmain = do\n#if BAZEL_BUILD\n  rf <- Fixture.create\n  let ?project = \"external/semantic-typescript\"\n      ?runfiles = rf\n  let dirs = Fixture.absRelDir \"tsx/corpus\"\n#else\n  dirs <- Tsx.getTestCorpusDir\n#endif\n\n  readCorpusFiles' dirs\n    >>= traverse (testCorpus parse)\n    >>= defaultMain . tests\n  where parse = parseByteString @Tsx.Program @() tree_sitter_tsx\n\ntests :: [TestTree] -> TestTree\ntests = testGroup \"tree-sitter-tsx corpus tests\"\n"
  },
  {
    "path": "semantic-typescript/BUILD.bazel",
    "content": "package(default_visibility = [\"//visibility:public\"])\n\nload(\n    \"//:build/common.bzl\",\n    \"semantic_language_library\",\n    \"semantic_language_parsing_test\",\n)\n\nsemantic_language_library(\n    name = \"semantic-typescript\",\n    srcs = glob([\"src/**/*.hs\"]),\n    language = \"typescript\",\n    nodetypes = \"@tree-sitter-typescript//:vendor/tree-sitter-typescript/typescript/src/node-types.json\",\n)\n\nsemantic_language_parsing_test(language = \"typescript\")\n"
  },
  {
    "path": "semantic-typescript/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 GitHub\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "semantic-typescript/README.md",
    "content": "# Semantic support for TypeScript\n\nThis package implements `semantic` support for TypeScript.\n"
  },
  {
    "path": "semantic-typescript/Setup.hs",
    "content": "import Distribution.Simple\nmain = defaultMain\n"
  },
  {
    "path": "semantic-typescript/semantic-typescript.cabal",
    "content": "cabal-version:       2.4\n\nname:                semantic-typescript\nversion:             0.0.0.0\nsynopsis:            Semantic support for TypeScript.\ndescription:         Semantic support for TypeScript.\nhomepage:            https://github.com/github/semantic/tree/master/semantic-typescript#readme\nbug-reports:         https://github.com/github/semantic/issues\nlicense:             MIT\nlicense-file:        LICENSE\nauthor:              The Semantic authors\nmaintainer:          opensource+semantic@github.com\ncopyright:           (c) 2019 GitHub, Inc.\ncategory:            Language\nbuild-type:          Simple\nstability:           alpha\nextra-source-files:  README.md\n\ntested-with:         GHC == 8.6.5\n\ncommon haskell\n  default-language:    Haskell2010\n  ghc-options:\n    -Weverything\n    -Wno-missing-local-signatures\n    -Wno-missing-import-lists\n    -Wno-implicit-prelude\n    -Wno-safe\n    -Wno-unsafe\n    -Wno-name-shadowing\n    -Wno-monomorphism-restriction\n    -Wno-missed-specialisations\n    -Wno-all-missed-specialisations\n    -Wno-star-is-type\n  if (impl(ghc >= 8.8))\n    ghc-options: -Wno-missing-deriving-strategies\n  if (impl(ghc >= 8.10))\n    ghc-options:\n      -Wno-missing-safe-haskell-mode\n      -Wno-prepositive-qualified-module\n  if (impl(ghc >= 9.2))\n    ghc-options:\n      -Wno-missing-kind-signatures\n  cpp-options:\n    -DBAZEL_BUILD=0\n\nlibrary\n  import: haskell\n  exposed-modules:\n    Language.TypeScript\n    Language.TypeScript.AST\n    Language.TypeScript.Grammar\n    Language.TypeScript.Tags\n  hs-source-dirs: src\n  build-depends:\n    , base  >= 4.13 && < 5\n    , fused-effects ^>= 1.1\n    , semantic-ast\n    , semantic-proto ^>= 0\n    , semantic-source ^>= 0.2\n    , semantic-tags ^>= 0.0\n    , template-haskell  >= 2.15 && < 2.22\n    , text ^>= 1.2.3\n    , tree-sitter ^>= 0.9.0.0\n    , tree-sitter-typescript ^>= 0.5.0.1\n\ntest-suite test\n  import: haskell\n  type:             exitcode-stdio-1.0\n  hs-source-dirs:   test\n  main-is:          PreciseTest.hs\n  build-depends:\n    , base\n    , semantic-ast\n    , semantic-typescript\n    , tasty\n    , tree-sitter-typescript ^>= 0.5.0.1\n"
  },
  {
    "path": "semantic-typescript/src/Language/TypeScript/AST.hs",
    "content": "-- Language definition for TypeScript, generated by ast-generate. Do not edit!\n{-# LANGUAGE CPP #-}\n{-# LANGUAGE DataKinds #-}\n{-# LANGUAGE DeriveAnyClass #-}\n{-# LANGUAGE DeriveGeneric #-}\n{-# LANGUAGE DeriveTraversable #-}\n{-# LANGUAGE DerivingStrategies #-}\n{-# LANGUAGE DuplicateRecordFields #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE MultiParamTypeClasses #-}\n{-# LANGUAGE QuantifiedConstraints #-}\n{-# LANGUAGE StandaloneDeriving #-}\n{-# LANGUAGE TemplateHaskell #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n{-# LANGUAGE UndecidableInstances #-}\n{-# OPTIONS_GHC -fno-warn-unused-imports #-}\n\nmodule Language.TypeScript.AST (module Language.TypeScript.AST, getTestCorpusDir) where\n\nimport qualified AST.Parse\nimport qualified AST.Token\nimport qualified AST.Traversable1.Class\nimport qualified AST.Unmarshal\nimport qualified Data.Foldable\nimport qualified Data.List as Data.OldList\nimport qualified Data.Maybe as GHC.Maybe\nimport qualified Data.Text.Internal\nimport qualified Data.Traversable\nimport qualified GHC.Base\nimport qualified GHC.Generics\nimport qualified GHC.Records\nimport qualified GHC.Show\nimport qualified TreeSitter.Node\nimport TreeSitter.TypeScript (getTestCorpusDir)\nimport qualified Prelude as GHC.Classes\n\ndebugSymbolNames :: [GHC.Base.String]\ndebugSymbolNames = debugSymbolNames_0\n\ndebugSymbolNames_0 :: [GHC.Base.String]\ndebugSymbolNames_0 =\n  [ \"end\",\n    \"identifier\",\n    \"hash_bang_line\",\n    \"_export\",\n    \"_*\",\n    \"_default\",\n    \"_=\",\n    \"_as\",\n    \"_namespace\",\n    \"_{\",\n    \"_,\",\n    \"_}\",\n    \"_type\",\n    \"_typeof\",\n    \"_import\",\n    \"_from\",\n    \"_var\",\n    \"_let\",\n    \"_const\",\n    \"_if\",\n    \"_else\",\n    \"_switch\",\n    \"_for\",\n    \"_(\",\n    \"_)\",\n    \"_await\",\n    \"_in\",\n    \"_of\",\n    \"_while\",\n    \"_do\",\n    \"_try\",\n    \"_with\",\n    \"_break\",\n    \"_continue\",\n    \"_debugger\",\n    \"_return\",\n    \"_throw\",\n    \"_;\",\n    \"_:\",\n    \"_case\",\n    \"_catch\",\n    \"_finally\",\n    \"_yield\",\n    \"_[\",\n    \"_]\",\n    \"_<\",\n    \"_>\",\n    \"_/\",\n    \"_.\",\n    \"_class\",\n    \"_async\",\n    \"_function\",\n    \"_=>\",\n    \"_new\",\n    \"_+=\",\n    \"_-=\",\n    \"_*=\",\n    \"_/=\",\n    \"_%=\",\n    \"_^=\",\n    \"_&=\",\n    \"_|=\",\n    \"_>>=\",\n    \"_>>>=\",\n    \"_<<=\",\n    \"_**=\",\n    \"_...\",\n    \"_?\",\n    \"_&&\",\n    \"_||\",\n    \"_>>\",\n    \"_>>>\",\n    \"_<<\",\n    \"_&\",\n    \"_^\",\n    \"_|\",\n    \"_+\",\n    \"_-\",\n    \"_%\",\n    \"_**\",\n    \"_<=\",\n    \"_==\",\n    \"_===\",\n    \"_!=\",\n    \"_!==\",\n    \"_>=\",\n    \"_??\",\n    \"_instanceof\",\n    \"_!\",\n    \"_~\",\n    \"_void\",\n    \"_delete\",\n    \"_++\",\n    \"_--\",\n    \"_\\\"\",\n    \"_string_token1\",\n    \"_'\",\n    \"_string_token2\",\n    \"escape_sequence\",\n    \"comment\",\n    \"_`\",\n    \"_${\",\n    \"_/\",\n    \"regex_pattern\",\n    \"regex_flags\",\n    \"number\",\n    \"_target\",\n    \"this\",\n    \"super\",\n    \"true\",\n    \"false\",\n    \"null\",\n    \"undefined\",\n    \"_@\",\n    \"_static\",\n    \"_abstract\",\n    \"_get\",\n    \"_set\",\n    \"_declare\",\n    \"_public\",\n    \"_private\",\n    \"_protected\",\n    \"_module\",\n    \"_any\",\n    \"_number\",\n    \"_boolean\",\n    \"_string\",\n    \"_symbol\",\n    \"_require\",\n    \"_implements\",\n    \"_global\",\n    \"_interface\",\n    \"_extends\",\n    \"_enum\",\n    \"readonly\",\n    \"_is\",\n    \"_keyof\",\n    \"_{|\",\n    \"_|}\",\n    \"_automatic_semicolon\",\n    \"_template_chars\",\n    \"program\",\n    \"export_statement\",\n    \"export_clause\",\n    \"_import_export_specifier\",\n    \"_declaration\",\n    \"import\",\n    \"import_statement\",\n    \"import_clause\",\n    \"_from_clause\",\n    \"namespace_import\",\n    \"named_imports\",\n    \"expression_statement\",\n    \"variable_declaration\",\n    \"lexical_declaration\",\n    \"variable_declarator\",\n    \"statement_block\",\n    \"if_statement\",\n    \"switch_statement\",\n    \"for_statement\",\n    \"for_in_statement\",\n    \"_for_header\",\n    \"while_statement\",\n    \"do_statement\",\n    \"try_statement\",\n    \"with_statement\",\n    \"break_statement\",\n    \"continue_statement\",\n    \"debugger_statement\",\n    \"return_statement\",\n    \"throw_statement\",\n    \"empty_statement\",\n    \"labeled_statement\",\n    \"switch_body\",\n    \"switch_case\",\n    \"switch_default\",\n    \"catch_clause\",\n    \"finally_clause\",\n    \"parenthesized_expression\",\n    \"_expression\",\n    \"yield_expression\",\n    \"object\",\n    \"assignment_pattern\",\n    \"array\",\n    \"nested_identifier\",\n    \"class\",\n    \"class_declaration\",\n    \"class_heritage\",\n    \"function\",\n    \"function_declaration\",\n    \"generator_function\",\n    \"generator_function_declaration\",\n    \"arrow_function\",\n    \"_call_signature\",\n    \"call_expression\",\n    \"new_expression\",\n    \"await_expression\",\n    \"member_expression\",\n    \"subscript_expression\",\n    \"assignment_expression\",\n    \"augmented_assignment_expression\",\n    \"_initializer\",\n    \"spread_element\",\n    \"ternary_expression\",\n    \"binary_expression\",\n    \"unary_expression\",\n    \"update_expression\",\n    \"sequence_expression\",\n    \"string\",\n    \"template_string\",\n    \"template_substitution\",\n    \"regex\",\n    \"meta_property\",\n    \"arguments\",\n    \"decorator\",\n    \"member_expression\",\n    \"call_expression\",\n    \"class_body\",\n    \"public_field_definition\",\n    \"formal_parameters\",\n    \"rest_parameter\",\n    \"method_definition\",\n    \"pair\",\n    \"_property_name\",\n    \"computed_property_name\",\n    \"non_null_expression\",\n    \"method_signature\",\n    \"abstract_method_signature\",\n    \"function_signature\",\n    \"type_assertion\",\n    \"as_expression\",\n    \"import_require_clause\",\n    \"implements_clause\",\n    \"ambient_declaration\",\n    \"abstract_class_declaration\",\n    \"module\",\n    \"internal_module\",\n    \"_module\",\n    \"import_alias\",\n    \"nested_type_identifier\",\n    \"interface_declaration\",\n    \"extends_clause\",\n    \"enum_declaration\",\n    \"enum_body\",\n    \"enum_assignment\",\n    \"type_alias_declaration\",\n    \"accessibility_modifier\",\n    \"required_parameter\",\n    \"optional_parameter\",\n    \"_parameter_name\",\n    \"type_annotation\",\n    \"_type\",\n    \"constructor_type\",\n    \"_primary_type\",\n    \"generic_type\",\n    \"type_predicate\",\n    \"type_query\",\n    \"index_type_query\",\n    \"lookup_type\",\n    \"mapped_type_clause\",\n    \"literal_type\",\n    \"unary_expression\",\n    \"existential_type\",\n    \"flow_maybe_type\",\n    \"parenthesized_type\",\n    \"predefined_type\",\n    \"type_arguments\",\n    \"object_type\",\n    \"call_signature\",\n    \"property_signature\",\n    \"type_parameters\",\n    \"type_parameter\",\n    \"default_type\",\n    \"constraint\",\n    \"construct_signature\",\n    \"index_signature\",\n    \"array_type\",\n    \"tuple_type\",\n    \"union_type\",\n    \"intersection_type\",\n    \"function_type\",\n    \"_program_repeat1\",\n    \"_export_statement_repeat1\",\n    \"_export_clause_repeat1\",\n    \"_named_imports_repeat1\",\n    \"_variable_declaration_repeat1\",\n    \"_switch_body_repeat1\",\n    \"_object_repeat1\",\n    \"_array_repeat1\",\n    \"_string_repeat1\",\n    \"_string_repeat2\",\n    \"_template_string_repeat1\",\n    \"_class_body_repeat1\",\n    \"_formal_parameters_repeat1\",\n    \"_implements_clause_repeat1\",\n    \"_extends_clause_repeat1\",\n    \"_enum_body_repeat1\",\n    \"_object_type_repeat1\",\n    \"_type_parameters_repeat1\",\n    \"array_pattern\",\n    \"export_specifier\",\n    \"import_specifier\",\n    \"object_pattern\",\n    \"property_identifier\",\n    \"shorthand_property_identifier\",\n    \"statement_identifier\",\n    \"type_identifier\"\n  ]\n\nnewtype Declaration a = Declaration {getDeclaration :: ((AbstractClassDeclaration GHC.Generics.:+: AmbientDeclaration GHC.Generics.:+: ClassDeclaration GHC.Generics.:+: EnumDeclaration GHC.Generics.:+: FunctionDeclaration GHC.Generics.:+: FunctionSignature GHC.Generics.:+: GeneratorFunctionDeclaration GHC.Generics.:+: ImportAlias GHC.Generics.:+: InterfaceDeclaration GHC.Generics.:+: InternalModule GHC.Generics.:+: LexicalDeclaration GHC.Generics.:+: Module GHC.Generics.:+: TypeAliasDeclaration GHC.Generics.:+: VariableDeclaration) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1.\n      AST.Traversable1.Class.Traversable1 a_1\n    )\n\ninstance GHC.Records.HasField \"ann\" (Declaration a_2) a_2 where\n  getField = AST.Unmarshal.gann GHC.Base.. getDeclaration\n\nderiving instance GHC.Classes.Eq a_3 => GHC.Classes.Eq (Declaration a_3)\n\nderiving instance GHC.Classes.Ord a_4 => GHC.Classes.Ord (Declaration a_4)\n\nderiving instance GHC.Show.Show a_5 => GHC.Show.Show (Declaration a_5)\n\ninstance AST.Unmarshal.Unmarshal Declaration\n\ninstance Data.Foldable.Foldable Declaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Declaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Declaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype DestructuringPattern a = DestructuringPattern {getDestructuringPattern :: ((ArrayPattern GHC.Generics.:+: ObjectPattern) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_6.\n      AST.Traversable1.Class.Traversable1 a_6\n    )\n\ninstance GHC.Records.HasField \"ann\" (DestructuringPattern a_7) a_7 where\n  getField = AST.Unmarshal.gann GHC.Base.. getDestructuringPattern\n\nderiving instance GHC.Classes.Eq a_8 => GHC.Classes.Eq (DestructuringPattern a_8)\n\nderiving instance GHC.Classes.Ord a_9 => GHC.Classes.Ord (DestructuringPattern a_9)\n\nderiving instance GHC.Show.Show a_10 => GHC.Show.Show (DestructuringPattern a_10)\n\ninstance AST.Unmarshal.Unmarshal DestructuringPattern\n\ninstance Data.Foldable.Foldable DestructuringPattern where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DestructuringPattern where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DestructuringPattern where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Expression a = Expression {getExpression :: ((Array GHC.Generics.:+: ArrowFunction GHC.Generics.:+: AsExpression GHC.Generics.:+: AssignmentExpression GHC.Generics.:+: AugmentedAssignmentExpression GHC.Generics.:+: AwaitExpression GHC.Generics.:+: BinaryExpression GHC.Generics.:+: CallExpression GHC.Generics.:+: Class GHC.Generics.:+: False GHC.Generics.:+: Function GHC.Generics.:+: GeneratorFunction GHC.Generics.:+: Identifier GHC.Generics.:+: Import GHC.Generics.:+: InternalModule GHC.Generics.:+: MemberExpression GHC.Generics.:+: MetaProperty GHC.Generics.:+: NewExpression GHC.Generics.:+: NonNullExpression GHC.Generics.:+: Null GHC.Generics.:+: Number GHC.Generics.:+: Object GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: Regex GHC.Generics.:+: String GHC.Generics.:+: SubscriptExpression GHC.Generics.:+: Super GHC.Generics.:+: TemplateString GHC.Generics.:+: TernaryExpression GHC.Generics.:+: This GHC.Generics.:+: True GHC.Generics.:+: TypeAssertion GHC.Generics.:+: UnaryExpression GHC.Generics.:+: Undefined GHC.Generics.:+: UpdateExpression GHC.Generics.:+: YieldExpression) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_11.\n      AST.Traversable1.Class.Traversable1 a_11\n    )\n\ninstance GHC.Records.HasField \"ann\" (Expression a_12) a_12 where\n  getField = AST.Unmarshal.gann GHC.Base.. getExpression\n\nderiving instance GHC.Classes.Eq a_13 => GHC.Classes.Eq (Expression a_13)\n\nderiving instance GHC.Classes.Ord a_14 => GHC.Classes.Ord (Expression a_14)\n\nderiving instance GHC.Show.Show a_15 => GHC.Show.Show (Expression a_15)\n\ninstance AST.Unmarshal.Unmarshal Expression\n\ninstance Data.Foldable.Foldable Expression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Expression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Expression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\nnewtype Statement a = Statement {getStatement :: ((Declaration GHC.Generics.:+: BreakStatement GHC.Generics.:+: ContinueStatement GHC.Generics.:+: DebuggerStatement GHC.Generics.:+: DoStatement GHC.Generics.:+: EmptyStatement GHC.Generics.:+: ExportStatement GHC.Generics.:+: ExpressionStatement GHC.Generics.:+: ForInStatement GHC.Generics.:+: ForStatement GHC.Generics.:+: IfStatement GHC.Generics.:+: ImportStatement GHC.Generics.:+: LabeledStatement GHC.Generics.:+: ReturnStatement GHC.Generics.:+: StatementBlock GHC.Generics.:+: SwitchStatement GHC.Generics.:+: ThrowStatement GHC.Generics.:+: TryStatement GHC.Generics.:+: WhileStatement GHC.Generics.:+: WithStatement) a)}\n  deriving newtype (AST.Unmarshal.SymbolMatching)\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_16.\n      AST.Traversable1.Class.Traversable1 a_16\n    )\n\ninstance GHC.Records.HasField \"ann\" (Statement a_17) a_17 where\n  getField = AST.Unmarshal.gann GHC.Base.. getStatement\n\nderiving instance GHC.Classes.Eq a_18 => GHC.Classes.Eq (Statement a_18)\n\nderiving instance GHC.Classes.Ord a_19 => GHC.Classes.Ord (Statement a_19)\n\nderiving instance GHC.Show.Show a_20 => GHC.Show.Show (Statement a_20)\n\ninstance AST.Unmarshal.Unmarshal Statement\n\ninstance Data.Foldable.Foldable Statement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Statement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Statement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AbstractClassDeclaration a = AbstractClassDeclaration\n  { ann :: a,\n    body :: (AST.Parse.Err (ClassBody a)),\n    name :: (AST.Parse.Err (TypeIdentifier a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ClassHeritage a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_21.\n      AST.Traversable1.Class.Traversable1 a_21\n    )\n\ninstance AST.Unmarshal.SymbolMatching AbstractClassDeclaration where\n  matchedSymbols _ = [234]\n  showFailure _ node_22 =\n    \"expected \"\n      GHC.Base.<> ( \"abstract_class_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_22 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_22) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_23 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_24 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_25 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_26 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_23\n        c1_24 = TreeSitter.Node.nodeStartPoint node_22\n      TreeSitter.Node.TSPoint\n        r2_25\n        c2_26 = TreeSitter.Node.nodeEndPoint node_22\n\nderiving instance GHC.Classes.Eq a_27 => GHC.Classes.Eq (AbstractClassDeclaration a_27)\n\nderiving instance GHC.Classes.Ord a_28 => GHC.Classes.Ord (AbstractClassDeclaration a_28)\n\nderiving instance GHC.Show.Show a_29 => GHC.Show.Show (AbstractClassDeclaration a_29)\n\ninstance AST.Unmarshal.Unmarshal AbstractClassDeclaration\n\ninstance Data.Foldable.Foldable AbstractClassDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AbstractClassDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AbstractClassDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AbstractMethodSignature a = AbstractMethodSignature\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (AccessibilityModifier a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_30.\n      AST.Traversable1.Class.Traversable1 a_30\n    )\n\ninstance AST.Unmarshal.SymbolMatching AbstractMethodSignature where\n  matchedSymbols _ = [227]\n  showFailure _ node_31 =\n    \"expected \"\n      GHC.Base.<> ( \"abstract_method_signature\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_31 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_31) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_32 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_33 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_34 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_35 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_32\n        c1_33 = TreeSitter.Node.nodeStartPoint node_31\n      TreeSitter.Node.TSPoint\n        r2_34\n        c2_35 = TreeSitter.Node.nodeEndPoint node_31\n\nderiving instance GHC.Classes.Eq a_36 => GHC.Classes.Eq (AbstractMethodSignature a_36)\n\nderiving instance GHC.Classes.Ord a_37 => GHC.Classes.Ord (AbstractMethodSignature a_37)\n\nderiving instance GHC.Show.Show a_38 => GHC.Show.Show (AbstractMethodSignature a_38)\n\ninstance AST.Unmarshal.Unmarshal AbstractMethodSignature\n\ninstance Data.Foldable.Foldable AbstractMethodSignature where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AbstractMethodSignature where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AbstractMethodSignature where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AccessibilityModifier a = AccessibilityModifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_39.\n      AST.Traversable1.Class.Traversable1 a_39\n    )\n\ninstance AST.Unmarshal.SymbolMatching AccessibilityModifier where\n  matchedSymbols _ = [246]\n  showFailure _ node_40 =\n    \"expected \"\n      GHC.Base.<> ( \"accessibility_modifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_40 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_40) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_41 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_42 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_43 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_44 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_41\n        c1_42 = TreeSitter.Node.nodeStartPoint node_40\n      TreeSitter.Node.TSPoint\n        r2_43\n        c2_44 = TreeSitter.Node.nodeEndPoint node_40\n\nderiving instance GHC.Classes.Eq a_45 => GHC.Classes.Eq (AccessibilityModifier a_45)\n\nderiving instance GHC.Classes.Ord a_46 => GHC.Classes.Ord (AccessibilityModifier a_46)\n\nderiving instance GHC.Show.Show a_47 => GHC.Show.Show (AccessibilityModifier a_47)\n\ninstance AST.Unmarshal.Unmarshal AccessibilityModifier\n\ninstance Data.Foldable.Foldable AccessibilityModifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AccessibilityModifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AccessibilityModifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AmbientDeclaration a = AmbientDeclaration\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Declaration GHC.Generics.:+: ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: StatementBlock GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_48.\n      AST.Traversable1.Class.Traversable1 a_48\n    )\n\ninstance AST.Unmarshal.SymbolMatching AmbientDeclaration where\n  matchedSymbols _ = [233]\n  showFailure _ node_49 =\n    \"expected \"\n      GHC.Base.<> ( \"ambient_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_49 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_49) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_50 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_51 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_52 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_53 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_50\n        c1_51 = TreeSitter.Node.nodeStartPoint node_49\n      TreeSitter.Node.TSPoint\n        r2_52\n        c2_53 = TreeSitter.Node.nodeEndPoint node_49\n\nderiving instance GHC.Classes.Eq a_54 => GHC.Classes.Eq (AmbientDeclaration a_54)\n\nderiving instance GHC.Classes.Ord a_55 => GHC.Classes.Ord (AmbientDeclaration a_55)\n\nderiving instance GHC.Show.Show a_56 => GHC.Show.Show (AmbientDeclaration a_56)\n\ninstance AST.Unmarshal.Unmarshal AmbientDeclaration\n\ninstance Data.Foldable.Foldable AmbientDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AmbientDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AmbientDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Arguments a = Arguments\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: SpreadElement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_57.\n      AST.Traversable1.Class.Traversable1 a_57\n    )\n\ninstance AST.Unmarshal.SymbolMatching Arguments where\n  matchedSymbols _ = [213]\n  showFailure _ node_58 =\n    \"expected \"\n      GHC.Base.<> ( \"arguments\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_58 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_58) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_59 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_60 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_61 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_62 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_59\n        c1_60 = TreeSitter.Node.nodeStartPoint node_58\n      TreeSitter.Node.TSPoint\n        r2_61\n        c2_62 = TreeSitter.Node.nodeEndPoint node_58\n\nderiving instance GHC.Classes.Eq a_63 => GHC.Classes.Eq (Arguments a_63)\n\nderiving instance GHC.Classes.Ord a_64 => GHC.Classes.Ord (Arguments a_64)\n\nderiving instance GHC.Show.Show a_65 => GHC.Show.Show (Arguments a_65)\n\ninstance AST.Unmarshal.Unmarshal Arguments\n\ninstance Data.Foldable.Foldable Arguments where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Arguments where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Arguments where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Array a = Array\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: SpreadElement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_66.\n      AST.Traversable1.Class.Traversable1 a_66\n    )\n\ninstance AST.Unmarshal.SymbolMatching Array where\n  matchedSymbols _ = [183]\n  showFailure _ node_67 =\n    \"expected \"\n      GHC.Base.<> ( \"array\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_67 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_67) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_68 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_69 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_70 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_71 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_68\n        c1_69 = TreeSitter.Node.nodeStartPoint node_67\n      TreeSitter.Node.TSPoint\n        r2_70\n        c2_71 = TreeSitter.Node.nodeEndPoint node_67\n\nderiving instance GHC.Classes.Eq a_72 => GHC.Classes.Eq (Array a_72)\n\nderiving instance GHC.Classes.Ord a_73 => GHC.Classes.Ord (Array a_73)\n\nderiving instance GHC.Show.Show a_74 => GHC.Show.Show (Array a_74)\n\ninstance AST.Unmarshal.Unmarshal Array\n\ninstance Data.Foldable.Foldable Array where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Array where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Array where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ArrayPattern a = ArrayPattern\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Expression GHC.Generics.:+: SpreadElement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_75.\n      AST.Traversable1.Class.Traversable1 a_75\n    )\n\ninstance AST.Unmarshal.SymbolMatching ArrayPattern where\n  matchedSymbols _ = [299]\n  showFailure _ node_76 =\n    \"expected \"\n      GHC.Base.<> ( \"array_pattern\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_76 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_76) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_77 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_78 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_79 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_80 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_77\n        c1_78 = TreeSitter.Node.nodeStartPoint node_76\n      TreeSitter.Node.TSPoint\n        r2_79\n        c2_80 = TreeSitter.Node.nodeEndPoint node_76\n\nderiving instance GHC.Classes.Eq a_81 => GHC.Classes.Eq (ArrayPattern a_81)\n\nderiving instance GHC.Classes.Ord a_82 => GHC.Classes.Ord (ArrayPattern a_82)\n\nderiving instance GHC.Show.Show a_83 => GHC.Show.Show (ArrayPattern a_83)\n\ninstance AST.Unmarshal.Unmarshal ArrayPattern\n\ninstance Data.Foldable.Foldable ArrayPattern where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ArrayPattern where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ArrayPattern where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ArrayType a = ArrayType\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((ArrayType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_84.\n      AST.Traversable1.Class.Traversable1 a_84\n    )\n\ninstance AST.Unmarshal.SymbolMatching ArrayType where\n  matchedSymbols _ = [276]\n  showFailure _ node_85 =\n    \"expected \"\n      GHC.Base.<> ( \"array_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_85 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_85) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_86 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_87 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_88 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_89 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_86\n        c1_87 = TreeSitter.Node.nodeStartPoint node_85\n      TreeSitter.Node.TSPoint\n        r2_88\n        c2_89 = TreeSitter.Node.nodeEndPoint node_85\n\nderiving instance GHC.Classes.Eq a_90 => GHC.Classes.Eq (ArrayType a_90)\n\nderiving instance GHC.Classes.Ord a_91 => GHC.Classes.Ord (ArrayType a_91)\n\nderiving instance GHC.Show.Show a_92 => GHC.Show.Show (ArrayType a_92)\n\ninstance AST.Unmarshal.Unmarshal ArrayType\n\ninstance Data.Foldable.Foldable ArrayType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ArrayType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ArrayType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ArrowFunction a = ArrowFunction\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    body :: (AST.Parse.Err ((Expression GHC.Generics.:+: StatementBlock) a)),\n    parameters :: (GHC.Maybe.Maybe (AST.Parse.Err (FormalParameters a))),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    parameter :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_93.\n      AST.Traversable1.Class.Traversable1 a_93\n    )\n\ninstance AST.Unmarshal.SymbolMatching ArrowFunction where\n  matchedSymbols _ = [192]\n  showFailure _ node_94 =\n    \"expected \"\n      GHC.Base.<> ( \"arrow_function\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_94 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_94) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_95 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_96 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_97 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_98 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_95\n        c1_96 = TreeSitter.Node.nodeStartPoint node_94\n      TreeSitter.Node.TSPoint\n        r2_97\n        c2_98 = TreeSitter.Node.nodeEndPoint node_94\n\nderiving instance GHC.Classes.Eq a_99 => GHC.Classes.Eq (ArrowFunction a_99)\n\nderiving instance GHC.Classes.Ord a_100 => GHC.Classes.Ord (ArrowFunction a_100)\n\nderiving instance GHC.Show.Show a_101 => GHC.Show.Show (ArrowFunction a_101)\n\ninstance AST.Unmarshal.Unmarshal ArrowFunction\n\ninstance Data.Foldable.Foldable ArrowFunction where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ArrowFunction where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ArrowFunction where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AsExpression a = AsExpression\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_102.\n      AST.Traversable1.Class.Traversable1 a_102\n    )\n\ninstance AST.Unmarshal.SymbolMatching AsExpression where\n  matchedSymbols _ = [230]\n  showFailure _ node_103 =\n    \"expected \"\n      GHC.Base.<> ( \"as_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_103 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_103) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_104 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_105 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_106 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_107 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_104\n        c1_105 = TreeSitter.Node.nodeStartPoint node_103\n      TreeSitter.Node.TSPoint\n        r2_106\n        c2_107 = TreeSitter.Node.nodeEndPoint node_103\n\nderiving instance GHC.Classes.Eq a_108 => GHC.Classes.Eq (AsExpression a_108)\n\nderiving instance GHC.Classes.Ord a_109 => GHC.Classes.Ord (AsExpression a_109)\n\nderiving instance GHC.Show.Show a_110 => GHC.Show.Show (AsExpression a_110)\n\ninstance AST.Unmarshal.Unmarshal AsExpression\n\ninstance Data.Foldable.Foldable AsExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AsExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AsExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AssignmentExpression a = AssignmentExpression\n  { ann :: a,\n    left :: (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: Identifier GHC.Generics.:+: MemberExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: SubscriptExpression) a)),\n    right :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_111.\n      AST.Traversable1.Class.Traversable1 a_111\n    )\n\ninstance AST.Unmarshal.SymbolMatching AssignmentExpression where\n  matchedSymbols _ = [199]\n  showFailure _ node_112 =\n    \"expected \"\n      GHC.Base.<> ( \"assignment_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_112 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_112) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_113 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_114 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_115 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_116 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_113\n        c1_114 = TreeSitter.Node.nodeStartPoint node_112\n      TreeSitter.Node.TSPoint\n        r2_115\n        c2_116 = TreeSitter.Node.nodeEndPoint node_112\n\nderiving instance GHC.Classes.Eq a_117 => GHC.Classes.Eq (AssignmentExpression a_117)\n\nderiving instance GHC.Classes.Ord a_118 => GHC.Classes.Ord (AssignmentExpression a_118)\n\nderiving instance GHC.Show.Show a_119 => GHC.Show.Show (AssignmentExpression a_119)\n\ninstance AST.Unmarshal.Unmarshal AssignmentExpression\n\ninstance Data.Foldable.Foldable AssignmentExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AssignmentExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AssignmentExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AssignmentPattern a = AssignmentPattern\n  { ann :: a,\n    left :: (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: ShorthandPropertyIdentifier) a)),\n    right :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_120.\n      AST.Traversable1.Class.Traversable1 a_120\n    )\n\ninstance AST.Unmarshal.SymbolMatching AssignmentPattern where\n  matchedSymbols _ = [182]\n  showFailure _ node_121 =\n    \"expected \"\n      GHC.Base.<> ( \"assignment_pattern\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_121 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_121) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_122 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_123 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_124 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_125 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_122\n        c1_123 = TreeSitter.Node.nodeStartPoint node_121\n      TreeSitter.Node.TSPoint\n        r2_124\n        c2_125 = TreeSitter.Node.nodeEndPoint node_121\n\nderiving instance GHC.Classes.Eq a_126 => GHC.Classes.Eq (AssignmentPattern a_126)\n\nderiving instance GHC.Classes.Ord a_127 => GHC.Classes.Ord (AssignmentPattern a_127)\n\nderiving instance GHC.Show.Show a_128 => GHC.Show.Show (AssignmentPattern a_128)\n\ninstance AST.Unmarshal.Unmarshal AssignmentPattern\n\ninstance Data.Foldable.Foldable AssignmentPattern where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AssignmentPattern where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AssignmentPattern where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AugmentedAssignmentExpression a = AugmentedAssignmentExpression\n  { ann :: a,\n    left :: (AST.Parse.Err ((Identifier GHC.Generics.:+: MemberExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: SubscriptExpression) a)),\n    right :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_129.\n      AST.Traversable1.Class.Traversable1 a_129\n    )\n\ninstance AST.Unmarshal.SymbolMatching AugmentedAssignmentExpression where\n  matchedSymbols _ = [200]\n  showFailure _ node_130 =\n    \"expected \"\n      GHC.Base.<> ( \"augmented_assignment_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_130 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_130) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_131 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_132 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_133 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_134 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_131\n        c1_132 = TreeSitter.Node.nodeStartPoint node_130\n      TreeSitter.Node.TSPoint\n        r2_133\n        c2_134 = TreeSitter.Node.nodeEndPoint node_130\n\nderiving instance GHC.Classes.Eq a_135 => GHC.Classes.Eq (AugmentedAssignmentExpression a_135)\n\nderiving instance GHC.Classes.Ord a_136 => GHC.Classes.Ord (AugmentedAssignmentExpression a_136)\n\nderiving instance GHC.Show.Show a_137 => GHC.Show.Show (AugmentedAssignmentExpression a_137)\n\ninstance AST.Unmarshal.Unmarshal AugmentedAssignmentExpression\n\ninstance Data.Foldable.Foldable AugmentedAssignmentExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AugmentedAssignmentExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AugmentedAssignmentExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata AwaitExpression a = AwaitExpression\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_138.\n      AST.Traversable1.Class.Traversable1 a_138\n    )\n\ninstance AST.Unmarshal.SymbolMatching AwaitExpression where\n  matchedSymbols _ = [196]\n  showFailure _ node_139 =\n    \"expected \"\n      GHC.Base.<> ( \"await_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_139 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_139) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_140 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_141 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_142 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_143 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_140\n        c1_141 = TreeSitter.Node.nodeStartPoint node_139\n      TreeSitter.Node.TSPoint\n        r2_142\n        c2_143 = TreeSitter.Node.nodeEndPoint node_139\n\nderiving instance GHC.Classes.Eq a_144 => GHC.Classes.Eq (AwaitExpression a_144)\n\nderiving instance GHC.Classes.Ord a_145 => GHC.Classes.Ord (AwaitExpression a_145)\n\nderiving instance GHC.Show.Show a_146 => GHC.Show.Show (AwaitExpression a_146)\n\ninstance AST.Unmarshal.Unmarshal AwaitExpression\n\ninstance Data.Foldable.Foldable AwaitExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor AwaitExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable AwaitExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BinaryExpression a = BinaryExpression\n  { ann :: a,\n    operator :: (AST.Parse.Err ((AnonymousBangEqual GHC.Generics.:+: AnonymousBangEqualEqual GHC.Generics.:+: AnonymousPercent GHC.Generics.:+: AnonymousAmpersand GHC.Generics.:+: AnonymousAmpersandAmpersand GHC.Generics.:+: AnonymousStar GHC.Generics.:+: AnonymousStarStar GHC.Generics.:+: AnonymousPlus GHC.Generics.:+: AnonymousMinus GHC.Generics.:+: AnonymousSlash GHC.Generics.:+: AnonymousLAngle GHC.Generics.:+: AnonymousLAngleLAngle GHC.Generics.:+: AnonymousLAngleEqual GHC.Generics.:+: AnonymousEqualEqual GHC.Generics.:+: AnonymousEqualEqualEqual GHC.Generics.:+: AnonymousRAngle GHC.Generics.:+: AnonymousRAngleEqual GHC.Generics.:+: AnonymousRAngleRAngle GHC.Generics.:+: AnonymousRAngleRAngleRAngle GHC.Generics.:+: AnonymousQuestionQuestion GHC.Generics.:+: AnonymousCaret GHC.Generics.:+: AnonymousIn GHC.Generics.:+: AnonymousInstanceof GHC.Generics.:+: AnonymousPipe GHC.Generics.:+: AnonymousPipePipe) a)),\n    left :: (AST.Parse.Err (Expression a)),\n    right :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_147.\n      AST.Traversable1.Class.Traversable1 a_147\n    )\n\ninstance AST.Unmarshal.SymbolMatching BinaryExpression where\n  matchedSymbols _ = [204]\n  showFailure _ node_148 =\n    \"expected \"\n      GHC.Base.<> ( \"binary_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_148 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_148) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_149 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_150 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_151 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_152 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_149\n        c1_150 = TreeSitter.Node.nodeStartPoint node_148\n      TreeSitter.Node.TSPoint\n        r2_151\n        c2_152 = TreeSitter.Node.nodeEndPoint node_148\n\nderiving instance GHC.Classes.Eq a_153 => GHC.Classes.Eq (BinaryExpression a_153)\n\nderiving instance GHC.Classes.Ord a_154 => GHC.Classes.Ord (BinaryExpression a_154)\n\nderiving instance GHC.Show.Show a_155 => GHC.Show.Show (BinaryExpression a_155)\n\ninstance AST.Unmarshal.Unmarshal BinaryExpression\n\ninstance Data.Foldable.Foldable BinaryExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BinaryExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BinaryExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata BreakStatement a = BreakStatement\n  { ann :: a,\n    label :: (GHC.Maybe.Maybe (AST.Parse.Err (StatementIdentifier a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_156.\n      AST.Traversable1.Class.Traversable1 a_156\n    )\n\ninstance AST.Unmarshal.SymbolMatching BreakStatement where\n  matchedSymbols _ = [166]\n  showFailure _ node_157 =\n    \"expected \"\n      GHC.Base.<> ( \"break_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_157 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_157) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_158 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_159 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_160 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_161 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_158\n        c1_159 = TreeSitter.Node.nodeStartPoint node_157\n      TreeSitter.Node.TSPoint\n        r2_160\n        c2_161 = TreeSitter.Node.nodeEndPoint node_157\n\nderiving instance GHC.Classes.Eq a_162 => GHC.Classes.Eq (BreakStatement a_162)\n\nderiving instance GHC.Classes.Ord a_163 => GHC.Classes.Ord (BreakStatement a_163)\n\nderiving instance GHC.Show.Show a_164 => GHC.Show.Show (BreakStatement a_164)\n\ninstance AST.Unmarshal.Unmarshal BreakStatement\n\ninstance Data.Foldable.Foldable BreakStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor BreakStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable BreakStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CallExpression a = CallExpression\n  { ann :: a,\n    function :: (AST.Parse.Err (Expression a)),\n    arguments :: (AST.Parse.Err ((Arguments GHC.Generics.:+: TemplateString) a)),\n    typeArguments :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeArguments a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_165.\n      AST.Traversable1.Class.Traversable1 a_165\n    )\n\ninstance AST.Unmarshal.SymbolMatching CallExpression where\n  matchedSymbols _ = [194, 216]\n  showFailure _ node_166 =\n    \"expected \"\n      GHC.Base.<> ( \"call_expression, call_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_166 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_166) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_167 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_168 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_169 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_170 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_167\n        c1_168 = TreeSitter.Node.nodeStartPoint node_166\n      TreeSitter.Node.TSPoint\n        r2_169\n        c2_170 = TreeSitter.Node.nodeEndPoint node_166\n\nderiving instance GHC.Classes.Eq a_171 => GHC.Classes.Eq (CallExpression a_171)\n\nderiving instance GHC.Classes.Ord a_172 => GHC.Classes.Ord (CallExpression a_172)\n\nderiving instance GHC.Show.Show a_173 => GHC.Show.Show (CallExpression a_173)\n\ninstance AST.Unmarshal.Unmarshal CallExpression\n\ninstance Data.Foldable.Foldable CallExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CallExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CallExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CallSignature a = CallSignature\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_174.\n      AST.Traversable1.Class.Traversable1 a_174\n    )\n\ninstance AST.Unmarshal.SymbolMatching CallSignature where\n  matchedSymbols _ = [268]\n  showFailure _ node_175 =\n    \"expected \"\n      GHC.Base.<> ( \"call_signature\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_175 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_175) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_176 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_177 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_178 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_179 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_176\n        c1_177 = TreeSitter.Node.nodeStartPoint node_175\n      TreeSitter.Node.TSPoint\n        r2_178\n        c2_179 = TreeSitter.Node.nodeEndPoint node_175\n\nderiving instance GHC.Classes.Eq a_180 => GHC.Classes.Eq (CallSignature a_180)\n\nderiving instance GHC.Classes.Ord a_181 => GHC.Classes.Ord (CallSignature a_181)\n\nderiving instance GHC.Show.Show a_182 => GHC.Show.Show (CallSignature a_182)\n\ninstance AST.Unmarshal.Unmarshal CallSignature\n\ninstance Data.Foldable.Foldable CallSignature where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CallSignature where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CallSignature where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata CatchClause a = CatchClause\n  { ann :: a,\n    body :: (AST.Parse.Err (StatementBlock a)),\n    parameter :: (GHC.Maybe.Maybe (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: Identifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_183.\n      AST.Traversable1.Class.Traversable1 a_183\n    )\n\ninstance AST.Unmarshal.SymbolMatching CatchClause where\n  matchedSymbols _ = [176]\n  showFailure _ node_184 =\n    \"expected \"\n      GHC.Base.<> ( \"catch_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_184 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_184) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_185 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_186 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_187 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_188 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_185\n        c1_186 = TreeSitter.Node.nodeStartPoint node_184\n      TreeSitter.Node.TSPoint\n        r2_187\n        c2_188 = TreeSitter.Node.nodeEndPoint node_184\n\nderiving instance GHC.Classes.Eq a_189 => GHC.Classes.Eq (CatchClause a_189)\n\nderiving instance GHC.Classes.Ord a_190 => GHC.Classes.Ord (CatchClause a_190)\n\nderiving instance GHC.Show.Show a_191 => GHC.Show.Show (CatchClause a_191)\n\ninstance AST.Unmarshal.Unmarshal CatchClause\n\ninstance Data.Foldable.Foldable CatchClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor CatchClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable CatchClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Class a = Class\n  { ann :: a,\n    decorator :: ([AST.Parse.Err (Decorator a)]),\n    body :: (AST.Parse.Err (ClassBody a)),\n    name :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeIdentifier a))),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ClassHeritage a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_192.\n      AST.Traversable1.Class.Traversable1 a_192\n    )\n\ninstance AST.Unmarshal.SymbolMatching Class where\n  matchedSymbols _ = [185]\n  showFailure _ node_193 =\n    \"expected \"\n      GHC.Base.<> ( \"class\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_193 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_193) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_194 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_195 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_196 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_197 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_194\n        c1_195 = TreeSitter.Node.nodeStartPoint node_193\n      TreeSitter.Node.TSPoint\n        r2_196\n        c2_197 = TreeSitter.Node.nodeEndPoint node_193\n\nderiving instance GHC.Classes.Eq a_198 => GHC.Classes.Eq (Class a_198)\n\nderiving instance GHC.Classes.Ord a_199 => GHC.Classes.Ord (Class a_199)\n\nderiving instance GHC.Show.Show a_200 => GHC.Show.Show (Class a_200)\n\ninstance AST.Unmarshal.Unmarshal Class\n\ninstance Data.Foldable.Foldable Class where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Class where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Class where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ClassBody a = ClassBody\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((AbstractMethodSignature GHC.Generics.:+: Decorator GHC.Generics.:+: IndexSignature GHC.Generics.:+: MethodDefinition GHC.Generics.:+: MethodSignature GHC.Generics.:+: PublicFieldDefinition) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_201.\n      AST.Traversable1.Class.Traversable1 a_201\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClassBody where\n  matchedSymbols _ = [217]\n  showFailure _ node_202 =\n    \"expected \"\n      GHC.Base.<> ( \"class_body\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_202 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_202) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_203 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_204 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_205 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_206 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_203\n        c1_204 = TreeSitter.Node.nodeStartPoint node_202\n      TreeSitter.Node.TSPoint\n        r2_205\n        c2_206 = TreeSitter.Node.nodeEndPoint node_202\n\nderiving instance GHC.Classes.Eq a_207 => GHC.Classes.Eq (ClassBody a_207)\n\nderiving instance GHC.Classes.Ord a_208 => GHC.Classes.Ord (ClassBody a_208)\n\nderiving instance GHC.Show.Show a_209 => GHC.Show.Show (ClassBody a_209)\n\ninstance AST.Unmarshal.Unmarshal ClassBody\n\ninstance Data.Foldable.Foldable ClassBody where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClassBody where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClassBody where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ClassDeclaration a = ClassDeclaration\n  { ann :: a,\n    decorator :: ([AST.Parse.Err (Decorator a)]),\n    body :: (AST.Parse.Err (ClassBody a)),\n    name :: (AST.Parse.Err (TypeIdentifier a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ClassHeritage a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_210.\n      AST.Traversable1.Class.Traversable1 a_210\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClassDeclaration where\n  matchedSymbols _ = [186]\n  showFailure _ node_211 =\n    \"expected \"\n      GHC.Base.<> ( \"class_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_211 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_211) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_212 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_213 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_214 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_215 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_212\n        c1_213 = TreeSitter.Node.nodeStartPoint node_211\n      TreeSitter.Node.TSPoint\n        r2_214\n        c2_215 = TreeSitter.Node.nodeEndPoint node_211\n\nderiving instance GHC.Classes.Eq a_216 => GHC.Classes.Eq (ClassDeclaration a_216)\n\nderiving instance GHC.Classes.Ord a_217 => GHC.Classes.Ord (ClassDeclaration a_217)\n\nderiving instance GHC.Show.Show a_218 => GHC.Show.Show (ClassDeclaration a_218)\n\ninstance AST.Unmarshal.Unmarshal ClassDeclaration\n\ninstance Data.Foldable.Foldable ClassDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClassDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClassDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ClassHeritage a = ClassHeritage\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ExtendsClause GHC.Generics.:+: ImplementsClause) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_219.\n      AST.Traversable1.Class.Traversable1 a_219\n    )\n\ninstance AST.Unmarshal.SymbolMatching ClassHeritage where\n  matchedSymbols _ = [187]\n  showFailure _ node_220 =\n    \"expected \"\n      GHC.Base.<> ( \"class_heritage\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_220 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_220) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_221 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_222 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_223 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_224 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_221\n        c1_222 = TreeSitter.Node.nodeStartPoint node_220\n      TreeSitter.Node.TSPoint\n        r2_223\n        c2_224 = TreeSitter.Node.nodeEndPoint node_220\n\nderiving instance GHC.Classes.Eq a_225 => GHC.Classes.Eq (ClassHeritage a_225)\n\nderiving instance GHC.Classes.Ord a_226 => GHC.Classes.Ord (ClassHeritage a_226)\n\nderiving instance GHC.Show.Show a_227 => GHC.Show.Show (ClassHeritage a_227)\n\ninstance AST.Unmarshal.Unmarshal ClassHeritage\n\ninstance Data.Foldable.Foldable ClassHeritage where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ClassHeritage where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ClassHeritage where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ComputedPropertyName a = ComputedPropertyName\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_228.\n      AST.Traversable1.Class.Traversable1 a_228\n    )\n\ninstance AST.Unmarshal.SymbolMatching ComputedPropertyName where\n  matchedSymbols _ = [224]\n  showFailure _ node_229 =\n    \"expected \"\n      GHC.Base.<> ( \"computed_property_name\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_229 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_229) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_230 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_231 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_232 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_233 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_230\n        c1_231 = TreeSitter.Node.nodeStartPoint node_229\n      TreeSitter.Node.TSPoint\n        r2_232\n        c2_233 = TreeSitter.Node.nodeEndPoint node_229\n\nderiving instance GHC.Classes.Eq a_234 => GHC.Classes.Eq (ComputedPropertyName a_234)\n\nderiving instance GHC.Classes.Ord a_235 => GHC.Classes.Ord (ComputedPropertyName a_235)\n\nderiving instance GHC.Show.Show a_236 => GHC.Show.Show (ComputedPropertyName a_236)\n\ninstance AST.Unmarshal.Unmarshal ComputedPropertyName\n\ninstance Data.Foldable.Foldable ComputedPropertyName where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ComputedPropertyName where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ComputedPropertyName where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Constraint a = Constraint\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_237.\n      AST.Traversable1.Class.Traversable1 a_237\n    )\n\ninstance AST.Unmarshal.SymbolMatching Constraint where\n  matchedSymbols _ = [273]\n  showFailure _ node_238 =\n    \"expected \"\n      GHC.Base.<> ( \"constraint\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_238 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_238) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_239 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_240 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_241 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_242 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_239\n        c1_240 = TreeSitter.Node.nodeStartPoint node_238\n      TreeSitter.Node.TSPoint\n        r2_241\n        c2_242 = TreeSitter.Node.nodeEndPoint node_238\n\nderiving instance GHC.Classes.Eq a_243 => GHC.Classes.Eq (Constraint a_243)\n\nderiving instance GHC.Classes.Ord a_244 => GHC.Classes.Ord (Constraint a_244)\n\nderiving instance GHC.Show.Show a_245 => GHC.Show.Show (Constraint a_245)\n\ninstance AST.Unmarshal.Unmarshal Constraint\n\ninstance Data.Foldable.Foldable Constraint where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Constraint where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Constraint where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ConstructSignature a = ConstructSignature\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((FormalParameters GHC.Generics.:+: TypeAnnotation GHC.Generics.:+: TypeParameters) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_246.\n      AST.Traversable1.Class.Traversable1 a_246\n    )\n\ninstance AST.Unmarshal.SymbolMatching ConstructSignature where\n  matchedSymbols _ = [274]\n  showFailure _ node_247 =\n    \"expected \"\n      GHC.Base.<> ( \"construct_signature\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_247 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_247) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_248 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_249 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_250 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_251 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_248\n        c1_249 = TreeSitter.Node.nodeStartPoint node_247\n      TreeSitter.Node.TSPoint\n        r2_250\n        c2_251 = TreeSitter.Node.nodeEndPoint node_247\n\nderiving instance GHC.Classes.Eq a_252 => GHC.Classes.Eq (ConstructSignature a_252)\n\nderiving instance GHC.Classes.Ord a_253 => GHC.Classes.Ord (ConstructSignature a_253)\n\nderiving instance GHC.Show.Show a_254 => GHC.Show.Show (ConstructSignature a_254)\n\ninstance AST.Unmarshal.Unmarshal ConstructSignature\n\ninstance Data.Foldable.Foldable ConstructSignature where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ConstructSignature where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ConstructSignature where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ConstructorType a = ConstructorType\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FormalParameters GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypeParameters GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_255.\n      AST.Traversable1.Class.Traversable1 a_255\n    )\n\ninstance AST.Unmarshal.SymbolMatching ConstructorType where\n  matchedSymbols _ = [252]\n  showFailure _ node_256 =\n    \"expected \"\n      GHC.Base.<> ( \"constructor_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_256 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_256) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_257 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_258 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_259 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_260 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_257\n        c1_258 = TreeSitter.Node.nodeStartPoint node_256\n      TreeSitter.Node.TSPoint\n        r2_259\n        c2_260 = TreeSitter.Node.nodeEndPoint node_256\n\nderiving instance GHC.Classes.Eq a_261 => GHC.Classes.Eq (ConstructorType a_261)\n\nderiving instance GHC.Classes.Ord a_262 => GHC.Classes.Ord (ConstructorType a_262)\n\nderiving instance GHC.Show.Show a_263 => GHC.Show.Show (ConstructorType a_263)\n\ninstance AST.Unmarshal.Unmarshal ConstructorType\n\ninstance Data.Foldable.Foldable ConstructorType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ConstructorType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ConstructorType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ContinueStatement a = ContinueStatement\n  { ann :: a,\n    label :: (GHC.Maybe.Maybe (AST.Parse.Err (StatementIdentifier a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_264.\n      AST.Traversable1.Class.Traversable1 a_264\n    )\n\ninstance AST.Unmarshal.SymbolMatching ContinueStatement where\n  matchedSymbols _ = [167]\n  showFailure _ node_265 =\n    \"expected \"\n      GHC.Base.<> ( \"continue_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_265 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_265) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_266 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_267 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_268 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_269 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_266\n        c1_267 = TreeSitter.Node.nodeStartPoint node_265\n      TreeSitter.Node.TSPoint\n        r2_268\n        c2_269 = TreeSitter.Node.nodeEndPoint node_265\n\nderiving instance GHC.Classes.Eq a_270 => GHC.Classes.Eq (ContinueStatement a_270)\n\nderiving instance GHC.Classes.Ord a_271 => GHC.Classes.Ord (ContinueStatement a_271)\n\nderiving instance GHC.Show.Show a_272 => GHC.Show.Show (ContinueStatement a_272)\n\ninstance AST.Unmarshal.Unmarshal ContinueStatement\n\ninstance Data.Foldable.Foldable ContinueStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ContinueStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ContinueStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DebuggerStatement a = DebuggerStatement {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_273.\n      AST.Traversable1.Class.Traversable1 a_273\n    )\n\ninstance AST.Unmarshal.SymbolMatching DebuggerStatement where\n  matchedSymbols _ = [168]\n  showFailure _ node_274 =\n    \"expected \"\n      GHC.Base.<> ( \"debugger_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_274 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_274) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_275 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_276 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_277 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_278 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_275\n        c1_276 = TreeSitter.Node.nodeStartPoint node_274\n      TreeSitter.Node.TSPoint\n        r2_277\n        c2_278 = TreeSitter.Node.nodeEndPoint node_274\n\nderiving instance GHC.Classes.Eq a_279 => GHC.Classes.Eq (DebuggerStatement a_279)\n\nderiving instance GHC.Classes.Ord a_280 => GHC.Classes.Ord (DebuggerStatement a_280)\n\nderiving instance GHC.Show.Show a_281 => GHC.Show.Show (DebuggerStatement a_281)\n\ninstance AST.Unmarshal.Unmarshal DebuggerStatement\n\ninstance Data.Foldable.Foldable DebuggerStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DebuggerStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DebuggerStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Decorator a = Decorator\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((CallExpression GHC.Generics.:+: Identifier GHC.Generics.:+: MemberExpression) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_282.\n      AST.Traversable1.Class.Traversable1 a_282\n    )\n\ninstance AST.Unmarshal.SymbolMatching Decorator where\n  matchedSymbols _ = [214]\n  showFailure _ node_283 =\n    \"expected \"\n      GHC.Base.<> ( \"decorator\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_283 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_283) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_284 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_285 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_286 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_287 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_284\n        c1_285 = TreeSitter.Node.nodeStartPoint node_283\n      TreeSitter.Node.TSPoint\n        r2_286\n        c2_287 = TreeSitter.Node.nodeEndPoint node_283\n\nderiving instance GHC.Classes.Eq a_288 => GHC.Classes.Eq (Decorator a_288)\n\nderiving instance GHC.Classes.Ord a_289 => GHC.Classes.Ord (Decorator a_289)\n\nderiving instance GHC.Show.Show a_290 => GHC.Show.Show (Decorator a_290)\n\ninstance AST.Unmarshal.Unmarshal Decorator\n\ninstance Data.Foldable.Foldable Decorator where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Decorator where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Decorator where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DefaultType a = DefaultType\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_291.\n      AST.Traversable1.Class.Traversable1 a_291\n    )\n\ninstance AST.Unmarshal.SymbolMatching DefaultType where\n  matchedSymbols _ = [272]\n  showFailure _ node_292 =\n    \"expected \"\n      GHC.Base.<> ( \"default_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_292 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_292) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_293 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_294 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_295 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_296 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_293\n        c1_294 = TreeSitter.Node.nodeStartPoint node_292\n      TreeSitter.Node.TSPoint\n        r2_295\n        c2_296 = TreeSitter.Node.nodeEndPoint node_292\n\nderiving instance GHC.Classes.Eq a_297 => GHC.Classes.Eq (DefaultType a_297)\n\nderiving instance GHC.Classes.Ord a_298 => GHC.Classes.Ord (DefaultType a_298)\n\nderiving instance GHC.Show.Show a_299 => GHC.Show.Show (DefaultType a_299)\n\ninstance AST.Unmarshal.Unmarshal DefaultType\n\ninstance Data.Foldable.Foldable DefaultType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DefaultType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DefaultType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata DoStatement a = DoStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (Statement a)),\n    condition :: (AST.Parse.Err (ParenthesizedExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_300.\n      AST.Traversable1.Class.Traversable1 a_300\n    )\n\ninstance AST.Unmarshal.SymbolMatching DoStatement where\n  matchedSymbols _ = [163]\n  showFailure _ node_301 =\n    \"expected \"\n      GHC.Base.<> ( \"do_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_301 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_301) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_302 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_303 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_304 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_305 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_302\n        c1_303 = TreeSitter.Node.nodeStartPoint node_301\n      TreeSitter.Node.TSPoint\n        r2_304\n        c2_305 = TreeSitter.Node.nodeEndPoint node_301\n\nderiving instance GHC.Classes.Eq a_306 => GHC.Classes.Eq (DoStatement a_306)\n\nderiving instance GHC.Classes.Ord a_307 => GHC.Classes.Ord (DoStatement a_307)\n\nderiving instance GHC.Show.Show a_308 => GHC.Show.Show (DoStatement a_308)\n\ninstance AST.Unmarshal.Unmarshal DoStatement\n\ninstance Data.Foldable.Foldable DoStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor DoStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable DoStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata EmptyStatement a = EmptyStatement {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_309.\n      AST.Traversable1.Class.Traversable1 a_309\n    )\n\ninstance AST.Unmarshal.SymbolMatching EmptyStatement where\n  matchedSymbols _ = [171]\n  showFailure _ node_310 =\n    \"expected \"\n      GHC.Base.<> ( \"empty_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_310 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_310) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_311 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_312 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_313 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_314 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_311\n        c1_312 = TreeSitter.Node.nodeStartPoint node_310\n      TreeSitter.Node.TSPoint\n        r2_313\n        c2_314 = TreeSitter.Node.nodeEndPoint node_310\n\nderiving instance GHC.Classes.Eq a_315 => GHC.Classes.Eq (EmptyStatement a_315)\n\nderiving instance GHC.Classes.Ord a_316 => GHC.Classes.Ord (EmptyStatement a_316)\n\nderiving instance GHC.Show.Show a_317 => GHC.Show.Show (EmptyStatement a_317)\n\ninstance AST.Unmarshal.Unmarshal EmptyStatement\n\ninstance Data.Foldable.Foldable EmptyStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EmptyStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EmptyStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata EnumAssignment a = EnumAssignment\n  { ann :: a,\n    value :: (AST.Parse.Err (Expression a)),\n    extraChildren :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_318.\n      AST.Traversable1.Class.Traversable1 a_318\n    )\n\ninstance AST.Unmarshal.SymbolMatching EnumAssignment where\n  matchedSymbols _ = [244]\n  showFailure _ node_319 =\n    \"expected \"\n      GHC.Base.<> ( \"enum_assignment\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_319 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_319) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_320 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_321 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_322 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_323 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_320\n        c1_321 = TreeSitter.Node.nodeStartPoint node_319\n      TreeSitter.Node.TSPoint\n        r2_322\n        c2_323 = TreeSitter.Node.nodeEndPoint node_319\n\nderiving instance GHC.Classes.Eq a_324 => GHC.Classes.Eq (EnumAssignment a_324)\n\nderiving instance GHC.Classes.Ord a_325 => GHC.Classes.Ord (EnumAssignment a_325)\n\nderiving instance GHC.Show.Show a_326 => GHC.Show.Show (EnumAssignment a_326)\n\ninstance AST.Unmarshal.Unmarshal EnumAssignment\n\ninstance Data.Foldable.Foldable EnumAssignment where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EnumAssignment where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EnumAssignment where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata EnumBody a = EnumBody\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: EnumAssignment GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_327.\n      AST.Traversable1.Class.Traversable1 a_327\n    )\n\ninstance AST.Unmarshal.SymbolMatching EnumBody where\n  matchedSymbols _ = [243]\n  showFailure _ node_328 =\n    \"expected \"\n      GHC.Base.<> ( \"enum_body\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_328 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_328) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_329 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_330 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_331 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_332 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_329\n        c1_330 = TreeSitter.Node.nodeStartPoint node_328\n      TreeSitter.Node.TSPoint\n        r2_331\n        c2_332 = TreeSitter.Node.nodeEndPoint node_328\n\nderiving instance GHC.Classes.Eq a_333 => GHC.Classes.Eq (EnumBody a_333)\n\nderiving instance GHC.Classes.Ord a_334 => GHC.Classes.Ord (EnumBody a_334)\n\nderiving instance GHC.Show.Show a_335 => GHC.Show.Show (EnumBody a_335)\n\ninstance AST.Unmarshal.Unmarshal EnumBody\n\ninstance Data.Foldable.Foldable EnumBody where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EnumBody where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EnumBody where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata EnumDeclaration a = EnumDeclaration\n  { ann :: a,\n    body :: (AST.Parse.Err (EnumBody a)),\n    name :: (AST.Parse.Err (Identifier a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_336.\n      AST.Traversable1.Class.Traversable1 a_336\n    )\n\ninstance AST.Unmarshal.SymbolMatching EnumDeclaration where\n  matchedSymbols _ = [242]\n  showFailure _ node_337 =\n    \"expected \"\n      GHC.Base.<> ( \"enum_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_337 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_337) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_338 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_339 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_340 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_341 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_338\n        c1_339 = TreeSitter.Node.nodeStartPoint node_337\n      TreeSitter.Node.TSPoint\n        r2_340\n        c2_341 = TreeSitter.Node.nodeEndPoint node_337\n\nderiving instance GHC.Classes.Eq a_342 => GHC.Classes.Eq (EnumDeclaration a_342)\n\nderiving instance GHC.Classes.Ord a_343 => GHC.Classes.Ord (EnumDeclaration a_343)\n\nderiving instance GHC.Show.Show a_344 => GHC.Show.Show (EnumDeclaration a_344)\n\ninstance AST.Unmarshal.Unmarshal EnumDeclaration\n\ninstance Data.Foldable.Foldable EnumDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EnumDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EnumDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExistentialType a = ExistentialType {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_345.\n      AST.Traversable1.Class.Traversable1 a_345\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExistentialType where\n  matchedSymbols _ = [262]\n  showFailure _ node_346 =\n    \"expected \"\n      GHC.Base.<> ( \"existential_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_346 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_346) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_347 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_348 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_349 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_350 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_347\n        c1_348 = TreeSitter.Node.nodeStartPoint node_346\n      TreeSitter.Node.TSPoint\n        r2_349\n        c2_350 = TreeSitter.Node.nodeEndPoint node_346\n\nderiving instance GHC.Classes.Eq a_351 => GHC.Classes.Eq (ExistentialType a_351)\n\nderiving instance GHC.Classes.Ord a_352 => GHC.Classes.Ord (ExistentialType a_352)\n\nderiving instance GHC.Show.Show a_353 => GHC.Show.Show (ExistentialType a_353)\n\ninstance AST.Unmarshal.Unmarshal ExistentialType\n\ninstance Data.Foldable.Foldable ExistentialType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExistentialType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExistentialType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExportClause a = ExportClause\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (ExportSpecifier a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_354.\n      AST.Traversable1.Class.Traversable1 a_354\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExportClause where\n  matchedSymbols _ = [143]\n  showFailure _ node_355 =\n    \"expected \"\n      GHC.Base.<> ( \"export_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_355 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_355) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_356 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_357 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_358 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_359 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_356\n        c1_357 = TreeSitter.Node.nodeStartPoint node_355\n      TreeSitter.Node.TSPoint\n        r2_358\n        c2_359 = TreeSitter.Node.nodeEndPoint node_355\n\nderiving instance GHC.Classes.Eq a_360 => GHC.Classes.Eq (ExportClause a_360)\n\nderiving instance GHC.Classes.Ord a_361 => GHC.Classes.Ord (ExportClause a_361)\n\nderiving instance GHC.Show.Show a_362 => GHC.Show.Show (ExportClause a_362)\n\ninstance AST.Unmarshal.Unmarshal ExportClause\n\ninstance Data.Foldable.Foldable ExportClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExportClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExportClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExportSpecifier a = ExportSpecifier\n  { ann :: a,\n    alias :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))),\n    name :: (AST.Parse.Err (Identifier a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_363.\n      AST.Traversable1.Class.Traversable1 a_363\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExportSpecifier where\n  matchedSymbols _ = [300]\n  showFailure _ node_364 =\n    \"expected \"\n      GHC.Base.<> ( \"export_specifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_364 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_364) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_365 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_366 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_367 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_368 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_365\n        c1_366 = TreeSitter.Node.nodeStartPoint node_364\n      TreeSitter.Node.TSPoint\n        r2_367\n        c2_368 = TreeSitter.Node.nodeEndPoint node_364\n\nderiving instance GHC.Classes.Eq a_369 => GHC.Classes.Eq (ExportSpecifier a_369)\n\nderiving instance GHC.Classes.Ord a_370 => GHC.Classes.Ord (ExportSpecifier a_370)\n\nderiving instance GHC.Show.Show a_371 => GHC.Show.Show (ExportSpecifier a_371)\n\ninstance AST.Unmarshal.Unmarshal ExportSpecifier\n\ninstance Data.Foldable.Foldable ExportSpecifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExportSpecifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExportSpecifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExportStatement a = ExportStatement\n  { ann :: a,\n    decorator :: ([AST.Parse.Err (Decorator a)]),\n    declaration :: (GHC.Maybe.Maybe (AST.Parse.Err (Declaration a))),\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    source :: (GHC.Maybe.Maybe (AST.Parse.Err (String a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((ExportClause GHC.Generics.:+: Identifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_372.\n      AST.Traversable1.Class.Traversable1 a_372\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExportStatement where\n  matchedSymbols _ = [142]\n  showFailure _ node_373 =\n    \"expected \"\n      GHC.Base.<> ( \"export_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_373 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_373) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_374 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_375 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_376 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_377 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_374\n        c1_375 = TreeSitter.Node.nodeStartPoint node_373\n      TreeSitter.Node.TSPoint\n        r2_376\n        c2_377 = TreeSitter.Node.nodeEndPoint node_373\n\nderiving instance GHC.Classes.Eq a_378 => GHC.Classes.Eq (ExportStatement a_378)\n\nderiving instance GHC.Classes.Ord a_379 => GHC.Classes.Ord (ExportStatement a_379)\n\nderiving instance GHC.Show.Show a_380 => GHC.Show.Show (ExportStatement a_380)\n\ninstance AST.Unmarshal.Unmarshal ExportStatement\n\ninstance Data.Foldable.Foldable ExportStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExportStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExportStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExpressionStatement a = ExpressionStatement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_381.\n      AST.Traversable1.Class.Traversable1 a_381\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExpressionStatement where\n  matchedSymbols _ = [152]\n  showFailure _ node_382 =\n    \"expected \"\n      GHC.Base.<> ( \"expression_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_382 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_382) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_383 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_384 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_385 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_386 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_383\n        c1_384 = TreeSitter.Node.nodeStartPoint node_382\n      TreeSitter.Node.TSPoint\n        r2_385\n        c2_386 = TreeSitter.Node.nodeEndPoint node_382\n\nderiving instance GHC.Classes.Eq a_387 => GHC.Classes.Eq (ExpressionStatement a_387)\n\nderiving instance GHC.Classes.Ord a_388 => GHC.Classes.Ord (ExpressionStatement a_388)\n\nderiving instance GHC.Show.Show a_389 => GHC.Show.Show (ExpressionStatement a_389)\n\ninstance AST.Unmarshal.Unmarshal ExpressionStatement\n\ninstance Data.Foldable.Foldable ExpressionStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExpressionStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExpressionStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ExtendsClause a = ExtendsClause\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: GenericType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: TypeIdentifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_390.\n      AST.Traversable1.Class.Traversable1 a_390\n    )\n\ninstance AST.Unmarshal.SymbolMatching ExtendsClause where\n  matchedSymbols _ = [241]\n  showFailure _ node_391 =\n    \"expected \"\n      GHC.Base.<> ( \"extends_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_391 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_391) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_392 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_393 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_394 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_395 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_392\n        c1_393 = TreeSitter.Node.nodeStartPoint node_391\n      TreeSitter.Node.TSPoint\n        r2_394\n        c2_395 = TreeSitter.Node.nodeEndPoint node_391\n\nderiving instance GHC.Classes.Eq a_396 => GHC.Classes.Eq (ExtendsClause a_396)\n\nderiving instance GHC.Classes.Ord a_397 => GHC.Classes.Ord (ExtendsClause a_397)\n\nderiving instance GHC.Show.Show a_398 => GHC.Show.Show (ExtendsClause a_398)\n\ninstance AST.Unmarshal.Unmarshal ExtendsClause\n\ninstance Data.Foldable.Foldable ExtendsClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ExtendsClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ExtendsClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FinallyClause a = FinallyClause\n  { ann :: a,\n    body :: (AST.Parse.Err (StatementBlock a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_399.\n      AST.Traversable1.Class.Traversable1 a_399\n    )\n\ninstance AST.Unmarshal.SymbolMatching FinallyClause where\n  matchedSymbols _ = [177]\n  showFailure _ node_400 =\n    \"expected \"\n      GHC.Base.<> ( \"finally_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_400 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_400) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_401 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_402 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_403 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_404 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_401\n        c1_402 = TreeSitter.Node.nodeStartPoint node_400\n      TreeSitter.Node.TSPoint\n        r2_403\n        c2_404 = TreeSitter.Node.nodeEndPoint node_400\n\nderiving instance GHC.Classes.Eq a_405 => GHC.Classes.Eq (FinallyClause a_405)\n\nderiving instance GHC.Classes.Ord a_406 => GHC.Classes.Ord (FinallyClause a_406)\n\nderiving instance GHC.Show.Show a_407 => GHC.Show.Show (FinallyClause a_407)\n\ninstance AST.Unmarshal.Unmarshal FinallyClause\n\ninstance Data.Foldable.Foldable FinallyClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FinallyClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FinallyClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FlowMaybeType a = FlowMaybeType\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((ArrayType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_408.\n      AST.Traversable1.Class.Traversable1 a_408\n    )\n\ninstance AST.Unmarshal.SymbolMatching FlowMaybeType where\n  matchedSymbols _ = [263]\n  showFailure _ node_409 =\n    \"expected \"\n      GHC.Base.<> ( \"flow_maybe_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_409 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_409) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_410 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_411 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_412 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_413 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_410\n        c1_411 = TreeSitter.Node.nodeStartPoint node_409\n      TreeSitter.Node.TSPoint\n        r2_412\n        c2_413 = TreeSitter.Node.nodeEndPoint node_409\n\nderiving instance GHC.Classes.Eq a_414 => GHC.Classes.Eq (FlowMaybeType a_414)\n\nderiving instance GHC.Classes.Ord a_415 => GHC.Classes.Ord (FlowMaybeType a_415)\n\nderiving instance GHC.Show.Show a_416 => GHC.Show.Show (FlowMaybeType a_416)\n\ninstance AST.Unmarshal.Unmarshal FlowMaybeType\n\ninstance Data.Foldable.Foldable FlowMaybeType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FlowMaybeType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FlowMaybeType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ForInStatement a = ForInStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (Statement a)),\n    left :: (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: Identifier GHC.Generics.:+: MemberExpression GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: SubscriptExpression) a)),\n    right :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_417.\n      AST.Traversable1.Class.Traversable1 a_417\n    )\n\ninstance AST.Unmarshal.SymbolMatching ForInStatement where\n  matchedSymbols _ = [160]\n  showFailure _ node_418 =\n    \"expected \"\n      GHC.Base.<> ( \"for_in_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_418 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_418) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_419 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_420 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_421 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_422 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_419\n        c1_420 = TreeSitter.Node.nodeStartPoint node_418\n      TreeSitter.Node.TSPoint\n        r2_421\n        c2_422 = TreeSitter.Node.nodeEndPoint node_418\n\nderiving instance GHC.Classes.Eq a_423 => GHC.Classes.Eq (ForInStatement a_423)\n\nderiving instance GHC.Classes.Ord a_424 => GHC.Classes.Ord (ForInStatement a_424)\n\nderiving instance GHC.Show.Show a_425 => GHC.Show.Show (ForInStatement a_425)\n\ninstance AST.Unmarshal.Unmarshal ForInStatement\n\ninstance Data.Foldable.Foldable ForInStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ForInStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ForInStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ForStatement a = ForStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (Statement a)),\n    initializer :: (AST.Parse.Err ((EmptyStatement GHC.Generics.:+: ExpressionStatement GHC.Generics.:+: LexicalDeclaration GHC.Generics.:+: VariableDeclaration) a)),\n    condition :: (AST.Parse.Err ((EmptyStatement GHC.Generics.:+: ExpressionStatement) a)),\n    increment :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_426.\n      AST.Traversable1.Class.Traversable1 a_426\n    )\n\ninstance AST.Unmarshal.SymbolMatching ForStatement where\n  matchedSymbols _ = [159]\n  showFailure _ node_427 =\n    \"expected \"\n      GHC.Base.<> ( \"for_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_427 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_427) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_428 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_429 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_430 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_431 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_428\n        c1_429 = TreeSitter.Node.nodeStartPoint node_427\n      TreeSitter.Node.TSPoint\n        r2_430\n        c2_431 = TreeSitter.Node.nodeEndPoint node_427\n\nderiving instance GHC.Classes.Eq a_432 => GHC.Classes.Eq (ForStatement a_432)\n\nderiving instance GHC.Classes.Ord a_433 => GHC.Classes.Ord (ForStatement a_433)\n\nderiving instance GHC.Show.Show a_434 => GHC.Show.Show (ForStatement a_434)\n\ninstance AST.Unmarshal.Unmarshal ForStatement\n\ninstance Data.Foldable.Foldable ForStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ForStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ForStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FormalParameters a = FormalParameters\n  { ann :: a,\n    decorator :: ([AST.Parse.Err (Decorator a)]),\n    extraChildren :: ([AST.Parse.Err ((OptionalParameter GHC.Generics.:+: RequiredParameter GHC.Generics.:+: RestParameter) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_435.\n      AST.Traversable1.Class.Traversable1 a_435\n    )\n\ninstance AST.Unmarshal.SymbolMatching FormalParameters where\n  matchedSymbols _ = [219]\n  showFailure _ node_436 =\n    \"expected \"\n      GHC.Base.<> ( \"formal_parameters\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_436 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_436) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_437 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_438 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_439 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_440 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_437\n        c1_438 = TreeSitter.Node.nodeStartPoint node_436\n      TreeSitter.Node.TSPoint\n        r2_439\n        c2_440 = TreeSitter.Node.nodeEndPoint node_436\n\nderiving instance GHC.Classes.Eq a_441 => GHC.Classes.Eq (FormalParameters a_441)\n\nderiving instance GHC.Classes.Ord a_442 => GHC.Classes.Ord (FormalParameters a_442)\n\nderiving instance GHC.Show.Show a_443 => GHC.Show.Show (FormalParameters a_443)\n\ninstance AST.Unmarshal.Unmarshal FormalParameters\n\ninstance Data.Foldable.Foldable FormalParameters where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FormalParameters where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FormalParameters where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Function a = Function\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    body :: (AST.Parse.Err (StatementBlock a)),\n    name :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_444.\n      AST.Traversable1.Class.Traversable1 a_444\n    )\n\ninstance AST.Unmarshal.SymbolMatching Function where\n  matchedSymbols _ = [188]\n  showFailure _ node_445 =\n    \"expected \"\n      GHC.Base.<> ( \"function\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_445 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_445) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_446 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_447 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_448 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_449 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_446\n        c1_447 = TreeSitter.Node.nodeStartPoint node_445\n      TreeSitter.Node.TSPoint\n        r2_448\n        c2_449 = TreeSitter.Node.nodeEndPoint node_445\n\nderiving instance GHC.Classes.Eq a_450 => GHC.Classes.Eq (Function a_450)\n\nderiving instance GHC.Classes.Ord a_451 => GHC.Classes.Ord (Function a_451)\n\nderiving instance GHC.Show.Show a_452 => GHC.Show.Show (Function a_452)\n\ninstance AST.Unmarshal.Unmarshal Function\n\ninstance Data.Foldable.Foldable Function where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Function where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Function where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FunctionDeclaration a = FunctionDeclaration\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    body :: (AST.Parse.Err (StatementBlock a)),\n    name :: (AST.Parse.Err (Identifier a)),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_453.\n      AST.Traversable1.Class.Traversable1 a_453\n    )\n\ninstance AST.Unmarshal.SymbolMatching FunctionDeclaration where\n  matchedSymbols _ = [189]\n  showFailure _ node_454 =\n    \"expected \"\n      GHC.Base.<> ( \"function_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_454 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_454) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_455 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_456 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_457 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_458 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_455\n        c1_456 = TreeSitter.Node.nodeStartPoint node_454\n      TreeSitter.Node.TSPoint\n        r2_457\n        c2_458 = TreeSitter.Node.nodeEndPoint node_454\n\nderiving instance GHC.Classes.Eq a_459 => GHC.Classes.Eq (FunctionDeclaration a_459)\n\nderiving instance GHC.Classes.Ord a_460 => GHC.Classes.Ord (FunctionDeclaration a_460)\n\nderiving instance GHC.Show.Show a_461 => GHC.Show.Show (FunctionDeclaration a_461)\n\ninstance AST.Unmarshal.Unmarshal FunctionDeclaration\n\ninstance Data.Foldable.Foldable FunctionDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FunctionDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FunctionDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FunctionSignature a = FunctionSignature\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    name :: (AST.Parse.Err (Identifier a)),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_462.\n      AST.Traversable1.Class.Traversable1 a_462\n    )\n\ninstance AST.Unmarshal.SymbolMatching FunctionSignature where\n  matchedSymbols _ = [228]\n  showFailure _ node_463 =\n    \"expected \"\n      GHC.Base.<> ( \"function_signature\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_463 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_463) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_464 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_465 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_466 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_467 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_464\n        c1_465 = TreeSitter.Node.nodeStartPoint node_463\n      TreeSitter.Node.TSPoint\n        r2_466\n        c2_467 = TreeSitter.Node.nodeEndPoint node_463\n\nderiving instance GHC.Classes.Eq a_468 => GHC.Classes.Eq (FunctionSignature a_468)\n\nderiving instance GHC.Classes.Ord a_469 => GHC.Classes.Ord (FunctionSignature a_469)\n\nderiving instance GHC.Show.Show a_470 => GHC.Show.Show (FunctionSignature a_470)\n\ninstance AST.Unmarshal.Unmarshal FunctionSignature\n\ninstance Data.Foldable.Foldable FunctionSignature where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FunctionSignature where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FunctionSignature where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata FunctionType a = FunctionType\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FormalParameters GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypeParameters GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_471.\n      AST.Traversable1.Class.Traversable1 a_471\n    )\n\ninstance AST.Unmarshal.SymbolMatching FunctionType where\n  matchedSymbols _ = [280]\n  showFailure _ node_472 =\n    \"expected \"\n      GHC.Base.<> ( \"function_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_472 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_472) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_473 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_474 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_475 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_476 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_473\n        c1_474 = TreeSitter.Node.nodeStartPoint node_472\n      TreeSitter.Node.TSPoint\n        r2_475\n        c2_476 = TreeSitter.Node.nodeEndPoint node_472\n\nderiving instance GHC.Classes.Eq a_477 => GHC.Classes.Eq (FunctionType a_477)\n\nderiving instance GHC.Classes.Ord a_478 => GHC.Classes.Ord (FunctionType a_478)\n\nderiving instance GHC.Show.Show a_479 => GHC.Show.Show (FunctionType a_479)\n\ninstance AST.Unmarshal.Unmarshal FunctionType\n\ninstance Data.Foldable.Foldable FunctionType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor FunctionType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable FunctionType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata GeneratorFunction a = GeneratorFunction\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    body :: (AST.Parse.Err (StatementBlock a)),\n    name :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_480.\n      AST.Traversable1.Class.Traversable1 a_480\n    )\n\ninstance AST.Unmarshal.SymbolMatching GeneratorFunction where\n  matchedSymbols _ = [190]\n  showFailure _ node_481 =\n    \"expected \"\n      GHC.Base.<> ( \"generator_function\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_481 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_481) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_482 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_483 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_484 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_485 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_482\n        c1_483 = TreeSitter.Node.nodeStartPoint node_481\n      TreeSitter.Node.TSPoint\n        r2_484\n        c2_485 = TreeSitter.Node.nodeEndPoint node_481\n\nderiving instance GHC.Classes.Eq a_486 => GHC.Classes.Eq (GeneratorFunction a_486)\n\nderiving instance GHC.Classes.Ord a_487 => GHC.Classes.Ord (GeneratorFunction a_487)\n\nderiving instance GHC.Show.Show a_488 => GHC.Show.Show (GeneratorFunction a_488)\n\ninstance AST.Unmarshal.Unmarshal GeneratorFunction\n\ninstance Data.Foldable.Foldable GeneratorFunction where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor GeneratorFunction where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable GeneratorFunction where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata GeneratorFunctionDeclaration a = GeneratorFunctionDeclaration\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    body :: (AST.Parse.Err (StatementBlock a)),\n    name :: (AST.Parse.Err (Identifier a)),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_489.\n      AST.Traversable1.Class.Traversable1 a_489\n    )\n\ninstance AST.Unmarshal.SymbolMatching GeneratorFunctionDeclaration where\n  matchedSymbols _ = [191]\n  showFailure _ node_490 =\n    \"expected \"\n      GHC.Base.<> ( \"generator_function_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_490 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_490) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_491 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_492 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_493 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_494 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_491\n        c1_492 = TreeSitter.Node.nodeStartPoint node_490\n      TreeSitter.Node.TSPoint\n        r2_493\n        c2_494 = TreeSitter.Node.nodeEndPoint node_490\n\nderiving instance GHC.Classes.Eq a_495 => GHC.Classes.Eq (GeneratorFunctionDeclaration a_495)\n\nderiving instance GHC.Classes.Ord a_496 => GHC.Classes.Ord (GeneratorFunctionDeclaration a_496)\n\nderiving instance GHC.Show.Show a_497 => GHC.Show.Show (GeneratorFunctionDeclaration a_497)\n\ninstance AST.Unmarshal.Unmarshal GeneratorFunctionDeclaration\n\ninstance Data.Foldable.Foldable GeneratorFunctionDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor GeneratorFunctionDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable GeneratorFunctionDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata GenericType a = GenericType\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((NestedTypeIdentifier GHC.Generics.:+: TypeArguments GHC.Generics.:+: TypeIdentifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_498.\n      AST.Traversable1.Class.Traversable1 a_498\n    )\n\ninstance AST.Unmarshal.SymbolMatching GenericType where\n  matchedSymbols _ = [254]\n  showFailure _ node_499 =\n    \"expected \"\n      GHC.Base.<> ( \"generic_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_499 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_499) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_500 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_501 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_502 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_503 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_500\n        c1_501 = TreeSitter.Node.nodeStartPoint node_499\n      TreeSitter.Node.TSPoint\n        r2_502\n        c2_503 = TreeSitter.Node.nodeEndPoint node_499\n\nderiving instance GHC.Classes.Eq a_504 => GHC.Classes.Eq (GenericType a_504)\n\nderiving instance GHC.Classes.Ord a_505 => GHC.Classes.Ord (GenericType a_505)\n\nderiving instance GHC.Show.Show a_506 => GHC.Show.Show (GenericType a_506)\n\ninstance AST.Unmarshal.Unmarshal GenericType\n\ninstance Data.Foldable.Foldable GenericType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor GenericType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable GenericType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IfStatement a = IfStatement\n  { ann :: a,\n    alternative :: (GHC.Maybe.Maybe (AST.Parse.Err (Statement a))),\n    consequence :: (AST.Parse.Err (Statement a)),\n    condition :: (AST.Parse.Err (ParenthesizedExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_507.\n      AST.Traversable1.Class.Traversable1 a_507\n    )\n\ninstance AST.Unmarshal.SymbolMatching IfStatement where\n  matchedSymbols _ = [157]\n  showFailure _ node_508 =\n    \"expected \"\n      GHC.Base.<> ( \"if_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_508 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_508) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_509 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_510 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_511 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_512 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_509\n        c1_510 = TreeSitter.Node.nodeStartPoint node_508\n      TreeSitter.Node.TSPoint\n        r2_511\n        c2_512 = TreeSitter.Node.nodeEndPoint node_508\n\nderiving instance GHC.Classes.Eq a_513 => GHC.Classes.Eq (IfStatement a_513)\n\nderiving instance GHC.Classes.Ord a_514 => GHC.Classes.Ord (IfStatement a_514)\n\nderiving instance GHC.Show.Show a_515 => GHC.Show.Show (IfStatement a_515)\n\ninstance AST.Unmarshal.Unmarshal IfStatement\n\ninstance Data.Foldable.Foldable IfStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IfStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IfStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImplementsClause a = ImplementsClause\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_516.\n      AST.Traversable1.Class.Traversable1 a_516\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImplementsClause where\n  matchedSymbols _ = [232]\n  showFailure _ node_517 =\n    \"expected \"\n      GHC.Base.<> ( \"implements_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_517 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_517) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_518 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_519 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_520 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_521 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_518\n        c1_519 = TreeSitter.Node.nodeStartPoint node_517\n      TreeSitter.Node.TSPoint\n        r2_520\n        c2_521 = TreeSitter.Node.nodeEndPoint node_517\n\nderiving instance GHC.Classes.Eq a_522 => GHC.Classes.Eq (ImplementsClause a_522)\n\nderiving instance GHC.Classes.Ord a_523 => GHC.Classes.Ord (ImplementsClause a_523)\n\nderiving instance GHC.Show.Show a_524 => GHC.Show.Show (ImplementsClause a_524)\n\ninstance AST.Unmarshal.Unmarshal ImplementsClause\n\ninstance Data.Foldable.Foldable ImplementsClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImplementsClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImplementsClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Import a = Import {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_525.\n      AST.Traversable1.Class.Traversable1 a_525\n    )\n\ninstance AST.Unmarshal.SymbolMatching Import where\n  matchedSymbols _ = [146]\n  showFailure _ node_526 =\n    \"expected \"\n      GHC.Base.<> ( \"import\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_526 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_526) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_527 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_528 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_529 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_530 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_527\n        c1_528 = TreeSitter.Node.nodeStartPoint node_526\n      TreeSitter.Node.TSPoint\n        r2_529\n        c2_530 = TreeSitter.Node.nodeEndPoint node_526\n\nderiving instance GHC.Classes.Eq a_531 => GHC.Classes.Eq (Import a_531)\n\nderiving instance GHC.Classes.Ord a_532 => GHC.Classes.Ord (Import a_532)\n\nderiving instance GHC.Show.Show a_533 => GHC.Show.Show (Import a_533)\n\ninstance AST.Unmarshal.Unmarshal Import\n\ninstance Data.Foldable.Foldable Import where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Import where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Import where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImportAlias a = ImportAlias\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_534.\n      AST.Traversable1.Class.Traversable1 a_534\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImportAlias where\n  matchedSymbols _ = [238]\n  showFailure _ node_535 =\n    \"expected \"\n      GHC.Base.<> ( \"import_alias\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_535 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_535) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_536 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_537 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_538 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_539 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_536\n        c1_537 = TreeSitter.Node.nodeStartPoint node_535\n      TreeSitter.Node.TSPoint\n        r2_538\n        c2_539 = TreeSitter.Node.nodeEndPoint node_535\n\nderiving instance GHC.Classes.Eq a_540 => GHC.Classes.Eq (ImportAlias a_540)\n\nderiving instance GHC.Classes.Ord a_541 => GHC.Classes.Ord (ImportAlias a_541)\n\nderiving instance GHC.Show.Show a_542 => GHC.Show.Show (ImportAlias a_542)\n\ninstance AST.Unmarshal.Unmarshal ImportAlias\n\ninstance Data.Foldable.Foldable ImportAlias where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImportAlias where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImportAlias where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImportClause a = ImportClause\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: NamedImports GHC.Generics.:+: NamespaceImport) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_543.\n      AST.Traversable1.Class.Traversable1 a_543\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImportClause where\n  matchedSymbols _ = [148]\n  showFailure _ node_544 =\n    \"expected \"\n      GHC.Base.<> ( \"import_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_544 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_544) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_545 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_546 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_547 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_548 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_545\n        c1_546 = TreeSitter.Node.nodeStartPoint node_544\n      TreeSitter.Node.TSPoint\n        r2_547\n        c2_548 = TreeSitter.Node.nodeEndPoint node_544\n\nderiving instance GHC.Classes.Eq a_549 => GHC.Classes.Eq (ImportClause a_549)\n\nderiving instance GHC.Classes.Ord a_550 => GHC.Classes.Ord (ImportClause a_550)\n\nderiving instance GHC.Show.Show a_551 => GHC.Show.Show (ImportClause a_551)\n\ninstance AST.Unmarshal.Unmarshal ImportClause\n\ninstance Data.Foldable.Foldable ImportClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImportClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImportClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImportRequireClause a = ImportRequireClause\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: String) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_552.\n      AST.Traversable1.Class.Traversable1 a_552\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImportRequireClause where\n  matchedSymbols _ = [231]\n  showFailure _ node_553 =\n    \"expected \"\n      GHC.Base.<> ( \"import_require_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_553 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_553) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_554 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_555 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_556 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_557 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_554\n        c1_555 = TreeSitter.Node.nodeStartPoint node_553\n      TreeSitter.Node.TSPoint\n        r2_556\n        c2_557 = TreeSitter.Node.nodeEndPoint node_553\n\nderiving instance GHC.Classes.Eq a_558 => GHC.Classes.Eq (ImportRequireClause a_558)\n\nderiving instance GHC.Classes.Ord a_559 => GHC.Classes.Ord (ImportRequireClause a_559)\n\nderiving instance GHC.Show.Show a_560 => GHC.Show.Show (ImportRequireClause a_560)\n\ninstance AST.Unmarshal.Unmarshal ImportRequireClause\n\ninstance Data.Foldable.Foldable ImportRequireClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImportRequireClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImportRequireClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImportSpecifier a = ImportSpecifier\n  { ann :: a,\n    alias :: (GHC.Maybe.Maybe (AST.Parse.Err (Identifier a))),\n    name :: (AST.Parse.Err (Identifier a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_561.\n      AST.Traversable1.Class.Traversable1 a_561\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImportSpecifier where\n  matchedSymbols _ = [301]\n  showFailure _ node_562 =\n    \"expected \"\n      GHC.Base.<> ( \"import_specifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_562 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_562) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_563 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_564 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_565 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_566 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_563\n        c1_564 = TreeSitter.Node.nodeStartPoint node_562\n      TreeSitter.Node.TSPoint\n        r2_565\n        c2_566 = TreeSitter.Node.nodeEndPoint node_562\n\nderiving instance GHC.Classes.Eq a_567 => GHC.Classes.Eq (ImportSpecifier a_567)\n\nderiving instance GHC.Classes.Ord a_568 => GHC.Classes.Ord (ImportSpecifier a_568)\n\nderiving instance GHC.Show.Show a_569 => GHC.Show.Show (ImportSpecifier a_569)\n\ninstance AST.Unmarshal.Unmarshal ImportSpecifier\n\ninstance Data.Foldable.Foldable ImportSpecifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImportSpecifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImportSpecifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ImportStatement a = ImportStatement\n  { ann :: a,\n    source :: (GHC.Maybe.Maybe (AST.Parse.Err (String a))),\n    extraChildren :: (AST.Parse.Err ((ImportClause GHC.Generics.:+: ImportRequireClause GHC.Generics.:+: String) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_570.\n      AST.Traversable1.Class.Traversable1 a_570\n    )\n\ninstance AST.Unmarshal.SymbolMatching ImportStatement where\n  matchedSymbols _ = [147]\n  showFailure _ node_571 =\n    \"expected \"\n      GHC.Base.<> ( \"import_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_571 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_571) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_572 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_573 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_574 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_575 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_572\n        c1_573 = TreeSitter.Node.nodeStartPoint node_571\n      TreeSitter.Node.TSPoint\n        r2_574\n        c2_575 = TreeSitter.Node.nodeEndPoint node_571\n\nderiving instance GHC.Classes.Eq a_576 => GHC.Classes.Eq (ImportStatement a_576)\n\nderiving instance GHC.Classes.Ord a_577 => GHC.Classes.Ord (ImportStatement a_577)\n\nderiving instance GHC.Show.Show a_578 => GHC.Show.Show (ImportStatement a_578)\n\ninstance AST.Unmarshal.Unmarshal ImportStatement\n\ninstance Data.Foldable.Foldable ImportStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ImportStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ImportStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IndexSignature a = IndexSignature\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: MappedTypeClause GHC.Generics.:+: PredefinedType GHC.Generics.:+: TypeAnnotation) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_579.\n      AST.Traversable1.Class.Traversable1 a_579\n    )\n\ninstance AST.Unmarshal.SymbolMatching IndexSignature where\n  matchedSymbols _ = [275]\n  showFailure _ node_580 =\n    \"expected \"\n      GHC.Base.<> ( \"index_signature\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_580 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_580) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_581 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_582 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_583 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_584 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_581\n        c1_582 = TreeSitter.Node.nodeStartPoint node_580\n      TreeSitter.Node.TSPoint\n        r2_583\n        c2_584 = TreeSitter.Node.nodeEndPoint node_580\n\nderiving instance GHC.Classes.Eq a_585 => GHC.Classes.Eq (IndexSignature a_585)\n\nderiving instance GHC.Classes.Ord a_586 => GHC.Classes.Ord (IndexSignature a_586)\n\nderiving instance GHC.Show.Show a_587 => GHC.Show.Show (IndexSignature a_587)\n\ninstance AST.Unmarshal.Unmarshal IndexSignature\n\ninstance Data.Foldable.Foldable IndexSignature where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IndexSignature where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IndexSignature where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IndexTypeQuery a = IndexTypeQuery\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((NestedTypeIdentifier GHC.Generics.:+: TypeIdentifier) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_588.\n      AST.Traversable1.Class.Traversable1 a_588\n    )\n\ninstance AST.Unmarshal.SymbolMatching IndexTypeQuery where\n  matchedSymbols _ = [257]\n  showFailure _ node_589 =\n    \"expected \"\n      GHC.Base.<> ( \"index_type_query\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_589 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_589) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_590 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_591 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_592 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_593 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_590\n        c1_591 = TreeSitter.Node.nodeStartPoint node_589\n      TreeSitter.Node.TSPoint\n        r2_592\n        c2_593 = TreeSitter.Node.nodeEndPoint node_589\n\nderiving instance GHC.Classes.Eq a_594 => GHC.Classes.Eq (IndexTypeQuery a_594)\n\nderiving instance GHC.Classes.Ord a_595 => GHC.Classes.Ord (IndexTypeQuery a_595)\n\nderiving instance GHC.Show.Show a_596 => GHC.Show.Show (IndexTypeQuery a_596)\n\ninstance AST.Unmarshal.Unmarshal IndexTypeQuery\n\ninstance Data.Foldable.Foldable IndexTypeQuery where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IndexTypeQuery where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IndexTypeQuery where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata InterfaceDeclaration a = InterfaceDeclaration\n  { ann :: a,\n    body :: (AST.Parse.Err (ObjectType a)),\n    name :: (AST.Parse.Err (TypeIdentifier a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (ExtendsClause a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_597.\n      AST.Traversable1.Class.Traversable1 a_597\n    )\n\ninstance AST.Unmarshal.SymbolMatching InterfaceDeclaration where\n  matchedSymbols _ = [240]\n  showFailure _ node_598 =\n    \"expected \"\n      GHC.Base.<> ( \"interface_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_598 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_598) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_599 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_600 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_601 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_602 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_599\n        c1_600 = TreeSitter.Node.nodeStartPoint node_598\n      TreeSitter.Node.TSPoint\n        r2_601\n        c2_602 = TreeSitter.Node.nodeEndPoint node_598\n\nderiving instance GHC.Classes.Eq a_603 => GHC.Classes.Eq (InterfaceDeclaration a_603)\n\nderiving instance GHC.Classes.Ord a_604 => GHC.Classes.Ord (InterfaceDeclaration a_604)\n\nderiving instance GHC.Show.Show a_605 => GHC.Show.Show (InterfaceDeclaration a_605)\n\ninstance AST.Unmarshal.Unmarshal InterfaceDeclaration\n\ninstance Data.Foldable.Foldable InterfaceDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor InterfaceDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable InterfaceDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata InternalModule a = InternalModule\n  { ann :: a,\n    body :: (GHC.Maybe.Maybe (AST.Parse.Err (StatementBlock a))),\n    name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier GHC.Generics.:+: String) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_606.\n      AST.Traversable1.Class.Traversable1 a_606\n    )\n\ninstance AST.Unmarshal.SymbolMatching InternalModule where\n  matchedSymbols _ = [236]\n  showFailure _ node_607 =\n    \"expected \"\n      GHC.Base.<> ( \"internal_module\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_607 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_607) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_608 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_609 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_610 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_611 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_608\n        c1_609 = TreeSitter.Node.nodeStartPoint node_607\n      TreeSitter.Node.TSPoint\n        r2_610\n        c2_611 = TreeSitter.Node.nodeEndPoint node_607\n\nderiving instance GHC.Classes.Eq a_612 => GHC.Classes.Eq (InternalModule a_612)\n\nderiving instance GHC.Classes.Ord a_613 => GHC.Classes.Ord (InternalModule a_613)\n\nderiving instance GHC.Show.Show a_614 => GHC.Show.Show (InternalModule a_614)\n\ninstance AST.Unmarshal.Unmarshal InternalModule\n\ninstance Data.Foldable.Foldable InternalModule where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor InternalModule where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable InternalModule where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata IntersectionType a = IntersectionType\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_615.\n      AST.Traversable1.Class.Traversable1 a_615\n    )\n\ninstance AST.Unmarshal.SymbolMatching IntersectionType where\n  matchedSymbols _ = [279]\n  showFailure _ node_616 =\n    \"expected \"\n      GHC.Base.<> ( \"intersection_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_616 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_616) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_617 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_618 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_619 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_620 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_617\n        c1_618 = TreeSitter.Node.nodeStartPoint node_616\n      TreeSitter.Node.TSPoint\n        r2_619\n        c2_620 = TreeSitter.Node.nodeEndPoint node_616\n\nderiving instance GHC.Classes.Eq a_621 => GHC.Classes.Eq (IntersectionType a_621)\n\nderiving instance GHC.Classes.Ord a_622 => GHC.Classes.Ord (IntersectionType a_622)\n\nderiving instance GHC.Show.Show a_623 => GHC.Show.Show (IntersectionType a_623)\n\ninstance AST.Unmarshal.Unmarshal IntersectionType\n\ninstance Data.Foldable.Foldable IntersectionType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor IntersectionType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable IntersectionType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata JsxAttribute a = JsxAttribute\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((JsxElement GHC.Generics.:+: JsxExpression GHC.Generics.:+: JsxFragment GHC.Generics.:+: JsxNamespaceName GHC.Generics.:+: JsxSelfClosingElement GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_624.\n      AST.Traversable1.Class.Traversable1 a_624\n    )\n\ninstance AST.Unmarshal.SymbolMatching JsxAttribute where\n  matchedSymbols _ = []\n  showFailure _ node_625 =\n    \"expected \"\n      GHC.Base.<> ( \"\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_625 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_625) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_626 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_627 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_628 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_629 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_626\n        c1_627 = TreeSitter.Node.nodeStartPoint node_625\n      TreeSitter.Node.TSPoint\n        r2_628\n        c2_629 = TreeSitter.Node.nodeEndPoint node_625\n\nderiving instance GHC.Classes.Eq a_630 => GHC.Classes.Eq (JsxAttribute a_630)\n\nderiving instance GHC.Classes.Ord a_631 => GHC.Classes.Ord (JsxAttribute a_631)\n\nderiving instance GHC.Show.Show a_632 => GHC.Show.Show (JsxAttribute a_632)\n\ninstance AST.Unmarshal.Unmarshal JsxAttribute\n\ninstance Data.Foldable.Foldable JsxAttribute where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor JsxAttribute where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable JsxAttribute where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata JsxClosingElement a = JsxClosingElement\n  { ann :: a,\n    name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: JsxNamespaceName GHC.Generics.:+: NestedIdentifier) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_633.\n      AST.Traversable1.Class.Traversable1 a_633\n    )\n\ninstance AST.Unmarshal.SymbolMatching JsxClosingElement where\n  matchedSymbols _ = []\n  showFailure _ node_634 =\n    \"expected \"\n      GHC.Base.<> ( \"\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_634 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_634) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_635 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_636 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_637 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_638 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_635\n        c1_636 = TreeSitter.Node.nodeStartPoint node_634\n      TreeSitter.Node.TSPoint\n        r2_637\n        c2_638 = TreeSitter.Node.nodeEndPoint node_634\n\nderiving instance GHC.Classes.Eq a_639 => GHC.Classes.Eq (JsxClosingElement a_639)\n\nderiving instance GHC.Classes.Ord a_640 => GHC.Classes.Ord (JsxClosingElement a_640)\n\nderiving instance GHC.Show.Show a_641 => GHC.Show.Show (JsxClosingElement a_641)\n\ninstance AST.Unmarshal.Unmarshal JsxClosingElement\n\ninstance Data.Foldable.Foldable JsxClosingElement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor JsxClosingElement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable JsxClosingElement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata JsxElement a = JsxElement\n  { ann :: a,\n    closeTag :: (AST.Parse.Err (JsxClosingElement a)),\n    openTag :: (AST.Parse.Err (JsxOpeningElement a)),\n    extraChildren :: ([AST.Parse.Err ((JsxElement GHC.Generics.:+: JsxExpression GHC.Generics.:+: JsxSelfClosingElement GHC.Generics.:+: JsxText) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_642.\n      AST.Traversable1.Class.Traversable1 a_642\n    )\n\ninstance AST.Unmarshal.SymbolMatching JsxElement where\n  matchedSymbols _ = []\n  showFailure _ node_643 =\n    \"expected \"\n      GHC.Base.<> ( \"\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_643 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_643) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_644 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_645 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_646 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_647 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_644\n        c1_645 = TreeSitter.Node.nodeStartPoint node_643\n      TreeSitter.Node.TSPoint\n        r2_646\n        c2_647 = TreeSitter.Node.nodeEndPoint node_643\n\nderiving instance GHC.Classes.Eq a_648 => GHC.Classes.Eq (JsxElement a_648)\n\nderiving instance GHC.Classes.Ord a_649 => GHC.Classes.Ord (JsxElement a_649)\n\nderiving instance GHC.Show.Show a_650 => GHC.Show.Show (JsxElement a_650)\n\ninstance AST.Unmarshal.Unmarshal JsxElement\n\ninstance Data.Foldable.Foldable JsxElement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor JsxElement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable JsxElement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata JsxExpression a = JsxExpression\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression GHC.Generics.:+: SpreadElement) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_651.\n      AST.Traversable1.Class.Traversable1 a_651\n    )\n\ninstance AST.Unmarshal.SymbolMatching JsxExpression where\n  matchedSymbols _ = []\n  showFailure _ node_652 =\n    \"expected \"\n      GHC.Base.<> ( \"\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_652 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_652) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_653 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_654 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_655 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_656 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_653\n        c1_654 = TreeSitter.Node.nodeStartPoint node_652\n      TreeSitter.Node.TSPoint\n        r2_655\n        c2_656 = TreeSitter.Node.nodeEndPoint node_652\n\nderiving instance GHC.Classes.Eq a_657 => GHC.Classes.Eq (JsxExpression a_657)\n\nderiving instance GHC.Classes.Ord a_658 => GHC.Classes.Ord (JsxExpression a_658)\n\nderiving instance GHC.Show.Show a_659 => GHC.Show.Show (JsxExpression a_659)\n\ninstance AST.Unmarshal.Unmarshal JsxExpression\n\ninstance Data.Foldable.Foldable JsxExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor JsxExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable JsxExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata JsxFragment a = JsxFragment\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((JsxElement GHC.Generics.:+: JsxExpression GHC.Generics.:+: JsxSelfClosingElement GHC.Generics.:+: JsxText) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_660.\n      AST.Traversable1.Class.Traversable1 a_660\n    )\n\ninstance AST.Unmarshal.SymbolMatching JsxFragment where\n  matchedSymbols _ = []\n  showFailure _ node_661 =\n    \"expected \"\n      GHC.Base.<> ( \"\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_661 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_661) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_662 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_663 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_664 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_665 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_662\n        c1_663 = TreeSitter.Node.nodeStartPoint node_661\n      TreeSitter.Node.TSPoint\n        r2_664\n        c2_665 = TreeSitter.Node.nodeEndPoint node_661\n\nderiving instance GHC.Classes.Eq a_666 => GHC.Classes.Eq (JsxFragment a_666)\n\nderiving instance GHC.Classes.Ord a_667 => GHC.Classes.Ord (JsxFragment a_667)\n\nderiving instance GHC.Show.Show a_668 => GHC.Show.Show (JsxFragment a_668)\n\ninstance AST.Unmarshal.Unmarshal JsxFragment\n\ninstance Data.Foldable.Foldable JsxFragment where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor JsxFragment where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable JsxFragment where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata JsxNamespaceName a = JsxNamespaceName\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (Identifier a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_669.\n      AST.Traversable1.Class.Traversable1 a_669\n    )\n\ninstance AST.Unmarshal.SymbolMatching JsxNamespaceName where\n  matchedSymbols _ = []\n  showFailure _ node_670 =\n    \"expected \"\n      GHC.Base.<> ( \"\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_670 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_670) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_671 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_672 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_673 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_674 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_671\n        c1_672 = TreeSitter.Node.nodeStartPoint node_670\n      TreeSitter.Node.TSPoint\n        r2_673\n        c2_674 = TreeSitter.Node.nodeEndPoint node_670\n\nderiving instance GHC.Classes.Eq a_675 => GHC.Classes.Eq (JsxNamespaceName a_675)\n\nderiving instance GHC.Classes.Ord a_676 => GHC.Classes.Ord (JsxNamespaceName a_676)\n\nderiving instance GHC.Show.Show a_677 => GHC.Show.Show (JsxNamespaceName a_677)\n\ninstance AST.Unmarshal.Unmarshal JsxNamespaceName\n\ninstance Data.Foldable.Foldable JsxNamespaceName where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor JsxNamespaceName where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable JsxNamespaceName where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata JsxOpeningElement a = JsxOpeningElement\n  { ann :: a,\n    attribute :: ([AST.Parse.Err ((JsxAttribute GHC.Generics.:+: JsxExpression) a)]),\n    name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: JsxNamespaceName GHC.Generics.:+: NestedIdentifier) a)),\n    typeArguments :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeArguments a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_678.\n      AST.Traversable1.Class.Traversable1 a_678\n    )\n\ninstance AST.Unmarshal.SymbolMatching JsxOpeningElement where\n  matchedSymbols _ = []\n  showFailure _ node_679 =\n    \"expected \"\n      GHC.Base.<> ( \"\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_679 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_679) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_680 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_681 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_682 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_683 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_680\n        c1_681 = TreeSitter.Node.nodeStartPoint node_679\n      TreeSitter.Node.TSPoint\n        r2_682\n        c2_683 = TreeSitter.Node.nodeEndPoint node_679\n\nderiving instance GHC.Classes.Eq a_684 => GHC.Classes.Eq (JsxOpeningElement a_684)\n\nderiving instance GHC.Classes.Ord a_685 => GHC.Classes.Ord (JsxOpeningElement a_685)\n\nderiving instance GHC.Show.Show a_686 => GHC.Show.Show (JsxOpeningElement a_686)\n\ninstance AST.Unmarshal.Unmarshal JsxOpeningElement\n\ninstance Data.Foldable.Foldable JsxOpeningElement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor JsxOpeningElement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable JsxOpeningElement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata JsxSelfClosingElement a = JsxSelfClosingElement\n  { ann :: a,\n    attribute :: ([AST.Parse.Err ((JsxAttribute GHC.Generics.:+: JsxExpression) a)]),\n    name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: JsxNamespaceName GHC.Generics.:+: NestedIdentifier) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_687.\n      AST.Traversable1.Class.Traversable1 a_687\n    )\n\ninstance AST.Unmarshal.SymbolMatching JsxSelfClosingElement where\n  matchedSymbols _ = []\n  showFailure _ node_688 =\n    \"expected \"\n      GHC.Base.<> ( \"\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_688 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_688) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_689 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_690 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_691 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_692 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_689\n        c1_690 = TreeSitter.Node.nodeStartPoint node_688\n      TreeSitter.Node.TSPoint\n        r2_691\n        c2_692 = TreeSitter.Node.nodeEndPoint node_688\n\nderiving instance GHC.Classes.Eq a_693 => GHC.Classes.Eq (JsxSelfClosingElement a_693)\n\nderiving instance GHC.Classes.Ord a_694 => GHC.Classes.Ord (JsxSelfClosingElement a_694)\n\nderiving instance GHC.Show.Show a_695 => GHC.Show.Show (JsxSelfClosingElement a_695)\n\ninstance AST.Unmarshal.Unmarshal JsxSelfClosingElement\n\ninstance Data.Foldable.Foldable JsxSelfClosingElement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor JsxSelfClosingElement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable JsxSelfClosingElement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata LabeledStatement a = LabeledStatement\n  { ann :: a,\n    label :: (AST.Parse.Err (StatementIdentifier a)),\n    extraChildren :: (AST.Parse.Err (Statement a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_696.\n      AST.Traversable1.Class.Traversable1 a_696\n    )\n\ninstance AST.Unmarshal.SymbolMatching LabeledStatement where\n  matchedSymbols _ = [172]\n  showFailure _ node_697 =\n    \"expected \"\n      GHC.Base.<> ( \"labeled_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_697 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_697) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_698 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_699 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_700 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_701 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_698\n        c1_699 = TreeSitter.Node.nodeStartPoint node_697\n      TreeSitter.Node.TSPoint\n        r2_700\n        c2_701 = TreeSitter.Node.nodeEndPoint node_697\n\nderiving instance GHC.Classes.Eq a_702 => GHC.Classes.Eq (LabeledStatement a_702)\n\nderiving instance GHC.Classes.Ord a_703 => GHC.Classes.Ord (LabeledStatement a_703)\n\nderiving instance GHC.Show.Show a_704 => GHC.Show.Show (LabeledStatement a_704)\n\ninstance AST.Unmarshal.Unmarshal LabeledStatement\n\ninstance Data.Foldable.Foldable LabeledStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor LabeledStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable LabeledStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata LexicalDeclaration a = LexicalDeclaration\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (VariableDeclarator a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_705.\n      AST.Traversable1.Class.Traversable1 a_705\n    )\n\ninstance AST.Unmarshal.SymbolMatching LexicalDeclaration where\n  matchedSymbols _ = [154]\n  showFailure _ node_706 =\n    \"expected \"\n      GHC.Base.<> ( \"lexical_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_706 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_706) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_707 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_708 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_709 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_710 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_707\n        c1_708 = TreeSitter.Node.nodeStartPoint node_706\n      TreeSitter.Node.TSPoint\n        r2_709\n        c2_710 = TreeSitter.Node.nodeEndPoint node_706\n\nderiving instance GHC.Classes.Eq a_711 => GHC.Classes.Eq (LexicalDeclaration a_711)\n\nderiving instance GHC.Classes.Ord a_712 => GHC.Classes.Ord (LexicalDeclaration a_712)\n\nderiving instance GHC.Show.Show a_713 => GHC.Show.Show (LexicalDeclaration a_713)\n\ninstance AST.Unmarshal.Unmarshal LexicalDeclaration\n\ninstance Data.Foldable.Foldable LexicalDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor LexicalDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable LexicalDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata LiteralType a = LiteralType\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((False GHC.Generics.:+: Number GHC.Generics.:+: String GHC.Generics.:+: True GHC.Generics.:+: UnaryExpression) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_714.\n      AST.Traversable1.Class.Traversable1 a_714\n    )\n\ninstance AST.Unmarshal.SymbolMatching LiteralType where\n  matchedSymbols _ = [260]\n  showFailure _ node_715 =\n    \"expected \"\n      GHC.Base.<> ( \"literal_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_715 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_715) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_716 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_717 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_718 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_719 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_716\n        c1_717 = TreeSitter.Node.nodeStartPoint node_715\n      TreeSitter.Node.TSPoint\n        r2_718\n        c2_719 = TreeSitter.Node.nodeEndPoint node_715\n\nderiving instance GHC.Classes.Eq a_720 => GHC.Classes.Eq (LiteralType a_720)\n\nderiving instance GHC.Classes.Ord a_721 => GHC.Classes.Ord (LiteralType a_721)\n\nderiving instance GHC.Show.Show a_722 => GHC.Show.Show (LiteralType a_722)\n\ninstance AST.Unmarshal.Unmarshal LiteralType\n\ninstance Data.Foldable.Foldable LiteralType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor LiteralType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable LiteralType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata LookupType a = LookupType\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_723.\n      AST.Traversable1.Class.Traversable1 a_723\n    )\n\ninstance AST.Unmarshal.SymbolMatching LookupType where\n  matchedSymbols _ = [258]\n  showFailure _ node_724 =\n    \"expected \"\n      GHC.Base.<> ( \"lookup_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_724 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_724) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_725 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_726 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_727 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_728 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_725\n        c1_726 = TreeSitter.Node.nodeStartPoint node_724\n      TreeSitter.Node.TSPoint\n        r2_727\n        c2_728 = TreeSitter.Node.nodeEndPoint node_724\n\nderiving instance GHC.Classes.Eq a_729 => GHC.Classes.Eq (LookupType a_729)\n\nderiving instance GHC.Classes.Ord a_730 => GHC.Classes.Ord (LookupType a_730)\n\nderiving instance GHC.Show.Show a_731 => GHC.Show.Show (LookupType a_731)\n\ninstance AST.Unmarshal.Unmarshal LookupType\n\ninstance Data.Foldable.Foldable LookupType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor LookupType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable LookupType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MappedTypeClause a = MappedTypeClause\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_732.\n      AST.Traversable1.Class.Traversable1 a_732\n    )\n\ninstance AST.Unmarshal.SymbolMatching MappedTypeClause where\n  matchedSymbols _ = [259]\n  showFailure _ node_733 =\n    \"expected \"\n      GHC.Base.<> ( \"mapped_type_clause\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_733 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_733) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_734 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_735 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_736 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_737 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_734\n        c1_735 = TreeSitter.Node.nodeStartPoint node_733\n      TreeSitter.Node.TSPoint\n        r2_736\n        c2_737 = TreeSitter.Node.nodeEndPoint node_733\n\nderiving instance GHC.Classes.Eq a_738 => GHC.Classes.Eq (MappedTypeClause a_738)\n\nderiving instance GHC.Classes.Ord a_739 => GHC.Classes.Ord (MappedTypeClause a_739)\n\nderiving instance GHC.Show.Show a_740 => GHC.Show.Show (MappedTypeClause a_740)\n\ninstance AST.Unmarshal.Unmarshal MappedTypeClause\n\ninstance Data.Foldable.Foldable MappedTypeClause where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MappedTypeClause where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MappedTypeClause where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MemberExpression a = MemberExpression\n  { ann :: a,\n    property :: (AST.Parse.Err (PropertyIdentifier a)),\n    object :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_741.\n      AST.Traversable1.Class.Traversable1 a_741\n    )\n\ninstance AST.Unmarshal.SymbolMatching MemberExpression where\n  matchedSymbols _ = [197, 215]\n  showFailure _ node_742 =\n    \"expected \"\n      GHC.Base.<> ( \"member_expression, member_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_742 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_742) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_743 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_744 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_745 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_746 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_743\n        c1_744 = TreeSitter.Node.nodeStartPoint node_742\n      TreeSitter.Node.TSPoint\n        r2_745\n        c2_746 = TreeSitter.Node.nodeEndPoint node_742\n\nderiving instance GHC.Classes.Eq a_747 => GHC.Classes.Eq (MemberExpression a_747)\n\nderiving instance GHC.Classes.Ord a_748 => GHC.Classes.Ord (MemberExpression a_748)\n\nderiving instance GHC.Show.Show a_749 => GHC.Show.Show (MemberExpression a_749)\n\ninstance AST.Unmarshal.Unmarshal MemberExpression\n\ninstance Data.Foldable.Foldable MemberExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MemberExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MemberExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MetaProperty a = MetaProperty {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_750.\n      AST.Traversable1.Class.Traversable1 a_750\n    )\n\ninstance AST.Unmarshal.SymbolMatching MetaProperty where\n  matchedSymbols _ = [212]\n  showFailure _ node_751 =\n    \"expected \"\n      GHC.Base.<> ( \"meta_property\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_751 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_751) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_752 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_753 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_754 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_755 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_752\n        c1_753 = TreeSitter.Node.nodeStartPoint node_751\n      TreeSitter.Node.TSPoint\n        r2_754\n        c2_755 = TreeSitter.Node.nodeEndPoint node_751\n\nderiving instance GHC.Classes.Eq a_756 => GHC.Classes.Eq (MetaProperty a_756)\n\nderiving instance GHC.Classes.Ord a_757 => GHC.Classes.Ord (MetaProperty a_757)\n\nderiving instance GHC.Show.Show a_758 => GHC.Show.Show (MetaProperty a_758)\n\ninstance AST.Unmarshal.Unmarshal MetaProperty\n\ninstance Data.Foldable.Foldable MetaProperty where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MetaProperty where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MetaProperty where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MethodDefinition a = MethodDefinition\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    body :: (AST.Parse.Err (StatementBlock a)),\n    name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    extraChildren :: ([AST.Parse.Err ((AccessibilityModifier GHC.Generics.:+: Readonly) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_759.\n      AST.Traversable1.Class.Traversable1 a_759\n    )\n\ninstance AST.Unmarshal.SymbolMatching MethodDefinition where\n  matchedSymbols _ = [221]\n  showFailure _ node_760 =\n    \"expected \"\n      GHC.Base.<> ( \"method_definition\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_760 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_760) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_761 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_762 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_763 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_764 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_761\n        c1_762 = TreeSitter.Node.nodeStartPoint node_760\n      TreeSitter.Node.TSPoint\n        r2_763\n        c2_764 = TreeSitter.Node.nodeEndPoint node_760\n\nderiving instance GHC.Classes.Eq a_765 => GHC.Classes.Eq (MethodDefinition a_765)\n\nderiving instance GHC.Classes.Ord a_766 => GHC.Classes.Ord (MethodDefinition a_766)\n\nderiving instance GHC.Show.Show a_767 => GHC.Show.Show (MethodDefinition a_767)\n\ninstance AST.Unmarshal.Unmarshal MethodDefinition\n\ninstance Data.Foldable.Foldable MethodDefinition where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MethodDefinition where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MethodDefinition where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata MethodSignature a = MethodSignature\n  { ann :: a,\n    returnType :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)),\n    parameters :: (AST.Parse.Err (FormalParameters a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a))),\n    extraChildren :: ([AST.Parse.Err ((AccessibilityModifier GHC.Generics.:+: Readonly) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_768.\n      AST.Traversable1.Class.Traversable1 a_768\n    )\n\ninstance AST.Unmarshal.SymbolMatching MethodSignature where\n  matchedSymbols _ = [226]\n  showFailure _ node_769 =\n    \"expected \"\n      GHC.Base.<> ( \"method_signature\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_769 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_769) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_770 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_771 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_772 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_773 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_770\n        c1_771 = TreeSitter.Node.nodeStartPoint node_769\n      TreeSitter.Node.TSPoint\n        r2_772\n        c2_773 = TreeSitter.Node.nodeEndPoint node_769\n\nderiving instance GHC.Classes.Eq a_774 => GHC.Classes.Eq (MethodSignature a_774)\n\nderiving instance GHC.Classes.Ord a_775 => GHC.Classes.Ord (MethodSignature a_775)\n\nderiving instance GHC.Show.Show a_776 => GHC.Show.Show (MethodSignature a_776)\n\ninstance AST.Unmarshal.Unmarshal MethodSignature\n\ninstance Data.Foldable.Foldable MethodSignature where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor MethodSignature where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable MethodSignature where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Module a = Module\n  { ann :: a,\n    body :: (GHC.Maybe.Maybe (AST.Parse.Err (StatementBlock a))),\n    name :: (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier GHC.Generics.:+: String) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_777.\n      AST.Traversable1.Class.Traversable1 a_777\n    )\n\ninstance AST.Unmarshal.SymbolMatching Module where\n  matchedSymbols _ = [235]\n  showFailure _ node_778 =\n    \"expected \"\n      GHC.Base.<> ( \"module\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_778 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_778) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_779 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_780 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_781 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_782 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_779\n        c1_780 = TreeSitter.Node.nodeStartPoint node_778\n      TreeSitter.Node.TSPoint\n        r2_781\n        c2_782 = TreeSitter.Node.nodeEndPoint node_778\n\nderiving instance GHC.Classes.Eq a_783 => GHC.Classes.Eq (Module a_783)\n\nderiving instance GHC.Classes.Ord a_784 => GHC.Classes.Ord (Module a_784)\n\nderiving instance GHC.Show.Show a_785 => GHC.Show.Show (Module a_785)\n\ninstance AST.Unmarshal.Unmarshal Module\n\ninstance Data.Foldable.Foldable Module where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Module where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Module where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NamedImports a = NamedImports\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (ImportSpecifier a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_786.\n      AST.Traversable1.Class.Traversable1 a_786\n    )\n\ninstance AST.Unmarshal.SymbolMatching NamedImports where\n  matchedSymbols _ = [151]\n  showFailure _ node_787 =\n    \"expected \"\n      GHC.Base.<> ( \"named_imports\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_787 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_787) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_788 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_789 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_790 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_791 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_788\n        c1_789 = TreeSitter.Node.nodeStartPoint node_787\n      TreeSitter.Node.TSPoint\n        r2_790\n        c2_791 = TreeSitter.Node.nodeEndPoint node_787\n\nderiving instance GHC.Classes.Eq a_792 => GHC.Classes.Eq (NamedImports a_792)\n\nderiving instance GHC.Classes.Ord a_793 => GHC.Classes.Ord (NamedImports a_793)\n\nderiving instance GHC.Show.Show a_794 => GHC.Show.Show (NamedImports a_794)\n\ninstance AST.Unmarshal.Unmarshal NamedImports\n\ninstance Data.Foldable.Foldable NamedImports where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NamedImports where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NamedImports where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NamespaceImport a = NamespaceImport\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Identifier a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_795.\n      AST.Traversable1.Class.Traversable1 a_795\n    )\n\ninstance AST.Unmarshal.SymbolMatching NamespaceImport where\n  matchedSymbols _ = [150]\n  showFailure _ node_796 =\n    \"expected \"\n      GHC.Base.<> ( \"namespace_import\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_796 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_796) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_797 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_798 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_799 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_800 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_797\n        c1_798 = TreeSitter.Node.nodeStartPoint node_796\n      TreeSitter.Node.TSPoint\n        r2_799\n        c2_800 = TreeSitter.Node.nodeEndPoint node_796\n\nderiving instance GHC.Classes.Eq a_801 => GHC.Classes.Eq (NamespaceImport a_801)\n\nderiving instance GHC.Classes.Ord a_802 => GHC.Classes.Ord (NamespaceImport a_802)\n\nderiving instance GHC.Show.Show a_803 => GHC.Show.Show (NamespaceImport a_803)\n\ninstance AST.Unmarshal.Unmarshal NamespaceImport\n\ninstance Data.Foldable.Foldable NamespaceImport where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NamespaceImport where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NamespaceImport where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NestedIdentifier a = NestedIdentifier\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_804.\n      AST.Traversable1.Class.Traversable1 a_804\n    )\n\ninstance AST.Unmarshal.SymbolMatching NestedIdentifier where\n  matchedSymbols _ = [184]\n  showFailure _ node_805 =\n    \"expected \"\n      GHC.Base.<> ( \"nested_identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_805 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_805) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_806 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_807 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_808 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_809 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_806\n        c1_807 = TreeSitter.Node.nodeStartPoint node_805\n      TreeSitter.Node.TSPoint\n        r2_808\n        c2_809 = TreeSitter.Node.nodeEndPoint node_805\n\nderiving instance GHC.Classes.Eq a_810 => GHC.Classes.Eq (NestedIdentifier a_810)\n\nderiving instance GHC.Classes.Ord a_811 => GHC.Classes.Ord (NestedIdentifier a_811)\n\nderiving instance GHC.Show.Show a_812 => GHC.Show.Show (NestedIdentifier a_812)\n\ninstance AST.Unmarshal.Unmarshal NestedIdentifier\n\ninstance Data.Foldable.Foldable NestedIdentifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NestedIdentifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NestedIdentifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NestedTypeIdentifier a = NestedTypeIdentifier\n  { ann :: a,\n    name :: (AST.Parse.Err (TypeIdentifier a)),\n    module' :: (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_813.\n      AST.Traversable1.Class.Traversable1 a_813\n    )\n\ninstance AST.Unmarshal.SymbolMatching NestedTypeIdentifier where\n  matchedSymbols _ = [239]\n  showFailure _ node_814 =\n    \"expected \"\n      GHC.Base.<> ( \"nested_type_identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_814 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_814) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_815 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_816 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_817 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_818 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_815\n        c1_816 = TreeSitter.Node.nodeStartPoint node_814\n      TreeSitter.Node.TSPoint\n        r2_817\n        c2_818 = TreeSitter.Node.nodeEndPoint node_814\n\nderiving instance GHC.Classes.Eq a_819 => GHC.Classes.Eq (NestedTypeIdentifier a_819)\n\nderiving instance GHC.Classes.Ord a_820 => GHC.Classes.Ord (NestedTypeIdentifier a_820)\n\nderiving instance GHC.Show.Show a_821 => GHC.Show.Show (NestedTypeIdentifier a_821)\n\ninstance AST.Unmarshal.Unmarshal NestedTypeIdentifier\n\ninstance Data.Foldable.Foldable NestedTypeIdentifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NestedTypeIdentifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NestedTypeIdentifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NewExpression a = NewExpression\n  { ann :: a,\n    arguments :: (GHC.Maybe.Maybe (AST.Parse.Err (Arguments a))),\n    constructor :: (AST.Parse.Err ((Array GHC.Generics.:+: ArrowFunction GHC.Generics.:+: Class GHC.Generics.:+: False GHC.Generics.:+: Function GHC.Generics.:+: GeneratorFunction GHC.Generics.:+: Identifier GHC.Generics.:+: Import GHC.Generics.:+: MemberExpression GHC.Generics.:+: MetaProperty GHC.Generics.:+: NewExpression GHC.Generics.:+: Null GHC.Generics.:+: Number GHC.Generics.:+: Object GHC.Generics.:+: ParenthesizedExpression GHC.Generics.:+: Regex GHC.Generics.:+: String GHC.Generics.:+: SubscriptExpression GHC.Generics.:+: TemplateString GHC.Generics.:+: This GHC.Generics.:+: True GHC.Generics.:+: Undefined) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_822.\n      AST.Traversable1.Class.Traversable1 a_822\n    )\n\ninstance AST.Unmarshal.SymbolMatching NewExpression where\n  matchedSymbols _ = [195]\n  showFailure _ node_823 =\n    \"expected \"\n      GHC.Base.<> ( \"new_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_823 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_823) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_824 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_825 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_826 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_827 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_824\n        c1_825 = TreeSitter.Node.nodeStartPoint node_823\n      TreeSitter.Node.TSPoint\n        r2_826\n        c2_827 = TreeSitter.Node.nodeEndPoint node_823\n\nderiving instance GHC.Classes.Eq a_828 => GHC.Classes.Eq (NewExpression a_828)\n\nderiving instance GHC.Classes.Ord a_829 => GHC.Classes.Ord (NewExpression a_829)\n\nderiving instance GHC.Show.Show a_830 => GHC.Show.Show (NewExpression a_830)\n\ninstance AST.Unmarshal.Unmarshal NewExpression\n\ninstance Data.Foldable.Foldable NewExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NewExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NewExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata NonNullExpression a = NonNullExpression\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_831.\n      AST.Traversable1.Class.Traversable1 a_831\n    )\n\ninstance AST.Unmarshal.SymbolMatching NonNullExpression where\n  matchedSymbols _ = [225]\n  showFailure _ node_832 =\n    \"expected \"\n      GHC.Base.<> ( \"non_null_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_832 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_832) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_833 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_834 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_835 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_836 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_833\n        c1_834 = TreeSitter.Node.nodeStartPoint node_832\n      TreeSitter.Node.TSPoint\n        r2_835\n        c2_836 = TreeSitter.Node.nodeEndPoint node_832\n\nderiving instance GHC.Classes.Eq a_837 => GHC.Classes.Eq (NonNullExpression a_837)\n\nderiving instance GHC.Classes.Ord a_838 => GHC.Classes.Ord (NonNullExpression a_838)\n\nderiving instance GHC.Show.Show a_839 => GHC.Show.Show (NonNullExpression a_839)\n\ninstance AST.Unmarshal.Unmarshal NonNullExpression\n\ninstance Data.Foldable.Foldable NonNullExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor NonNullExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable NonNullExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Object a = Object\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((AssignmentPattern GHC.Generics.:+: MethodDefinition GHC.Generics.:+: Pair GHC.Generics.:+: ShorthandPropertyIdentifier GHC.Generics.:+: SpreadElement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_840.\n      AST.Traversable1.Class.Traversable1 a_840\n    )\n\ninstance AST.Unmarshal.SymbolMatching Object where\n  matchedSymbols _ = [181]\n  showFailure _ node_841 =\n    \"expected \"\n      GHC.Base.<> ( \"object\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_841 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_841) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_842 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_843 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_844 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_845 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_842\n        c1_843 = TreeSitter.Node.nodeStartPoint node_841\n      TreeSitter.Node.TSPoint\n        r2_844\n        c2_845 = TreeSitter.Node.nodeEndPoint node_841\n\nderiving instance GHC.Classes.Eq a_846 => GHC.Classes.Eq (Object a_846)\n\nderiving instance GHC.Classes.Ord a_847 => GHC.Classes.Ord (Object a_847)\n\nderiving instance GHC.Show.Show a_848 => GHC.Show.Show (Object a_848)\n\ninstance AST.Unmarshal.Unmarshal Object\n\ninstance Data.Foldable.Foldable Object where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Object where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Object where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ObjectPattern a = ObjectPattern\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((AssignmentPattern GHC.Generics.:+: MethodDefinition GHC.Generics.:+: Pair GHC.Generics.:+: ShorthandPropertyIdentifier GHC.Generics.:+: SpreadElement) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_849.\n      AST.Traversable1.Class.Traversable1 a_849\n    )\n\ninstance AST.Unmarshal.SymbolMatching ObjectPattern where\n  matchedSymbols _ = [302]\n  showFailure _ node_850 =\n    \"expected \"\n      GHC.Base.<> ( \"object_pattern\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_850 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_850) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_851 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_852 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_853 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_854 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_851\n        c1_852 = TreeSitter.Node.nodeStartPoint node_850\n      TreeSitter.Node.TSPoint\n        r2_853\n        c2_854 = TreeSitter.Node.nodeEndPoint node_850\n\nderiving instance GHC.Classes.Eq a_855 => GHC.Classes.Eq (ObjectPattern a_855)\n\nderiving instance GHC.Classes.Ord a_856 => GHC.Classes.Ord (ObjectPattern a_856)\n\nderiving instance GHC.Show.Show a_857 => GHC.Show.Show (ObjectPattern a_857)\n\ninstance AST.Unmarshal.Unmarshal ObjectPattern\n\ninstance Data.Foldable.Foldable ObjectPattern where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ObjectPattern where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ObjectPattern where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ObjectType a = ObjectType\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((CallSignature GHC.Generics.:+: ConstructSignature GHC.Generics.:+: ExportStatement GHC.Generics.:+: IndexSignature GHC.Generics.:+: MethodSignature GHC.Generics.:+: PropertySignature) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_858.\n      AST.Traversable1.Class.Traversable1 a_858\n    )\n\ninstance AST.Unmarshal.SymbolMatching ObjectType where\n  matchedSymbols _ = [267]\n  showFailure _ node_859 =\n    \"expected \"\n      GHC.Base.<> ( \"object_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_859 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_859) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_860 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_861 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_862 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_863 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_860\n        c1_861 = TreeSitter.Node.nodeStartPoint node_859\n      TreeSitter.Node.TSPoint\n        r2_862\n        c2_863 = TreeSitter.Node.nodeEndPoint node_859\n\nderiving instance GHC.Classes.Eq a_864 => GHC.Classes.Eq (ObjectType a_864)\n\nderiving instance GHC.Classes.Ord a_865 => GHC.Classes.Ord (ObjectType a_865)\n\nderiving instance GHC.Show.Show a_866 => GHC.Show.Show (ObjectType a_866)\n\ninstance AST.Unmarshal.Unmarshal ObjectType\n\ninstance Data.Foldable.Foldable ObjectType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ObjectType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ObjectType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata OptionalParameter a = OptionalParameter\n  { ann :: a,\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: AccessibilityModifier GHC.Generics.:+: Identifier GHC.Generics.:+: Readonly GHC.Generics.:+: This GHC.Generics.:+: TypeAnnotation) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_867.\n      AST.Traversable1.Class.Traversable1 a_867\n    )\n\ninstance AST.Unmarshal.SymbolMatching OptionalParameter where\n  matchedSymbols _ = [248]\n  showFailure _ node_868 =\n    \"expected \"\n      GHC.Base.<> ( \"optional_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_868 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_868) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_869 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_870 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_871 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_872 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_869\n        c1_870 = TreeSitter.Node.nodeStartPoint node_868\n      TreeSitter.Node.TSPoint\n        r2_871\n        c2_872 = TreeSitter.Node.nodeEndPoint node_868\n\nderiving instance GHC.Classes.Eq a_873 => GHC.Classes.Eq (OptionalParameter a_873)\n\nderiving instance GHC.Classes.Ord a_874 => GHC.Classes.Ord (OptionalParameter a_874)\n\nderiving instance GHC.Show.Show a_875 => GHC.Show.Show (OptionalParameter a_875)\n\ninstance AST.Unmarshal.Unmarshal OptionalParameter\n\ninstance Data.Foldable.Foldable OptionalParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor OptionalParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable OptionalParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Pair a = Pair\n  { ann :: a,\n    value :: (AST.Parse.Err (Expression a)),\n    key :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_876.\n      AST.Traversable1.Class.Traversable1 a_876\n    )\n\ninstance AST.Unmarshal.SymbolMatching Pair where\n  matchedSymbols _ = [222]\n  showFailure _ node_877 =\n    \"expected \"\n      GHC.Base.<> ( \"pair\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_877 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_877) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_878 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_879 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_880 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_881 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_878\n        c1_879 = TreeSitter.Node.nodeStartPoint node_877\n      TreeSitter.Node.TSPoint\n        r2_880\n        c2_881 = TreeSitter.Node.nodeEndPoint node_877\n\nderiving instance GHC.Classes.Eq a_882 => GHC.Classes.Eq (Pair a_882)\n\nderiving instance GHC.Classes.Ord a_883 => GHC.Classes.Ord (Pair a_883)\n\nderiving instance GHC.Show.Show a_884 => GHC.Show.Show (Pair a_884)\n\ninstance AST.Unmarshal.Unmarshal Pair\n\ninstance Data.Foldable.Foldable Pair where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Pair where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Pair where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ParenthesizedExpression a = ParenthesizedExpression\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression GHC.Generics.:+: TypeAnnotation) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_885.\n      AST.Traversable1.Class.Traversable1 a_885\n    )\n\ninstance AST.Unmarshal.SymbolMatching ParenthesizedExpression where\n  matchedSymbols _ = [178]\n  showFailure _ node_886 =\n    \"expected \"\n      GHC.Base.<> ( \"parenthesized_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_886 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_886) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_887 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_888 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_889 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_890 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_887\n        c1_888 = TreeSitter.Node.nodeStartPoint node_886\n      TreeSitter.Node.TSPoint\n        r2_889\n        c2_890 = TreeSitter.Node.nodeEndPoint node_886\n\nderiving instance GHC.Classes.Eq a_891 => GHC.Classes.Eq (ParenthesizedExpression a_891)\n\nderiving instance GHC.Classes.Ord a_892 => GHC.Classes.Ord (ParenthesizedExpression a_892)\n\nderiving instance GHC.Show.Show a_893 => GHC.Show.Show (ParenthesizedExpression a_893)\n\ninstance AST.Unmarshal.Unmarshal ParenthesizedExpression\n\ninstance Data.Foldable.Foldable ParenthesizedExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ParenthesizedExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ParenthesizedExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ParenthesizedType a = ParenthesizedType\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_894.\n      AST.Traversable1.Class.Traversable1 a_894\n    )\n\ninstance AST.Unmarshal.SymbolMatching ParenthesizedType where\n  matchedSymbols _ = [264]\n  showFailure _ node_895 =\n    \"expected \"\n      GHC.Base.<> ( \"parenthesized_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_895 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_895) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_896 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_897 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_898 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_899 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_896\n        c1_897 = TreeSitter.Node.nodeStartPoint node_895\n      TreeSitter.Node.TSPoint\n        r2_898\n        c2_899 = TreeSitter.Node.nodeEndPoint node_895\n\nderiving instance GHC.Classes.Eq a_900 => GHC.Classes.Eq (ParenthesizedType a_900)\n\nderiving instance GHC.Classes.Ord a_901 => GHC.Classes.Ord (ParenthesizedType a_901)\n\nderiving instance GHC.Show.Show a_902 => GHC.Show.Show (ParenthesizedType a_902)\n\ninstance AST.Unmarshal.Unmarshal ParenthesizedType\n\ninstance Data.Foldable.Foldable ParenthesizedType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ParenthesizedType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ParenthesizedType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PredefinedType a = PredefinedType {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_903.\n      AST.Traversable1.Class.Traversable1 a_903\n    )\n\ninstance AST.Unmarshal.SymbolMatching PredefinedType where\n  matchedSymbols _ = [265]\n  showFailure _ node_904 =\n    \"expected \"\n      GHC.Base.<> ( \"predefined_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_904 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_904) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_905 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_906 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_907 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_908 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_905\n        c1_906 = TreeSitter.Node.nodeStartPoint node_904\n      TreeSitter.Node.TSPoint\n        r2_907\n        c2_908 = TreeSitter.Node.nodeEndPoint node_904\n\nderiving instance GHC.Classes.Eq a_909 => GHC.Classes.Eq (PredefinedType a_909)\n\nderiving instance GHC.Classes.Ord a_910 => GHC.Classes.Ord (PredefinedType a_910)\n\nderiving instance GHC.Show.Show a_911 => GHC.Show.Show (PredefinedType a_911)\n\ninstance AST.Unmarshal.Unmarshal PredefinedType\n\ninstance Data.Foldable.Foldable PredefinedType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PredefinedType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PredefinedType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Program a = Program\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((Statement GHC.Generics.:+: HashBangLine) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_912.\n      AST.Traversable1.Class.Traversable1 a_912\n    )\n\ninstance AST.Unmarshal.SymbolMatching Program where\n  matchedSymbols _ = [141]\n  showFailure _ node_913 =\n    \"expected \"\n      GHC.Base.<> ( \"program\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_913 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_913) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_914 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_915 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_916 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_917 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_914\n        c1_915 = TreeSitter.Node.nodeStartPoint node_913\n      TreeSitter.Node.TSPoint\n        r2_916\n        c2_917 = TreeSitter.Node.nodeEndPoint node_913\n\nderiving instance GHC.Classes.Eq a_918 => GHC.Classes.Eq (Program a_918)\n\nderiving instance GHC.Classes.Ord a_919 => GHC.Classes.Ord (Program a_919)\n\nderiving instance GHC.Show.Show a_920 => GHC.Show.Show (Program a_920)\n\ninstance AST.Unmarshal.Unmarshal Program\n\ninstance Data.Foldable.Foldable Program where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Program where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Program where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PropertySignature a = PropertySignature\n  { ann :: a,\n    name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)),\n    type' :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    extraChildren :: ([AST.Parse.Err ((AccessibilityModifier GHC.Generics.:+: Readonly) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_921.\n      AST.Traversable1.Class.Traversable1 a_921\n    )\n\ninstance AST.Unmarshal.SymbolMatching PropertySignature where\n  matchedSymbols _ = [269]\n  showFailure _ node_922 =\n    \"expected \"\n      GHC.Base.<> ( \"property_signature\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_922 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_922) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_923 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_924 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_925 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_926 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_923\n        c1_924 = TreeSitter.Node.nodeStartPoint node_922\n      TreeSitter.Node.TSPoint\n        r2_925\n        c2_926 = TreeSitter.Node.nodeEndPoint node_922\n\nderiving instance GHC.Classes.Eq a_927 => GHC.Classes.Eq (PropertySignature a_927)\n\nderiving instance GHC.Classes.Ord a_928 => GHC.Classes.Ord (PropertySignature a_928)\n\nderiving instance GHC.Show.Show a_929 => GHC.Show.Show (PropertySignature a_929)\n\ninstance AST.Unmarshal.Unmarshal PropertySignature\n\ninstance Data.Foldable.Foldable PropertySignature where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PropertySignature where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PropertySignature where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata PublicFieldDefinition a = PublicFieldDefinition\n  { ann :: a,\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    name :: (AST.Parse.Err ((ComputedPropertyName GHC.Generics.:+: Number GHC.Generics.:+: PropertyIdentifier GHC.Generics.:+: String) a)),\n    type' :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a))),\n    extraChildren :: ([AST.Parse.Err ((AccessibilityModifier GHC.Generics.:+: Readonly) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_930.\n      AST.Traversable1.Class.Traversable1 a_930\n    )\n\ninstance AST.Unmarshal.SymbolMatching PublicFieldDefinition where\n  matchedSymbols _ = [218]\n  showFailure _ node_931 =\n    \"expected \"\n      GHC.Base.<> ( \"public_field_definition\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_931 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_931) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_932 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_933 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_934 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_935 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_932\n        c1_933 = TreeSitter.Node.nodeStartPoint node_931\n      TreeSitter.Node.TSPoint\n        r2_934\n        c2_935 = TreeSitter.Node.nodeEndPoint node_931\n\nderiving instance GHC.Classes.Eq a_936 => GHC.Classes.Eq (PublicFieldDefinition a_936)\n\nderiving instance GHC.Classes.Ord a_937 => GHC.Classes.Ord (PublicFieldDefinition a_937)\n\nderiving instance GHC.Show.Show a_938 => GHC.Show.Show (PublicFieldDefinition a_938)\n\ninstance AST.Unmarshal.Unmarshal PublicFieldDefinition\n\ninstance Data.Foldable.Foldable PublicFieldDefinition where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PublicFieldDefinition where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PublicFieldDefinition where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Regex a = Regex\n  { ann :: a,\n    flags :: (GHC.Maybe.Maybe (AST.Parse.Err (RegexFlags a))),\n    pattern :: (AST.Parse.Err (RegexPattern a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_939.\n      AST.Traversable1.Class.Traversable1 a_939\n    )\n\ninstance AST.Unmarshal.SymbolMatching Regex where\n  matchedSymbols _ = [211]\n  showFailure _ node_940 =\n    \"expected \"\n      GHC.Base.<> ( \"regex\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_940 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_940) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_941 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_942 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_943 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_944 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_941\n        c1_942 = TreeSitter.Node.nodeStartPoint node_940\n      TreeSitter.Node.TSPoint\n        r2_943\n        c2_944 = TreeSitter.Node.nodeEndPoint node_940\n\nderiving instance GHC.Classes.Eq a_945 => GHC.Classes.Eq (Regex a_945)\n\nderiving instance GHC.Classes.Ord a_946 => GHC.Classes.Ord (Regex a_946)\n\nderiving instance GHC.Show.Show a_947 => GHC.Show.Show (Regex a_947)\n\ninstance AST.Unmarshal.Unmarshal Regex\n\ninstance Data.Foldable.Foldable Regex where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Regex where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Regex where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata RequiredParameter a = RequiredParameter\n  { ann :: a,\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: AccessibilityModifier GHC.Generics.:+: Identifier GHC.Generics.:+: Readonly GHC.Generics.:+: This GHC.Generics.:+: TypeAnnotation) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_948.\n      AST.Traversable1.Class.Traversable1 a_948\n    )\n\ninstance AST.Unmarshal.SymbolMatching RequiredParameter where\n  matchedSymbols _ = [247]\n  showFailure _ node_949 =\n    \"expected \"\n      GHC.Base.<> ( \"required_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_949 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_949) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_950 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_951 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_952 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_953 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_950\n        c1_951 = TreeSitter.Node.nodeStartPoint node_949\n      TreeSitter.Node.TSPoint\n        r2_952\n        c2_953 = TreeSitter.Node.nodeEndPoint node_949\n\nderiving instance GHC.Classes.Eq a_954 => GHC.Classes.Eq (RequiredParameter a_954)\n\nderiving instance GHC.Classes.Ord a_955 => GHC.Classes.Ord (RequiredParameter a_955)\n\nderiving instance GHC.Show.Show a_956 => GHC.Show.Show (RequiredParameter a_956)\n\ninstance AST.Unmarshal.Unmarshal RequiredParameter\n\ninstance Data.Foldable.Foldable RequiredParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RequiredParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RequiredParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata RestParameter a = RestParameter\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Identifier GHC.Generics.:+: TypeAnnotation) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_957.\n      AST.Traversable1.Class.Traversable1 a_957\n    )\n\ninstance AST.Unmarshal.SymbolMatching RestParameter where\n  matchedSymbols _ = [220]\n  showFailure _ node_958 =\n    \"expected \"\n      GHC.Base.<> ( \"rest_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_958 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_958) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_959 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_960 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_961 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_962 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_959\n        c1_960 = TreeSitter.Node.nodeStartPoint node_958\n      TreeSitter.Node.TSPoint\n        r2_961\n        c2_962 = TreeSitter.Node.nodeEndPoint node_958\n\nderiving instance GHC.Classes.Eq a_963 => GHC.Classes.Eq (RestParameter a_963)\n\nderiving instance GHC.Classes.Ord a_964 => GHC.Classes.Ord (RestParameter a_964)\n\nderiving instance GHC.Show.Show a_965 => GHC.Show.Show (RestParameter a_965)\n\ninstance AST.Unmarshal.Unmarshal RestParameter\n\ninstance Data.Foldable.Foldable RestParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RestParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RestParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ReturnStatement a = ReturnStatement\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_966.\n      AST.Traversable1.Class.Traversable1 a_966\n    )\n\ninstance AST.Unmarshal.SymbolMatching ReturnStatement where\n  matchedSymbols _ = [169]\n  showFailure _ node_967 =\n    \"expected \"\n      GHC.Base.<> ( \"return_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_967 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_967) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_968 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_969 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_970 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_971 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_968\n        c1_969 = TreeSitter.Node.nodeStartPoint node_967\n      TreeSitter.Node.TSPoint\n        r2_970\n        c2_971 = TreeSitter.Node.nodeEndPoint node_967\n\nderiving instance GHC.Classes.Eq a_972 => GHC.Classes.Eq (ReturnStatement a_972)\n\nderiving instance GHC.Classes.Ord a_973 => GHC.Classes.Ord (ReturnStatement a_973)\n\nderiving instance GHC.Show.Show a_974 => GHC.Show.Show (ReturnStatement a_974)\n\ninstance AST.Unmarshal.Unmarshal ReturnStatement\n\ninstance Data.Foldable.Foldable ReturnStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ReturnStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ReturnStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SequenceExpression a = SequenceExpression\n  { ann :: a,\n    left :: (AST.Parse.Err (Expression a)),\n    right :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_975.\n      AST.Traversable1.Class.Traversable1 a_975\n    )\n\ninstance AST.Unmarshal.SymbolMatching SequenceExpression where\n  matchedSymbols _ = [207]\n  showFailure _ node_976 =\n    \"expected \"\n      GHC.Base.<> ( \"sequence_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_976 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_976) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_977 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_978 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_979 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_980 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_977\n        c1_978 = TreeSitter.Node.nodeStartPoint node_976\n      TreeSitter.Node.TSPoint\n        r2_979\n        c2_980 = TreeSitter.Node.nodeEndPoint node_976\n\nderiving instance GHC.Classes.Eq a_981 => GHC.Classes.Eq (SequenceExpression a_981)\n\nderiving instance GHC.Classes.Ord a_982 => GHC.Classes.Ord (SequenceExpression a_982)\n\nderiving instance GHC.Show.Show a_983 => GHC.Show.Show (SequenceExpression a_983)\n\ninstance AST.Unmarshal.Unmarshal SequenceExpression\n\ninstance Data.Foldable.Foldable SequenceExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SequenceExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SequenceExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SpreadElement a = SpreadElement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_984.\n      AST.Traversable1.Class.Traversable1 a_984\n    )\n\ninstance AST.Unmarshal.SymbolMatching SpreadElement where\n  matchedSymbols _ = [202]\n  showFailure _ node_985 =\n    \"expected \"\n      GHC.Base.<> ( \"spread_element\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_985 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_985) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_986 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_987 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_988 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_989 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_986\n        c1_987 = TreeSitter.Node.nodeStartPoint node_985\n      TreeSitter.Node.TSPoint\n        r2_988\n        c2_989 = TreeSitter.Node.nodeEndPoint node_985\n\nderiving instance GHC.Classes.Eq a_990 => GHC.Classes.Eq (SpreadElement a_990)\n\nderiving instance GHC.Classes.Ord a_991 => GHC.Classes.Ord (SpreadElement a_991)\n\nderiving instance GHC.Show.Show a_992 => GHC.Show.Show (SpreadElement a_992)\n\ninstance AST.Unmarshal.Unmarshal SpreadElement\n\ninstance Data.Foldable.Foldable SpreadElement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SpreadElement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SpreadElement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata StatementBlock a = StatementBlock\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (Statement a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_993.\n      AST.Traversable1.Class.Traversable1 a_993\n    )\n\ninstance AST.Unmarshal.SymbolMatching StatementBlock where\n  matchedSymbols _ = [156]\n  showFailure _ node_994 =\n    \"expected \"\n      GHC.Base.<> ( \"statement_block\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_994 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_994) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_995 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_996 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_997 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_998 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_995\n        c1_996 = TreeSitter.Node.nodeStartPoint node_994\n      TreeSitter.Node.TSPoint\n        r2_997\n        c2_998 = TreeSitter.Node.nodeEndPoint node_994\n\nderiving instance GHC.Classes.Eq a_999 => GHC.Classes.Eq (StatementBlock a_999)\n\nderiving instance GHC.Classes.Ord a_1000 => GHC.Classes.Ord (StatementBlock a_1000)\n\nderiving instance GHC.Show.Show a_1001 => GHC.Show.Show (StatementBlock a_1001)\n\ninstance AST.Unmarshal.Unmarshal StatementBlock\n\ninstance Data.Foldable.Foldable StatementBlock where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor StatementBlock where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable StatementBlock where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata String a = String\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (EscapeSequence a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1002.\n      AST.Traversable1.Class.Traversable1 a_1002\n    )\n\ninstance AST.Unmarshal.SymbolMatching String where\n  matchedSymbols _ = [208]\n  showFailure _ node_1003 =\n    \"expected \"\n      GHC.Base.<> ( \"string\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1003 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1003) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1004 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1005 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1006 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1007 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1004\n        c1_1005 = TreeSitter.Node.nodeStartPoint node_1003\n      TreeSitter.Node.TSPoint\n        r2_1006\n        c2_1007 = TreeSitter.Node.nodeEndPoint node_1003\n\nderiving instance GHC.Classes.Eq a_1008 => GHC.Classes.Eq (String a_1008)\n\nderiving instance GHC.Classes.Ord a_1009 => GHC.Classes.Ord (String a_1009)\n\nderiving instance GHC.Show.Show a_1010 => GHC.Show.Show (String a_1010)\n\ninstance AST.Unmarshal.Unmarshal String\n\ninstance Data.Foldable.Foldable String where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor String where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable String where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SubscriptExpression a = SubscriptExpression\n  { ann :: a,\n    object :: (AST.Parse.Err (Expression a)),\n    index :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1011.\n      AST.Traversable1.Class.Traversable1 a_1011\n    )\n\ninstance AST.Unmarshal.SymbolMatching SubscriptExpression where\n  matchedSymbols _ = [198]\n  showFailure _ node_1012 =\n    \"expected \"\n      GHC.Base.<> ( \"subscript_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1012 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1012) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1013 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1014 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1015 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1016 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1013\n        c1_1014 = TreeSitter.Node.nodeStartPoint node_1012\n      TreeSitter.Node.TSPoint\n        r2_1015\n        c2_1016 = TreeSitter.Node.nodeEndPoint node_1012\n\nderiving instance GHC.Classes.Eq a_1017 => GHC.Classes.Eq (SubscriptExpression a_1017)\n\nderiving instance GHC.Classes.Ord a_1018 => GHC.Classes.Ord (SubscriptExpression a_1018)\n\nderiving instance GHC.Show.Show a_1019 => GHC.Show.Show (SubscriptExpression a_1019)\n\ninstance AST.Unmarshal.Unmarshal SubscriptExpression\n\ninstance Data.Foldable.Foldable SubscriptExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SubscriptExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SubscriptExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SwitchBody a = SwitchBody\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((SwitchCase GHC.Generics.:+: SwitchDefault) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1020.\n      AST.Traversable1.Class.Traversable1 a_1020\n    )\n\ninstance AST.Unmarshal.SymbolMatching SwitchBody where\n  matchedSymbols _ = [173]\n  showFailure _ node_1021 =\n    \"expected \"\n      GHC.Base.<> ( \"switch_body\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1021 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1021) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1022 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1023 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1024 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1025 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1022\n        c1_1023 = TreeSitter.Node.nodeStartPoint node_1021\n      TreeSitter.Node.TSPoint\n        r2_1024\n        c2_1025 = TreeSitter.Node.nodeEndPoint node_1021\n\nderiving instance GHC.Classes.Eq a_1026 => GHC.Classes.Eq (SwitchBody a_1026)\n\nderiving instance GHC.Classes.Ord a_1027 => GHC.Classes.Ord (SwitchBody a_1027)\n\nderiving instance GHC.Show.Show a_1028 => GHC.Show.Show (SwitchBody a_1028)\n\ninstance AST.Unmarshal.Unmarshal SwitchBody\n\ninstance Data.Foldable.Foldable SwitchBody where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SwitchBody where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SwitchBody where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SwitchCase a = SwitchCase\n  { ann :: a,\n    value :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a)),\n    extraChildren :: ([AST.Parse.Err (Statement a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1029.\n      AST.Traversable1.Class.Traversable1 a_1029\n    )\n\ninstance AST.Unmarshal.SymbolMatching SwitchCase where\n  matchedSymbols _ = [174]\n  showFailure _ node_1030 =\n    \"expected \"\n      GHC.Base.<> ( \"switch_case\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1030 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1030) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1031 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1032 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1033 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1034 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1031\n        c1_1032 = TreeSitter.Node.nodeStartPoint node_1030\n      TreeSitter.Node.TSPoint\n        r2_1033\n        c2_1034 = TreeSitter.Node.nodeEndPoint node_1030\n\nderiving instance GHC.Classes.Eq a_1035 => GHC.Classes.Eq (SwitchCase a_1035)\n\nderiving instance GHC.Classes.Ord a_1036 => GHC.Classes.Ord (SwitchCase a_1036)\n\nderiving instance GHC.Show.Show a_1037 => GHC.Show.Show (SwitchCase a_1037)\n\ninstance AST.Unmarshal.Unmarshal SwitchCase\n\ninstance Data.Foldable.Foldable SwitchCase where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SwitchCase where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SwitchCase where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SwitchDefault a = SwitchDefault\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err (Statement a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1038.\n      AST.Traversable1.Class.Traversable1 a_1038\n    )\n\ninstance AST.Unmarshal.SymbolMatching SwitchDefault where\n  matchedSymbols _ = [175]\n  showFailure _ node_1039 =\n    \"expected \"\n      GHC.Base.<> ( \"switch_default\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1039 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1039) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1040 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1041 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1042 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1043 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1040\n        c1_1041 = TreeSitter.Node.nodeStartPoint node_1039\n      TreeSitter.Node.TSPoint\n        r2_1042\n        c2_1043 = TreeSitter.Node.nodeEndPoint node_1039\n\nderiving instance GHC.Classes.Eq a_1044 => GHC.Classes.Eq (SwitchDefault a_1044)\n\nderiving instance GHC.Classes.Ord a_1045 => GHC.Classes.Ord (SwitchDefault a_1045)\n\nderiving instance GHC.Show.Show a_1046 => GHC.Show.Show (SwitchDefault a_1046)\n\ninstance AST.Unmarshal.Unmarshal SwitchDefault\n\ninstance Data.Foldable.Foldable SwitchDefault where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SwitchDefault where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SwitchDefault where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata SwitchStatement a = SwitchStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (SwitchBody a)),\n    value :: (AST.Parse.Err (ParenthesizedExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1047.\n      AST.Traversable1.Class.Traversable1 a_1047\n    )\n\ninstance AST.Unmarshal.SymbolMatching SwitchStatement where\n  matchedSymbols _ = [158]\n  showFailure _ node_1048 =\n    \"expected \"\n      GHC.Base.<> ( \"switch_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1048 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1048) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1049 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1050 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1051 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1052 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1049\n        c1_1050 = TreeSitter.Node.nodeStartPoint node_1048\n      TreeSitter.Node.TSPoint\n        r2_1051\n        c2_1052 = TreeSitter.Node.nodeEndPoint node_1048\n\nderiving instance GHC.Classes.Eq a_1053 => GHC.Classes.Eq (SwitchStatement a_1053)\n\nderiving instance GHC.Classes.Ord a_1054 => GHC.Classes.Ord (SwitchStatement a_1054)\n\nderiving instance GHC.Show.Show a_1055 => GHC.Show.Show (SwitchStatement a_1055)\n\ninstance AST.Unmarshal.Unmarshal SwitchStatement\n\ninstance Data.Foldable.Foldable SwitchStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor SwitchStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable SwitchStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TemplateString a = TemplateString\n  { ann :: a,\n    extraChildren :: ([AST.Parse.Err ((EscapeSequence GHC.Generics.:+: TemplateSubstitution) a)])\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1056.\n      AST.Traversable1.Class.Traversable1 a_1056\n    )\n\ninstance AST.Unmarshal.SymbolMatching TemplateString where\n  matchedSymbols _ = [209]\n  showFailure _ node_1057 =\n    \"expected \"\n      GHC.Base.<> ( \"template_string\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1057 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1057) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1058 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1059 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1060 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1061 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1058\n        c1_1059 = TreeSitter.Node.nodeStartPoint node_1057\n      TreeSitter.Node.TSPoint\n        r2_1060\n        c2_1061 = TreeSitter.Node.nodeEndPoint node_1057\n\nderiving instance GHC.Classes.Eq a_1062 => GHC.Classes.Eq (TemplateString a_1062)\n\nderiving instance GHC.Classes.Ord a_1063 => GHC.Classes.Ord (TemplateString a_1063)\n\nderiving instance GHC.Show.Show a_1064 => GHC.Show.Show (TemplateString a_1064)\n\ninstance AST.Unmarshal.Unmarshal TemplateString\n\ninstance Data.Foldable.Foldable TemplateString where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TemplateString where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TemplateString where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TemplateSubstitution a = TemplateSubstitution\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1065.\n      AST.Traversable1.Class.Traversable1 a_1065\n    )\n\ninstance AST.Unmarshal.SymbolMatching TemplateSubstitution where\n  matchedSymbols _ = [210]\n  showFailure _ node_1066 =\n    \"expected \"\n      GHC.Base.<> ( \"template_substitution\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1066 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1066) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1067 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1068 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1069 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1070 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1067\n        c1_1068 = TreeSitter.Node.nodeStartPoint node_1066\n      TreeSitter.Node.TSPoint\n        r2_1069\n        c2_1070 = TreeSitter.Node.nodeEndPoint node_1066\n\nderiving instance GHC.Classes.Eq a_1071 => GHC.Classes.Eq (TemplateSubstitution a_1071)\n\nderiving instance GHC.Classes.Ord a_1072 => GHC.Classes.Ord (TemplateSubstitution a_1072)\n\nderiving instance GHC.Show.Show a_1073 => GHC.Show.Show (TemplateSubstitution a_1073)\n\ninstance AST.Unmarshal.Unmarshal TemplateSubstitution\n\ninstance Data.Foldable.Foldable TemplateSubstitution where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TemplateSubstitution where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TemplateSubstitution where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TernaryExpression a = TernaryExpression\n  { ann :: a,\n    alternative :: (AST.Parse.Err (Expression a)),\n    consequence :: (AST.Parse.Err (Expression a)),\n    condition :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1074.\n      AST.Traversable1.Class.Traversable1 a_1074\n    )\n\ninstance AST.Unmarshal.SymbolMatching TernaryExpression where\n  matchedSymbols _ = [203]\n  showFailure _ node_1075 =\n    \"expected \"\n      GHC.Base.<> ( \"ternary_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1075 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1075) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1076 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1077 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1078 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1079 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1076\n        c1_1077 = TreeSitter.Node.nodeStartPoint node_1075\n      TreeSitter.Node.TSPoint\n        r2_1078\n        c2_1079 = TreeSitter.Node.nodeEndPoint node_1075\n\nderiving instance GHC.Classes.Eq a_1080 => GHC.Classes.Eq (TernaryExpression a_1080)\n\nderiving instance GHC.Classes.Ord a_1081 => GHC.Classes.Ord (TernaryExpression a_1081)\n\nderiving instance GHC.Show.Show a_1082 => GHC.Show.Show (TernaryExpression a_1082)\n\ninstance AST.Unmarshal.Unmarshal TernaryExpression\n\ninstance Data.Foldable.Foldable TernaryExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TernaryExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TernaryExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata ThrowStatement a = ThrowStatement\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Expression GHC.Generics.:+: SequenceExpression) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1083.\n      AST.Traversable1.Class.Traversable1 a_1083\n    )\n\ninstance AST.Unmarshal.SymbolMatching ThrowStatement where\n  matchedSymbols _ = [170]\n  showFailure _ node_1084 =\n    \"expected \"\n      GHC.Base.<> ( \"throw_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1084 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1084) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1085 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1086 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1087 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1088 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1085\n        c1_1086 = TreeSitter.Node.nodeStartPoint node_1084\n      TreeSitter.Node.TSPoint\n        r2_1087\n        c2_1088 = TreeSitter.Node.nodeEndPoint node_1084\n\nderiving instance GHC.Classes.Eq a_1089 => GHC.Classes.Eq (ThrowStatement a_1089)\n\nderiving instance GHC.Classes.Ord a_1090 => GHC.Classes.Ord (ThrowStatement a_1090)\n\nderiving instance GHC.Show.Show a_1091 => GHC.Show.Show (ThrowStatement a_1091)\n\ninstance AST.Unmarshal.Unmarshal ThrowStatement\n\ninstance Data.Foldable.Foldable ThrowStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ThrowStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ThrowStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TryStatement a = TryStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (StatementBlock a)),\n    handler :: (GHC.Maybe.Maybe (AST.Parse.Err (CatchClause a))),\n    finalizer :: (GHC.Maybe.Maybe (AST.Parse.Err (FinallyClause a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1092.\n      AST.Traversable1.Class.Traversable1 a_1092\n    )\n\ninstance AST.Unmarshal.SymbolMatching TryStatement where\n  matchedSymbols _ = [164]\n  showFailure _ node_1093 =\n    \"expected \"\n      GHC.Base.<> ( \"try_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1093 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1093) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1094 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1095 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1096 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1097 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1094\n        c1_1095 = TreeSitter.Node.nodeStartPoint node_1093\n      TreeSitter.Node.TSPoint\n        r2_1096\n        c2_1097 = TreeSitter.Node.nodeEndPoint node_1093\n\nderiving instance GHC.Classes.Eq a_1098 => GHC.Classes.Eq (TryStatement a_1098)\n\nderiving instance GHC.Classes.Ord a_1099 => GHC.Classes.Ord (TryStatement a_1099)\n\nderiving instance GHC.Show.Show a_1100 => GHC.Show.Show (TryStatement a_1100)\n\ninstance AST.Unmarshal.Unmarshal TryStatement\n\ninstance Data.Foldable.Foldable TryStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TryStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TryStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TupleType a = TupleType\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1101.\n      AST.Traversable1.Class.Traversable1 a_1101\n    )\n\ninstance AST.Unmarshal.SymbolMatching TupleType where\n  matchedSymbols _ = [277]\n  showFailure _ node_1102 =\n    \"expected \"\n      GHC.Base.<> ( \"tuple_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1102 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1102) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1103 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1104 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1105 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1106 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1103\n        c1_1104 = TreeSitter.Node.nodeStartPoint node_1102\n      TreeSitter.Node.TSPoint\n        r2_1105\n        c2_1106 = TreeSitter.Node.nodeEndPoint node_1102\n\nderiving instance GHC.Classes.Eq a_1107 => GHC.Classes.Eq (TupleType a_1107)\n\nderiving instance GHC.Classes.Ord a_1108 => GHC.Classes.Ord (TupleType a_1108)\n\nderiving instance GHC.Show.Show a_1109 => GHC.Show.Show (TupleType a_1109)\n\ninstance AST.Unmarshal.Unmarshal TupleType\n\ninstance Data.Foldable.Foldable TupleType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TupleType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TupleType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeAliasDeclaration a = TypeAliasDeclaration\n  { ann :: a,\n    value :: (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)),\n    name :: (AST.Parse.Err (TypeIdentifier a)),\n    typeParameters :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeParameters a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1110.\n      AST.Traversable1.Class.Traversable1 a_1110\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeAliasDeclaration where\n  matchedSymbols _ = [245]\n  showFailure _ node_1111 =\n    \"expected \"\n      GHC.Base.<> ( \"type_alias_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1111 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1111) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1112 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1113 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1114 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1115 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1112\n        c1_1113 = TreeSitter.Node.nodeStartPoint node_1111\n      TreeSitter.Node.TSPoint\n        r2_1114\n        c2_1115 = TreeSitter.Node.nodeEndPoint node_1111\n\nderiving instance GHC.Classes.Eq a_1116 => GHC.Classes.Eq (TypeAliasDeclaration a_1116)\n\nderiving instance GHC.Classes.Ord a_1117 => GHC.Classes.Ord (TypeAliasDeclaration a_1117)\n\nderiving instance GHC.Show.Show a_1118 => GHC.Show.Show (TypeAliasDeclaration a_1118)\n\ninstance AST.Unmarshal.Unmarshal TypeAliasDeclaration\n\ninstance Data.Foldable.Foldable TypeAliasDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeAliasDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeAliasDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeAnnotation a = TypeAnnotation\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1119.\n      AST.Traversable1.Class.Traversable1 a_1119\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeAnnotation where\n  matchedSymbols _ = [250]\n  showFailure _ node_1120 =\n    \"expected \"\n      GHC.Base.<> ( \"type_annotation\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1120 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1120) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1121 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1122 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1123 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1124 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1121\n        c1_1122 = TreeSitter.Node.nodeStartPoint node_1120\n      TreeSitter.Node.TSPoint\n        r2_1123\n        c2_1124 = TreeSitter.Node.nodeEndPoint node_1120\n\nderiving instance GHC.Classes.Eq a_1125 => GHC.Classes.Eq (TypeAnnotation a_1125)\n\nderiving instance GHC.Classes.Ord a_1126 => GHC.Classes.Ord (TypeAnnotation a_1126)\n\nderiving instance GHC.Show.Show a_1127 => GHC.Show.Show (TypeAnnotation a_1127)\n\ninstance AST.Unmarshal.Unmarshal TypeAnnotation\n\ninstance Data.Foldable.Foldable TypeAnnotation where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeAnnotation where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeAnnotation where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeArguments a = TypeArguments\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1128.\n      AST.Traversable1.Class.Traversable1 a_1128\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeArguments where\n  matchedSymbols _ = [266]\n  showFailure _ node_1129 =\n    \"expected \"\n      GHC.Base.<> ( \"type_arguments\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1129 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1129) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1130 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1131 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1132 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1133 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1130\n        c1_1131 = TreeSitter.Node.nodeStartPoint node_1129\n      TreeSitter.Node.TSPoint\n        r2_1132\n        c2_1133 = TreeSitter.Node.nodeEndPoint node_1129\n\nderiving instance GHC.Classes.Eq a_1134 => GHC.Classes.Eq (TypeArguments a_1134)\n\nderiving instance GHC.Classes.Ord a_1135 => GHC.Classes.Ord (TypeArguments a_1135)\n\nderiving instance GHC.Show.Show a_1136 => GHC.Show.Show (TypeArguments a_1136)\n\ninstance AST.Unmarshal.Unmarshal TypeArguments\n\ninstance Data.Foldable.Foldable TypeArguments where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeArguments where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeArguments where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeAssertion a = TypeAssertion\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Expression GHC.Generics.:+: TypeArguments) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1137.\n      AST.Traversable1.Class.Traversable1 a_1137\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeAssertion where\n  matchedSymbols _ = [229]\n  showFailure _ node_1138 =\n    \"expected \"\n      GHC.Base.<> ( \"type_assertion\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1138 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1138) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1139 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1140 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1141 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1142 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1139\n        c1_1140 = TreeSitter.Node.nodeStartPoint node_1138\n      TreeSitter.Node.TSPoint\n        r2_1141\n        c2_1142 = TreeSitter.Node.nodeEndPoint node_1138\n\nderiving instance GHC.Classes.Eq a_1143 => GHC.Classes.Eq (TypeAssertion a_1143)\n\nderiving instance GHC.Classes.Ord a_1144 => GHC.Classes.Ord (TypeAssertion a_1144)\n\nderiving instance GHC.Show.Show a_1145 => GHC.Show.Show (TypeAssertion a_1145)\n\ninstance AST.Unmarshal.Unmarshal TypeAssertion\n\ninstance Data.Foldable.Foldable TypeAssertion where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeAssertion where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeAssertion where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeParameter a = TypeParameter\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((Constraint GHC.Generics.:+: DefaultType GHC.Generics.:+: TypeIdentifier) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1146.\n      AST.Traversable1.Class.Traversable1 a_1146\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeParameter where\n  matchedSymbols _ = [271]\n  showFailure _ node_1147 =\n    \"expected \"\n      GHC.Base.<> ( \"type_parameter\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1147 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1147) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1148 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1149 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1150 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1151 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1148\n        c1_1149 = TreeSitter.Node.nodeStartPoint node_1147\n      TreeSitter.Node.TSPoint\n        r2_1150\n        c2_1151 = TreeSitter.Node.nodeEndPoint node_1147\n\nderiving instance GHC.Classes.Eq a_1152 => GHC.Classes.Eq (TypeParameter a_1152)\n\nderiving instance GHC.Classes.Ord a_1153 => GHC.Classes.Ord (TypeParameter a_1153)\n\nderiving instance GHC.Show.Show a_1154 => GHC.Show.Show (TypeParameter a_1154)\n\ninstance AST.Unmarshal.Unmarshal TypeParameter\n\ninstance Data.Foldable.Foldable TypeParameter where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeParameter where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeParameter where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeParameters a = TypeParameters\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (TypeParameter a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1155.\n      AST.Traversable1.Class.Traversable1 a_1155\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeParameters where\n  matchedSymbols _ = [270]\n  showFailure _ node_1156 =\n    \"expected \"\n      GHC.Base.<> ( \"type_parameters\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1156 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1156) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1157 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1158 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1159 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1160 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1157\n        c1_1158 = TreeSitter.Node.nodeStartPoint node_1156\n      TreeSitter.Node.TSPoint\n        r2_1159\n        c2_1160 = TreeSitter.Node.nodeEndPoint node_1156\n\nderiving instance GHC.Classes.Eq a_1161 => GHC.Classes.Eq (TypeParameters a_1161)\n\nderiving instance GHC.Classes.Ord a_1162 => GHC.Classes.Ord (TypeParameters a_1162)\n\nderiving instance GHC.Show.Show a_1163 => GHC.Show.Show (TypeParameters a_1163)\n\ninstance AST.Unmarshal.Unmarshal TypeParameters\n\ninstance Data.Foldable.Foldable TypeParameters where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeParameters where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeParameters where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypePredicate a = TypePredicate\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: Identifier GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1164.\n      AST.Traversable1.Class.Traversable1 a_1164\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypePredicate where\n  matchedSymbols _ = [255]\n  showFailure _ node_1165 =\n    \"expected \"\n      GHC.Base.<> ( \"type_predicate\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1165 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1165) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1166 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1167 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1168 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1169 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1166\n        c1_1167 = TreeSitter.Node.nodeStartPoint node_1165\n      TreeSitter.Node.TSPoint\n        r2_1168\n        c2_1169 = TreeSitter.Node.nodeEndPoint node_1165\n\nderiving instance GHC.Classes.Eq a_1170 => GHC.Classes.Eq (TypePredicate a_1170)\n\nderiving instance GHC.Classes.Ord a_1171 => GHC.Classes.Ord (TypePredicate a_1171)\n\nderiving instance GHC.Show.Show a_1172 => GHC.Show.Show (TypePredicate a_1172)\n\ninstance AST.Unmarshal.Unmarshal TypePredicate\n\ninstance Data.Foldable.Foldable TypePredicate where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypePredicate where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypePredicate where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata TypeQuery a = TypeQuery\n  { ann :: a,\n    extraChildren :: (AST.Parse.Err ((Identifier GHC.Generics.:+: NestedIdentifier) a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1173.\n      AST.Traversable1.Class.Traversable1 a_1173\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeQuery where\n  matchedSymbols _ = [256]\n  showFailure _ node_1174 =\n    \"expected \"\n      GHC.Base.<> ( \"type_query\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1174 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1174) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1175 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1176 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1177 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1178 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1175\n        c1_1176 = TreeSitter.Node.nodeStartPoint node_1174\n      TreeSitter.Node.TSPoint\n        r2_1177\n        c2_1178 = TreeSitter.Node.nodeEndPoint node_1174\n\nderiving instance GHC.Classes.Eq a_1179 => GHC.Classes.Eq (TypeQuery a_1179)\n\nderiving instance GHC.Classes.Ord a_1180 => GHC.Classes.Ord (TypeQuery a_1180)\n\nderiving instance GHC.Show.Show a_1181 => GHC.Show.Show (TypeQuery a_1181)\n\ninstance AST.Unmarshal.Unmarshal TypeQuery\n\ninstance Data.Foldable.Foldable TypeQuery where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeQuery where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeQuery where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UnaryExpression a = UnaryExpression\n  { ann :: a,\n    operator :: (AST.Parse.Err ((AnonymousBang GHC.Generics.:+: AnonymousPlus GHC.Generics.:+: AnonymousMinus GHC.Generics.:+: AnonymousDelete GHC.Generics.:+: AnonymousTypeof GHC.Generics.:+: AnonymousVoid GHC.Generics.:+: AnonymousTilde) a)),\n    argument :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1182.\n      AST.Traversable1.Class.Traversable1 a_1182\n    )\n\ninstance AST.Unmarshal.SymbolMatching UnaryExpression where\n  matchedSymbols _ = [205, 261]\n  showFailure _ node_1183 =\n    \"expected \"\n      GHC.Base.<> ( \"unary_expression, unary_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1183 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1183) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1184 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1185 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1186 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1187 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1184\n        c1_1185 = TreeSitter.Node.nodeStartPoint node_1183\n      TreeSitter.Node.TSPoint\n        r2_1186\n        c2_1187 = TreeSitter.Node.nodeEndPoint node_1183\n\nderiving instance GHC.Classes.Eq a_1188 => GHC.Classes.Eq (UnaryExpression a_1188)\n\nderiving instance GHC.Classes.Ord a_1189 => GHC.Classes.Ord (UnaryExpression a_1189)\n\nderiving instance GHC.Show.Show a_1190 => GHC.Show.Show (UnaryExpression a_1190)\n\ninstance AST.Unmarshal.Unmarshal UnaryExpression\n\ninstance Data.Foldable.Foldable UnaryExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UnaryExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UnaryExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UnionType a = UnionType\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err ((ArrayType GHC.Generics.:+: ConstructorType GHC.Generics.:+: ExistentialType GHC.Generics.:+: FlowMaybeType GHC.Generics.:+: FunctionType GHC.Generics.:+: GenericType GHC.Generics.:+: IndexTypeQuery GHC.Generics.:+: IntersectionType GHC.Generics.:+: LiteralType GHC.Generics.:+: LookupType GHC.Generics.:+: NestedTypeIdentifier GHC.Generics.:+: ObjectType GHC.Generics.:+: ParenthesizedType GHC.Generics.:+: PredefinedType GHC.Generics.:+: This GHC.Generics.:+: TupleType GHC.Generics.:+: TypeIdentifier GHC.Generics.:+: TypePredicate GHC.Generics.:+: TypeQuery GHC.Generics.:+: UnionType) a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1191.\n      AST.Traversable1.Class.Traversable1 a_1191\n    )\n\ninstance AST.Unmarshal.SymbolMatching UnionType where\n  matchedSymbols _ = [278]\n  showFailure _ node_1192 =\n    \"expected \"\n      GHC.Base.<> ( \"union_type\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1192 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1192) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1193 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1194 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1195 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1196 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1193\n        c1_1194 = TreeSitter.Node.nodeStartPoint node_1192\n      TreeSitter.Node.TSPoint\n        r2_1195\n        c2_1196 = TreeSitter.Node.nodeEndPoint node_1192\n\nderiving instance GHC.Classes.Eq a_1197 => GHC.Classes.Eq (UnionType a_1197)\n\nderiving instance GHC.Classes.Ord a_1198 => GHC.Classes.Ord (UnionType a_1198)\n\nderiving instance GHC.Show.Show a_1199 => GHC.Show.Show (UnionType a_1199)\n\ninstance AST.Unmarshal.Unmarshal UnionType\n\ninstance Data.Foldable.Foldable UnionType where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UnionType where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UnionType where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata UpdateExpression a = UpdateExpression\n  { ann :: a,\n    operator :: (AST.Parse.Err ((AnonymousPlusPlus GHC.Generics.:+: AnonymousMinusMinus) a)),\n    argument :: (AST.Parse.Err (Expression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1200.\n      AST.Traversable1.Class.Traversable1 a_1200\n    )\n\ninstance AST.Unmarshal.SymbolMatching UpdateExpression where\n  matchedSymbols _ = [206]\n  showFailure _ node_1201 =\n    \"expected \"\n      GHC.Base.<> ( \"update_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1201 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1201) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1202 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1203 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1204 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1205 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1202\n        c1_1203 = TreeSitter.Node.nodeStartPoint node_1201\n      TreeSitter.Node.TSPoint\n        r2_1204\n        c2_1205 = TreeSitter.Node.nodeEndPoint node_1201\n\nderiving instance GHC.Classes.Eq a_1206 => GHC.Classes.Eq (UpdateExpression a_1206)\n\nderiving instance GHC.Classes.Ord a_1207 => GHC.Classes.Ord (UpdateExpression a_1207)\n\nderiving instance GHC.Show.Show a_1208 => GHC.Show.Show (UpdateExpression a_1208)\n\ninstance AST.Unmarshal.Unmarshal UpdateExpression\n\ninstance Data.Foldable.Foldable UpdateExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor UpdateExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable UpdateExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata VariableDeclaration a = VariableDeclaration\n  { ann :: a,\n    extraChildren :: (GHC.Base.NonEmpty (AST.Parse.Err (VariableDeclarator a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1209.\n      AST.Traversable1.Class.Traversable1 a_1209\n    )\n\ninstance AST.Unmarshal.SymbolMatching VariableDeclaration where\n  matchedSymbols _ = [153]\n  showFailure _ node_1210 =\n    \"expected \"\n      GHC.Base.<> ( \"variable_declaration\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1210 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1210) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1211 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1212 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1213 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1214 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1211\n        c1_1212 = TreeSitter.Node.nodeStartPoint node_1210\n      TreeSitter.Node.TSPoint\n        r2_1213\n        c2_1214 = TreeSitter.Node.nodeEndPoint node_1210\n\nderiving instance GHC.Classes.Eq a_1215 => GHC.Classes.Eq (VariableDeclaration a_1215)\n\nderiving instance GHC.Classes.Ord a_1216 => GHC.Classes.Ord (VariableDeclaration a_1216)\n\nderiving instance GHC.Show.Show a_1217 => GHC.Show.Show (VariableDeclaration a_1217)\n\ninstance AST.Unmarshal.Unmarshal VariableDeclaration\n\ninstance Data.Foldable.Foldable VariableDeclaration where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor VariableDeclaration where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable VariableDeclaration where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata VariableDeclarator a = VariableDeclarator\n  { ann :: a,\n    value :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a))),\n    name :: (AST.Parse.Err ((DestructuringPattern GHC.Generics.:+: Identifier) a)),\n    type' :: (GHC.Maybe.Maybe (AST.Parse.Err (TypeAnnotation a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1218.\n      AST.Traversable1.Class.Traversable1 a_1218\n    )\n\ninstance AST.Unmarshal.SymbolMatching VariableDeclarator where\n  matchedSymbols _ = [155]\n  showFailure _ node_1219 =\n    \"expected \"\n      GHC.Base.<> ( \"variable_declarator\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1219 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1219) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1220 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1221 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1222 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1223 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1220\n        c1_1221 = TreeSitter.Node.nodeStartPoint node_1219\n      TreeSitter.Node.TSPoint\n        r2_1222\n        c2_1223 = TreeSitter.Node.nodeEndPoint node_1219\n\nderiving instance GHC.Classes.Eq a_1224 => GHC.Classes.Eq (VariableDeclarator a_1224)\n\nderiving instance GHC.Classes.Ord a_1225 => GHC.Classes.Ord (VariableDeclarator a_1225)\n\nderiving instance GHC.Show.Show a_1226 => GHC.Show.Show (VariableDeclarator a_1226)\n\ninstance AST.Unmarshal.Unmarshal VariableDeclarator\n\ninstance Data.Foldable.Foldable VariableDeclarator where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor VariableDeclarator where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable VariableDeclarator where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata WhileStatement a = WhileStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (Statement a)),\n    condition :: (AST.Parse.Err (ParenthesizedExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1227.\n      AST.Traversable1.Class.Traversable1 a_1227\n    )\n\ninstance AST.Unmarshal.SymbolMatching WhileStatement where\n  matchedSymbols _ = [162]\n  showFailure _ node_1228 =\n    \"expected \"\n      GHC.Base.<> ( \"while_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1228 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1228) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1229 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1230 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1231 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1232 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1229\n        c1_1230 = TreeSitter.Node.nodeStartPoint node_1228\n      TreeSitter.Node.TSPoint\n        r2_1231\n        c2_1232 = TreeSitter.Node.nodeEndPoint node_1228\n\nderiving instance GHC.Classes.Eq a_1233 => GHC.Classes.Eq (WhileStatement a_1233)\n\nderiving instance GHC.Classes.Ord a_1234 => GHC.Classes.Ord (WhileStatement a_1234)\n\nderiving instance GHC.Show.Show a_1235 => GHC.Show.Show (WhileStatement a_1235)\n\ninstance AST.Unmarshal.Unmarshal WhileStatement\n\ninstance Data.Foldable.Foldable WhileStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor WhileStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable WhileStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata WithStatement a = WithStatement\n  { ann :: a,\n    body :: (AST.Parse.Err (Statement a)),\n    object :: (AST.Parse.Err (ParenthesizedExpression a))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1236.\n      AST.Traversable1.Class.Traversable1 a_1236\n    )\n\ninstance AST.Unmarshal.SymbolMatching WithStatement where\n  matchedSymbols _ = [165]\n  showFailure _ node_1237 =\n    \"expected \"\n      GHC.Base.<> ( \"with_statement\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1237 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1237) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1238 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1239 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1240 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1241 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1238\n        c1_1239 = TreeSitter.Node.nodeStartPoint node_1237\n      TreeSitter.Node.TSPoint\n        r2_1240\n        c2_1241 = TreeSitter.Node.nodeEndPoint node_1237\n\nderiving instance GHC.Classes.Eq a_1242 => GHC.Classes.Eq (WithStatement a_1242)\n\nderiving instance GHC.Classes.Ord a_1243 => GHC.Classes.Ord (WithStatement a_1243)\n\nderiving instance GHC.Show.Show a_1244 => GHC.Show.Show (WithStatement a_1244)\n\ninstance AST.Unmarshal.Unmarshal WithStatement\n\ninstance Data.Foldable.Foldable WithStatement where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor WithStatement where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable WithStatement where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata YieldExpression a = YieldExpression\n  { ann :: a,\n    extraChildren :: (GHC.Maybe.Maybe (AST.Parse.Err (Expression a)))\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1245.\n      AST.Traversable1.Class.Traversable1 a_1245\n    )\n\ninstance AST.Unmarshal.SymbolMatching YieldExpression where\n  matchedSymbols _ = [180]\n  showFailure _ node_1246 =\n    \"expected \"\n      GHC.Base.<> ( \"yield_expression\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1246 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1246) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1247 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1248 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1249 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1250 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1247\n        c1_1248 = TreeSitter.Node.nodeStartPoint node_1246\n      TreeSitter.Node.TSPoint\n        r2_1249\n        c2_1250 = TreeSitter.Node.nodeEndPoint node_1246\n\nderiving instance GHC.Classes.Eq a_1251 => GHC.Classes.Eq (YieldExpression a_1251)\n\nderiving instance GHC.Classes.Ord a_1252 => GHC.Classes.Ord (YieldExpression a_1252)\n\nderiving instance GHC.Show.Show a_1253 => GHC.Show.Show (YieldExpression a_1253)\n\ninstance AST.Unmarshal.Unmarshal YieldExpression\n\ninstance Data.Foldable.Foldable YieldExpression where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor YieldExpression where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable YieldExpression where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousBang = AST.Token.Token \"!\" 88\n\ntype AnonymousBangEqual = AST.Token.Token \"!=\" 83\n\ntype AnonymousBangEqualEqual = AST.Token.Token \"!==\" 84\n\ntype AnonymousDQuote = AST.Token.Token \"\\\"\" 94\n\ntype AnonymousDollarLBrace = AST.Token.Token \"${\" 101\n\ntype AnonymousPercent = AST.Token.Token \"%\" 78\n\ntype AnonymousPercentEqual = AST.Token.Token \"%=\" 58\n\ntype AnonymousAmpersand = AST.Token.Token \"&\" 73\n\ntype AnonymousAmpersandAmpersand = AST.Token.Token \"&&\" 68\n\ntype AnonymousAmpersandEqual = AST.Token.Token \"&=\" 60\n\ntype AnonymousSQuote = AST.Token.Token \"'\" 96\n\ntype AnonymousLParen = AST.Token.Token \"(\" 23\n\ntype AnonymousRParen = AST.Token.Token \")\" 24\n\ntype AnonymousStar = AST.Token.Token \"*\" 4\n\ntype AnonymousStarStar = AST.Token.Token \"**\" 79\n\ntype AnonymousStarStarEqual = AST.Token.Token \"**=\" 65\n\ntype AnonymousStarEqual = AST.Token.Token \"*=\" 56\n\ntype AnonymousPlus = AST.Token.Token \"+\" 76\n\ntype AnonymousPlusPlus = AST.Token.Token \"++\" 92\n\ntype AnonymousPlusEqual = AST.Token.Token \"+=\" 54\n\ntype AnonymousComma = AST.Token.Token \",\" 10\n\ntype AnonymousMinus = AST.Token.Token \"-\" 77\n\ntype AnonymousMinusMinus = AST.Token.Token \"--\" 93\n\ntype AnonymousMinusEqual = AST.Token.Token \"-=\" 55\n\ntype AnonymousDot = AST.Token.Token \".\" 48\n\ntype AnonymousDotDotDot = AST.Token.Token \"...\" 66\n\ntype AnonymousSlash = AST.Token.Token \"/\" 47\n\ntype AnonymousSlashEqual = AST.Token.Token \"/=\" 57\n\ntype AnonymousColon = AST.Token.Token \":\" 38\n\ntype AnonymousSemicolon = AST.Token.Token \";\" 37\n\ntype AnonymousLAngle = AST.Token.Token \"<\" 45\n\ntype AnonymousLAngleLAngle = AST.Token.Token \"<<\" 72\n\ntype AnonymousLAngleLAngleEqual = AST.Token.Token \"<<=\" 64\n\ntype AnonymousLAngleEqual = AST.Token.Token \"<=\" 80\n\ntype AnonymousEqual = AST.Token.Token \"=\" 6\n\ntype AnonymousEqualEqual = AST.Token.Token \"==\" 81\n\ntype AnonymousEqualEqualEqual = AST.Token.Token \"===\" 82\n\ntype AnonymousEqualRAngle = AST.Token.Token \"=>\" 52\n\ntype AnonymousRAngle = AST.Token.Token \">\" 46\n\ntype AnonymousRAngleEqual = AST.Token.Token \">=\" 85\n\ntype AnonymousRAngleRAngle = AST.Token.Token \">>\" 70\n\ntype AnonymousRAngleRAngleEqual = AST.Token.Token \">>=\" 62\n\ntype AnonymousRAngleRAngleRAngle = AST.Token.Token \">>>\" 71\n\ntype AnonymousRAngleRAngleRAngleEqual = AST.Token.Token \">>>=\" 63\n\ntype AnonymousQuestion = AST.Token.Token \"?\" 67\n\ntype AnonymousQuestionQuestion = AST.Token.Token \"??\" 86\n\ntype AnonymousAt = AST.Token.Token \"@\" 113\n\ntype AnonymousLBracket = AST.Token.Token \"[\" 43\n\ntype AnonymousRBracket = AST.Token.Token \"]\" 44\n\ntype AnonymousCaret = AST.Token.Token \"^\" 74\n\ntype AnonymousCaretEqual = AST.Token.Token \"^=\" 59\n\ntype AnonymousBacktick = AST.Token.Token \"`\" 100\n\ntype AnonymousAbstract = AST.Token.Token \"abstract\" 115\n\ntype AnonymousAny = AST.Token.Token \"any\" 123\n\ntype AnonymousAs = AST.Token.Token \"as\" 7\n\ntype AnonymousAsync = AST.Token.Token \"async\" 50\n\ntype AnonymousAwait = AST.Token.Token \"await\" 25\n\ntype AnonymousBoolean = AST.Token.Token \"boolean\" 125\n\ntype AnonymousBreak = AST.Token.Token \"break\" 32\n\ntype AnonymousCase = AST.Token.Token \"case\" 39\n\ntype AnonymousCatch = AST.Token.Token \"catch\" 40\n\ntype AnonymousClass = AST.Token.Token \"class\" 49\n\ntype AnonymousConst = AST.Token.Token \"const\" 18\n\ntype AnonymousContinue = AST.Token.Token \"continue\" 33\n\ntype AnonymousDebugger = AST.Token.Token \"debugger\" 34\n\ntype AnonymousDeclare = AST.Token.Token \"declare\" 118\n\ntype AnonymousDefault = AST.Token.Token \"default\" 5\n\ntype AnonymousDelete = AST.Token.Token \"delete\" 91\n\ntype AnonymousDo = AST.Token.Token \"do\" 29\n\ntype AnonymousElse = AST.Token.Token \"else\" 20\n\ntype AnonymousEnum = AST.Token.Token \"enum\" 133\n\ndata EscapeSequence a = EscapeSequence {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1254.\n      AST.Traversable1.Class.Traversable1 a_1254\n    )\n\ninstance AST.Unmarshal.SymbolMatching EscapeSequence where\n  matchedSymbols _ = [98]\n  showFailure _ node_1255 =\n    \"expected \"\n      GHC.Base.<> ( \"escape_sequence\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1255 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1255) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1256 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1257 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1258 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1259 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1256\n        c1_1257 = TreeSitter.Node.nodeStartPoint node_1255\n      TreeSitter.Node.TSPoint\n        r2_1258\n        c2_1259 = TreeSitter.Node.nodeEndPoint node_1255\n\nderiving instance GHC.Classes.Eq a_1260 => GHC.Classes.Eq (EscapeSequence a_1260)\n\nderiving instance GHC.Classes.Ord a_1261 => GHC.Classes.Ord (EscapeSequence a_1261)\n\nderiving instance GHC.Show.Show a_1262 => GHC.Show.Show (EscapeSequence a_1262)\n\ninstance AST.Unmarshal.Unmarshal EscapeSequence\n\ninstance Data.Foldable.Foldable EscapeSequence where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor EscapeSequence where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable EscapeSequence where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousExport = AST.Token.Token \"export\" 3\n\ntype AnonymousExtends = AST.Token.Token \"extends\" 132\n\ndata False a = False {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1263.\n      AST.Traversable1.Class.Traversable1 a_1263\n    )\n\ninstance AST.Unmarshal.SymbolMatching False where\n  matchedSymbols _ = [110]\n  showFailure _ node_1264 =\n    \"expected \"\n      GHC.Base.<> ( \"false\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1264 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1264) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1265 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1266 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1267 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1268 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1265\n        c1_1266 = TreeSitter.Node.nodeStartPoint node_1264\n      TreeSitter.Node.TSPoint\n        r2_1267\n        c2_1268 = TreeSitter.Node.nodeEndPoint node_1264\n\nderiving instance GHC.Classes.Eq a_1269 => GHC.Classes.Eq (False a_1269)\n\nderiving instance GHC.Classes.Ord a_1270 => GHC.Classes.Ord (False a_1270)\n\nderiving instance GHC.Show.Show a_1271 => GHC.Show.Show (False a_1271)\n\ninstance AST.Unmarshal.Unmarshal False\n\ninstance Data.Foldable.Foldable False where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor False where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable False where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousFinally = AST.Token.Token \"finally\" 41\n\ntype AnonymousFor = AST.Token.Token \"for\" 22\n\ntype AnonymousFrom = AST.Token.Token \"from\" 15\n\ntype AnonymousFunction = AST.Token.Token \"function\" 51\n\ntype AnonymousGet = AST.Token.Token \"get\" 116\n\ntype AnonymousGlobal = AST.Token.Token \"global\" 130\n\ndata HashBangLine a = HashBangLine {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1272.\n      AST.Traversable1.Class.Traversable1 a_1272\n    )\n\ninstance AST.Unmarshal.SymbolMatching HashBangLine where\n  matchedSymbols _ = [2]\n  showFailure _ node_1273 =\n    \"expected \"\n      GHC.Base.<> ( \"hash_bang_line\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1273 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1273) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1274 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1275 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1276 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1277 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1274\n        c1_1275 = TreeSitter.Node.nodeStartPoint node_1273\n      TreeSitter.Node.TSPoint\n        r2_1276\n        c2_1277 = TreeSitter.Node.nodeEndPoint node_1273\n\nderiving instance GHC.Classes.Eq a_1278 => GHC.Classes.Eq (HashBangLine a_1278)\n\nderiving instance GHC.Classes.Ord a_1279 => GHC.Classes.Ord (HashBangLine a_1279)\n\nderiving instance GHC.Show.Show a_1280 => GHC.Show.Show (HashBangLine a_1280)\n\ninstance AST.Unmarshal.Unmarshal HashBangLine\n\ninstance Data.Foldable.Foldable HashBangLine where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor HashBangLine where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable HashBangLine where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Identifier a = Identifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1281.\n      AST.Traversable1.Class.Traversable1 a_1281\n    )\n\ninstance AST.Unmarshal.SymbolMatching Identifier where\n  matchedSymbols _ = [1]\n  showFailure _ node_1282 =\n    \"expected \"\n      GHC.Base.<> ( \"identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1282 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1282) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1283 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1284 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1285 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1286 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1283\n        c1_1284 = TreeSitter.Node.nodeStartPoint node_1282\n      TreeSitter.Node.TSPoint\n        r2_1285\n        c2_1286 = TreeSitter.Node.nodeEndPoint node_1282\n\nderiving instance GHC.Classes.Eq a_1287 => GHC.Classes.Eq (Identifier a_1287)\n\nderiving instance GHC.Classes.Ord a_1288 => GHC.Classes.Ord (Identifier a_1288)\n\nderiving instance GHC.Show.Show a_1289 => GHC.Show.Show (Identifier a_1289)\n\ninstance AST.Unmarshal.Unmarshal Identifier\n\ninstance Data.Foldable.Foldable Identifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Identifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Identifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousIf = AST.Token.Token \"if\" 19\n\ntype AnonymousImplements = AST.Token.Token \"implements\" 129\n\ntype AnonymousImport = AST.Token.Token \"import\" 14\n\ntype AnonymousIn = AST.Token.Token \"in\" 26\n\ntype AnonymousInstanceof = AST.Token.Token \"instanceof\" 87\n\ntype AnonymousInterface = AST.Token.Token \"interface\" 131\n\ntype AnonymousIs = AST.Token.Token \"is\" 135\n\ndata JsxText a = JsxText {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1290.\n      AST.Traversable1.Class.Traversable1 a_1290\n    )\n\ninstance AST.Unmarshal.SymbolMatching JsxText where\n  matchedSymbols _ = []\n  showFailure _ node_1291 =\n    \"expected \"\n      GHC.Base.<> ( \"\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1291 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1291) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1292 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1293 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1294 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1295 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1292\n        c1_1293 = TreeSitter.Node.nodeStartPoint node_1291\n      TreeSitter.Node.TSPoint\n        r2_1294\n        c2_1295 = TreeSitter.Node.nodeEndPoint node_1291\n\nderiving instance GHC.Classes.Eq a_1296 => GHC.Classes.Eq (JsxText a_1296)\n\nderiving instance GHC.Classes.Ord a_1297 => GHC.Classes.Ord (JsxText a_1297)\n\nderiving instance GHC.Show.Show a_1298 => GHC.Show.Show (JsxText a_1298)\n\ninstance AST.Unmarshal.Unmarshal JsxText\n\ninstance Data.Foldable.Foldable JsxText where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor JsxText where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable JsxText where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousKeyof = AST.Token.Token \"keyof\" 136\n\ntype AnonymousLet = AST.Token.Token \"let\" 17\n\ntype AnonymousModule = AST.Token.Token \"module\" 122\n\ntype AnonymousNamespace = AST.Token.Token \"namespace\" 8\n\ntype AnonymousNew = AST.Token.Token \"new\" 53\n\ndata Null a = Null {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1299.\n      AST.Traversable1.Class.Traversable1 a_1299\n    )\n\ninstance AST.Unmarshal.SymbolMatching Null where\n  matchedSymbols _ = [111]\n  showFailure _ node_1300 =\n    \"expected \"\n      GHC.Base.<> ( \"null\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1300 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1300) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1301 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1302 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1303 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1304 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1301\n        c1_1302 = TreeSitter.Node.nodeStartPoint node_1300\n      TreeSitter.Node.TSPoint\n        r2_1303\n        c2_1304 = TreeSitter.Node.nodeEndPoint node_1300\n\nderiving instance GHC.Classes.Eq a_1305 => GHC.Classes.Eq (Null a_1305)\n\nderiving instance GHC.Classes.Ord a_1306 => GHC.Classes.Ord (Null a_1306)\n\nderiving instance GHC.Show.Show a_1307 => GHC.Show.Show (Null a_1307)\n\ninstance AST.Unmarshal.Unmarshal Null\n\ninstance Data.Foldable.Foldable Null where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Null where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Null where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata Number a = Number {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1308.\n      AST.Traversable1.Class.Traversable1 a_1308\n    )\n\ninstance AST.Unmarshal.SymbolMatching Number where\n  matchedSymbols _ = [105]\n  showFailure _ node_1309 =\n    \"expected \"\n      GHC.Base.<> ( \"number\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1309 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1309) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1310 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1311 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1312 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1313 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1310\n        c1_1311 = TreeSitter.Node.nodeStartPoint node_1309\n      TreeSitter.Node.TSPoint\n        r2_1312\n        c2_1313 = TreeSitter.Node.nodeEndPoint node_1309\n\nderiving instance GHC.Classes.Eq a_1314 => GHC.Classes.Eq (Number a_1314)\n\nderiving instance GHC.Classes.Ord a_1315 => GHC.Classes.Ord (Number a_1315)\n\nderiving instance GHC.Show.Show a_1316 => GHC.Show.Show (Number a_1316)\n\ninstance AST.Unmarshal.Unmarshal Number\n\ninstance Data.Foldable.Foldable Number where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Number where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Number where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousNumber = AST.Token.Token \"number\" 124\n\ntype AnonymousOf = AST.Token.Token \"of\" 27\n\ntype AnonymousPrivate = AST.Token.Token \"private\" 120\n\ndata PropertyIdentifier a = PropertyIdentifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1317.\n      AST.Traversable1.Class.Traversable1 a_1317\n    )\n\ninstance AST.Unmarshal.SymbolMatching PropertyIdentifier where\n  matchedSymbols _ = [303]\n  showFailure _ node_1318 =\n    \"expected \"\n      GHC.Base.<> ( \"property_identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1318 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1318) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1319 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1320 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1321 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1322 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1319\n        c1_1320 = TreeSitter.Node.nodeStartPoint node_1318\n      TreeSitter.Node.TSPoint\n        r2_1321\n        c2_1322 = TreeSitter.Node.nodeEndPoint node_1318\n\nderiving instance GHC.Classes.Eq a_1323 => GHC.Classes.Eq (PropertyIdentifier a_1323)\n\nderiving instance GHC.Classes.Ord a_1324 => GHC.Classes.Ord (PropertyIdentifier a_1324)\n\nderiving instance GHC.Show.Show a_1325 => GHC.Show.Show (PropertyIdentifier a_1325)\n\ninstance AST.Unmarshal.Unmarshal PropertyIdentifier\n\ninstance Data.Foldable.Foldable PropertyIdentifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor PropertyIdentifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable PropertyIdentifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousProtected = AST.Token.Token \"protected\" 121\n\ntype AnonymousPublic = AST.Token.Token \"public\" 119\n\ndata Readonly a = Readonly {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1326.\n      AST.Traversable1.Class.Traversable1 a_1326\n    )\n\ninstance AST.Unmarshal.SymbolMatching Readonly where\n  matchedSymbols _ = [134]\n  showFailure _ node_1327 =\n    \"expected \"\n      GHC.Base.<> ( \"readonly\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1327 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1327) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1328 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1329 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1330 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1331 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1328\n        c1_1329 = TreeSitter.Node.nodeStartPoint node_1327\n      TreeSitter.Node.TSPoint\n        r2_1330\n        c2_1331 = TreeSitter.Node.nodeEndPoint node_1327\n\nderiving instance GHC.Classes.Eq a_1332 => GHC.Classes.Eq (Readonly a_1332)\n\nderiving instance GHC.Classes.Ord a_1333 => GHC.Classes.Ord (Readonly a_1333)\n\nderiving instance GHC.Show.Show a_1334 => GHC.Show.Show (Readonly a_1334)\n\ninstance AST.Unmarshal.Unmarshal Readonly\n\ninstance Data.Foldable.Foldable Readonly where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Readonly where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Readonly where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata RegexFlags a = RegexFlags {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1335.\n      AST.Traversable1.Class.Traversable1 a_1335\n    )\n\ninstance AST.Unmarshal.SymbolMatching RegexFlags where\n  matchedSymbols _ = [104]\n  showFailure _ node_1336 =\n    \"expected \"\n      GHC.Base.<> ( \"regex_flags\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1336 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1336) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1337 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1338 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1339 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1340 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1337\n        c1_1338 = TreeSitter.Node.nodeStartPoint node_1336\n      TreeSitter.Node.TSPoint\n        r2_1339\n        c2_1340 = TreeSitter.Node.nodeEndPoint node_1336\n\nderiving instance GHC.Classes.Eq a_1341 => GHC.Classes.Eq (RegexFlags a_1341)\n\nderiving instance GHC.Classes.Ord a_1342 => GHC.Classes.Ord (RegexFlags a_1342)\n\nderiving instance GHC.Show.Show a_1343 => GHC.Show.Show (RegexFlags a_1343)\n\ninstance AST.Unmarshal.Unmarshal RegexFlags\n\ninstance Data.Foldable.Foldable RegexFlags where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RegexFlags where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RegexFlags where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata RegexPattern a = RegexPattern {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1344.\n      AST.Traversable1.Class.Traversable1 a_1344\n    )\n\ninstance AST.Unmarshal.SymbolMatching RegexPattern where\n  matchedSymbols _ = [103]\n  showFailure _ node_1345 =\n    \"expected \"\n      GHC.Base.<> ( \"regex_pattern\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1345 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1345) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1346 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1347 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1348 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1349 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1346\n        c1_1347 = TreeSitter.Node.nodeStartPoint node_1345\n      TreeSitter.Node.TSPoint\n        r2_1348\n        c2_1349 = TreeSitter.Node.nodeEndPoint node_1345\n\nderiving instance GHC.Classes.Eq a_1350 => GHC.Classes.Eq (RegexPattern a_1350)\n\nderiving instance GHC.Classes.Ord a_1351 => GHC.Classes.Ord (RegexPattern a_1351)\n\nderiving instance GHC.Show.Show a_1352 => GHC.Show.Show (RegexPattern a_1352)\n\ninstance AST.Unmarshal.Unmarshal RegexPattern\n\ninstance Data.Foldable.Foldable RegexPattern where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor RegexPattern where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable RegexPattern where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousRequire = AST.Token.Token \"require\" 128\n\ntype AnonymousReturn = AST.Token.Token \"return\" 35\n\ntype AnonymousSet = AST.Token.Token \"set\" 117\n\ndata ShorthandPropertyIdentifier a = ShorthandPropertyIdentifier\n  { ann :: a,\n    text :: Data.Text.Internal.Text\n  }\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1353.\n      AST.Traversable1.Class.Traversable1 a_1353\n    )\n\ninstance AST.Unmarshal.SymbolMatching ShorthandPropertyIdentifier where\n  matchedSymbols _ = [304]\n  showFailure _ node_1354 =\n    \"expected \"\n      GHC.Base.<> ( \"shorthand_property_identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1354 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1354) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1355 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1356 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1357 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1358 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1355\n        c1_1356 = TreeSitter.Node.nodeStartPoint node_1354\n      TreeSitter.Node.TSPoint\n        r2_1357\n        c2_1358 = TreeSitter.Node.nodeEndPoint node_1354\n\nderiving instance GHC.Classes.Eq a_1359 => GHC.Classes.Eq (ShorthandPropertyIdentifier a_1359)\n\nderiving instance GHC.Classes.Ord a_1360 => GHC.Classes.Ord (ShorthandPropertyIdentifier a_1360)\n\nderiving instance GHC.Show.Show a_1361 => GHC.Show.Show (ShorthandPropertyIdentifier a_1361)\n\ninstance AST.Unmarshal.Unmarshal ShorthandPropertyIdentifier\n\ninstance Data.Foldable.Foldable ShorthandPropertyIdentifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor ShorthandPropertyIdentifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable ShorthandPropertyIdentifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ndata StatementIdentifier a = StatementIdentifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1362.\n      AST.Traversable1.Class.Traversable1 a_1362\n    )\n\ninstance AST.Unmarshal.SymbolMatching StatementIdentifier where\n  matchedSymbols _ = [305]\n  showFailure _ node_1363 =\n    \"expected \"\n      GHC.Base.<> ( \"statement_identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1363 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1363) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1364 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1365 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1366 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1367 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1364\n        c1_1365 = TreeSitter.Node.nodeStartPoint node_1363\n      TreeSitter.Node.TSPoint\n        r2_1366\n        c2_1367 = TreeSitter.Node.nodeEndPoint node_1363\n\nderiving instance GHC.Classes.Eq a_1368 => GHC.Classes.Eq (StatementIdentifier a_1368)\n\nderiving instance GHC.Classes.Ord a_1369 => GHC.Classes.Ord (StatementIdentifier a_1369)\n\nderiving instance GHC.Show.Show a_1370 => GHC.Show.Show (StatementIdentifier a_1370)\n\ninstance AST.Unmarshal.Unmarshal StatementIdentifier\n\ninstance Data.Foldable.Foldable StatementIdentifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor StatementIdentifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable StatementIdentifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousStatic = AST.Token.Token \"static\" 114\n\ntype AnonymousString = AST.Token.Token \"string\" 126\n\ndata Super a = Super {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1371.\n      AST.Traversable1.Class.Traversable1 a_1371\n    )\n\ninstance AST.Unmarshal.SymbolMatching Super where\n  matchedSymbols _ = [108]\n  showFailure _ node_1372 =\n    \"expected \"\n      GHC.Base.<> ( \"super\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1372 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1372) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1373 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1374 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1375 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1376 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1373\n        c1_1374 = TreeSitter.Node.nodeStartPoint node_1372\n      TreeSitter.Node.TSPoint\n        r2_1375\n        c2_1376 = TreeSitter.Node.nodeEndPoint node_1372\n\nderiving instance GHC.Classes.Eq a_1377 => GHC.Classes.Eq (Super a_1377)\n\nderiving instance GHC.Classes.Ord a_1378 => GHC.Classes.Ord (Super a_1378)\n\nderiving instance GHC.Show.Show a_1379 => GHC.Show.Show (Super a_1379)\n\ninstance AST.Unmarshal.Unmarshal Super\n\ninstance Data.Foldable.Foldable Super where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Super where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Super where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousSwitch = AST.Token.Token \"switch\" 21\n\ntype AnonymousSymbol = AST.Token.Token \"symbol\" 127\n\ntype AnonymousTarget = AST.Token.Token \"target\" 106\n\ndata This a = This {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1380.\n      AST.Traversable1.Class.Traversable1 a_1380\n    )\n\ninstance AST.Unmarshal.SymbolMatching This where\n  matchedSymbols _ = [107]\n  showFailure _ node_1381 =\n    \"expected \"\n      GHC.Base.<> ( \"this\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1381 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1381) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1382 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1383 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1384 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1385 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1382\n        c1_1383 = TreeSitter.Node.nodeStartPoint node_1381\n      TreeSitter.Node.TSPoint\n        r2_1384\n        c2_1385 = TreeSitter.Node.nodeEndPoint node_1381\n\nderiving instance GHC.Classes.Eq a_1386 => GHC.Classes.Eq (This a_1386)\n\nderiving instance GHC.Classes.Ord a_1387 => GHC.Classes.Ord (This a_1387)\n\nderiving instance GHC.Show.Show a_1388 => GHC.Show.Show (This a_1388)\n\ninstance AST.Unmarshal.Unmarshal This\n\ninstance Data.Foldable.Foldable This where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor This where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable This where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousThrow = AST.Token.Token \"throw\" 36\n\ndata True a = True {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1389.\n      AST.Traversable1.Class.Traversable1 a_1389\n    )\n\ninstance AST.Unmarshal.SymbolMatching True where\n  matchedSymbols _ = [109]\n  showFailure _ node_1390 =\n    \"expected \"\n      GHC.Base.<> ( \"true\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1390 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1390) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1391 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1392 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1393 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1394 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1391\n        c1_1392 = TreeSitter.Node.nodeStartPoint node_1390\n      TreeSitter.Node.TSPoint\n        r2_1393\n        c2_1394 = TreeSitter.Node.nodeEndPoint node_1390\n\nderiving instance GHC.Classes.Eq a_1395 => GHC.Classes.Eq (True a_1395)\n\nderiving instance GHC.Classes.Ord a_1396 => GHC.Classes.Ord (True a_1396)\n\nderiving instance GHC.Show.Show a_1397 => GHC.Show.Show (True a_1397)\n\ninstance AST.Unmarshal.Unmarshal True\n\ninstance Data.Foldable.Foldable True where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor True where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable True where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousTry = AST.Token.Token \"try\" 30\n\ntype AnonymousType = AST.Token.Token \"type\" 12\n\ndata TypeIdentifier a = TypeIdentifier {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1398.\n      AST.Traversable1.Class.Traversable1 a_1398\n    )\n\ninstance AST.Unmarshal.SymbolMatching TypeIdentifier where\n  matchedSymbols _ = [306]\n  showFailure _ node_1399 =\n    \"expected \"\n      GHC.Base.<> ( \"type_identifier\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1399 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1399) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1400 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1401 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1402 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1403 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1400\n        c1_1401 = TreeSitter.Node.nodeStartPoint node_1399\n      TreeSitter.Node.TSPoint\n        r2_1402\n        c2_1403 = TreeSitter.Node.nodeEndPoint node_1399\n\nderiving instance GHC.Classes.Eq a_1404 => GHC.Classes.Eq (TypeIdentifier a_1404)\n\nderiving instance GHC.Classes.Ord a_1405 => GHC.Classes.Ord (TypeIdentifier a_1405)\n\nderiving instance GHC.Show.Show a_1406 => GHC.Show.Show (TypeIdentifier a_1406)\n\ninstance AST.Unmarshal.Unmarshal TypeIdentifier\n\ninstance Data.Foldable.Foldable TypeIdentifier where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor TypeIdentifier where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable TypeIdentifier where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousTypeof = AST.Token.Token \"typeof\" 13\n\ndata Undefined a = Undefined {ann :: a, text :: Data.Text.Internal.Text}\n  deriving stock (GHC.Generics.Generic, GHC.Generics.Generic1)\n  deriving anyclass\n    ( forall a_1407.\n      AST.Traversable1.Class.Traversable1 a_1407\n    )\n\ninstance AST.Unmarshal.SymbolMatching Undefined where\n  matchedSymbols _ = [112]\n  showFailure _ node_1408 =\n    \"expected \"\n      GHC.Base.<> ( \"undefined\"\n                      GHC.Base.<> ( \" but got \"\n                                      GHC.Base.<> ( if TreeSitter.Node.nodeSymbol node_1408 GHC.Classes.== 65535\n                                                      then \"ERROR\"\n                                                      else Data.OldList.genericIndex debugSymbolNames (TreeSitter.Node.nodeSymbol node_1408) GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r1_1409 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c1_1410 GHC.Base.<> (\"] -\" GHC.Base.<> (\" [\" GHC.Base.<> (GHC.Show.show r2_1411 GHC.Base.<> (\", \" GHC.Base.<> (GHC.Show.show c2_1412 GHC.Base.<> \"]\")))))))))\n                                                  )\n                                  )\n                  )\n    where\n      TreeSitter.Node.TSPoint\n        r1_1409\n        c1_1410 = TreeSitter.Node.nodeStartPoint node_1408\n      TreeSitter.Node.TSPoint\n        r2_1411\n        c2_1412 = TreeSitter.Node.nodeEndPoint node_1408\n\nderiving instance GHC.Classes.Eq a_1413 => GHC.Classes.Eq (Undefined a_1413)\n\nderiving instance GHC.Classes.Ord a_1414 => GHC.Classes.Ord (Undefined a_1414)\n\nderiving instance GHC.Show.Show a_1415 => GHC.Show.Show (Undefined a_1415)\n\ninstance AST.Unmarshal.Unmarshal Undefined\n\ninstance Data.Foldable.Foldable Undefined where\n  foldMap = AST.Traversable1.Class.foldMapDefault1\n\ninstance GHC.Base.Functor Undefined where\n  fmap = AST.Traversable1.Class.fmapDefault1\n\ninstance Data.Traversable.Traversable Undefined where\n  traverse = AST.Traversable1.Class.traverseDefault1\n\ntype AnonymousVar = AST.Token.Token \"var\" 16\n\ntype AnonymousVoid = AST.Token.Token \"void\" 90\n\ntype AnonymousWhile = AST.Token.Token \"while\" 28\n\ntype AnonymousWith = AST.Token.Token \"with\" 31\n\ntype AnonymousYield = AST.Token.Token \"yield\" 42\n\ntype AnonymousLBrace = AST.Token.Token \"{\" 9\n\ntype AnonymousLBracePipe = AST.Token.Token \"{|\" 137\n\ntype AnonymousPipe = AST.Token.Token \"|\" 75\n\ntype AnonymousPipeEqual = AST.Token.Token \"|=\" 61\n\ntype AnonymousPipePipe = AST.Token.Token \"||\" 69\n\ntype AnonymousPipeRBrace = AST.Token.Token \"|}\" 138\n\ntype AnonymousRBrace = AST.Token.Token \"}\" 11\n\ntype AnonymousTilde = AST.Token.Token \"~\" 89\n"
  },
  {
    "path": "semantic-typescript/src/Language/TypeScript/Grammar.hs",
    "content": "{-# LANGUAGE TemplateHaskell #-}\nmodule Language.TypeScript.Grammar\n( tree_sitter_typescript\n, Grammar(..)\n) where\n\nimport AST.Grammar.TH\nimport Language.Haskell.TH\nimport TreeSitter.TypeScript (tree_sitter_typescript)\n\n-- | Statically-known rules corresponding to symbols in the grammar.\nmkStaticallyKnownRuleGrammarData (mkName \"Grammar\") tree_sitter_typescript\n"
  },
  {
    "path": "semantic-typescript/src/Language/TypeScript/Tags.hs",
    "content": "{-# LANGUAGE ConstraintKinds #-}\n{-# LANGUAGE DefaultSignatures #-}\n{-# LANGUAGE DisambiguateRecordFields #-}\n{-# LANGUAGE FlexibleContexts #-}\n{-# LANGUAGE FlexibleInstances #-}\n{-# LANGUAGE KindSignatures #-}\n{-# LANGUAGE NamedFieldPuns #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE TypeApplications #-}\n{-# LANGUAGE TypeOperators #-}\n\nmodule Language.TypeScript.Tags\n  ( ToTags (..),\n  )\nwhere\n\nimport           AST.Element\nimport qualified AST.Parse as Parse\nimport           AST.Token\nimport           AST.Traversable1\nimport           Control.Effect.Reader\nimport           Control.Effect.State\nimport           Control.Effect.Writer\nimport           Data.Foldable\nimport           Data.Text (Text)\nimport qualified Language.TypeScript.AST as Ts\nimport           Proto.Semantic as P\nimport           Source.Loc\nimport           Source.Source as Source\nimport qualified Tags.Tagging.Precise as Tags\n\nclass ToTags (t :: * -> *) where\n  tags ::\n    ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n      Has (Writer Tags.Tags) sig m\n    ) =>\n    t Loc ->\n    m ()\n  default tags ::\n    ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n      Has (Writer Tags.Tags) sig m,\n      Traversable1 ToTags t\n    ) =>\n    t Loc ->\n    m ()\n  tags = gtags\n\ninstance ToTags Ts.Function where\n  tags t@Ts.Function {ann = Loc {byteRange}, name = Just (Parse.Success Ts.Identifier {text, ann})} =\n    yieldTag text P.FUNCTION P.DEFINITION ann byteRange >> gtags t\n  tags t = gtags t\n\ninstance ToTags Ts.FunctionSignature where\n  tags t@Ts.FunctionSignature {ann = Loc {byteRange}, name = Parse.Success (Ts.Identifier {text, ann})} =\n    yieldTag text P.FUNCTION P.DEFINITION ann byteRange >> gtags t\n  tags _ = pure ()\n\n\ninstance ToTags Ts.FunctionDeclaration where\n  tags t@Ts.FunctionDeclaration {ann = Loc {byteRange}, name = Parse.Success (Ts.Identifier {text, ann})} =\n    yieldTag text P.FUNCTION P.DEFINITION ann byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags Ts.MethodDefinition where\n  tags t@Ts.MethodDefinition {ann = Loc {byteRange}, name} = case name of\n    Parse.Success (Prj Ts.PropertyIdentifier {text, ann}) -> yieldTag text P.METHOD P.DEFINITION ann byteRange >> gtags t\n    _ -> gtags t\n\ninstance ToTags Ts.Pair where\n  tags t@Ts.Pair {ann = Loc {byteRange}, key = Parse.Success key, value = Parse.Success (Ts.Expression expr)} = case (key, expr) of\n    (Prj Ts.PropertyIdentifier {text, ann}, Prj Ts.Function {})      -> yield text ann\n    (Prj Ts.PropertyIdentifier {text, ann}, Prj Ts.ArrowFunction {}) -> yield text ann\n    _                                                                -> gtags t\n    where\n      yield text loc = yieldTag text P.FUNCTION P.DEFINITION loc byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags Ts.ClassDeclaration where\n  tags t@Ts.ClassDeclaration {ann = Loc {byteRange}, name = Parse.Success (Ts.TypeIdentifier {text, ann})} =\n    yieldTag text P.CLASS P.DEFINITION ann byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags Ts.CallExpression where\n  tags t@Ts.CallExpression {ann = Loc {byteRange}, function = Parse.Success (Ts.Expression expr)} = match expr\n    where\n      match expr = case expr of\n        Prj Ts.Identifier {text, ann} -> yield text ann\n        Prj Ts.NewExpression {constructor = EPrj Ts.Identifier {text, ann}} -> yield text ann\n        Prj Ts.CallExpression {function = Parse.Success (Ts.Expression expr)} -> match expr\n        Prj Ts.MemberExpression {property = Parse.Success (Ts.PropertyIdentifier {text, ann})} -> yield text ann\n        Prj Ts.Function {name = Just (Parse.Success (Ts.Identifier {text, ann}))} -> yield text ann\n        Prj Ts.ParenthesizedExpression {extraChildren} -> for_ extraChildren $ \\x -> case x of\n          EPrj (Ts.Expression expr) -> match expr\n          Parse.Success x           -> tags x\n          Parse.Fail _              -> pure ()\n        _ -> gtags t\n      yield name loc = yieldTag name P.CALL P.REFERENCE loc byteRange >> gtags t\n  tags _ = pure ()\n\ninstance ToTags Ts.Class where\n  tags t@Ts.Class {ann = Loc {byteRange}, name = Just (Parse.Success Ts.TypeIdentifier {text, ann})} =\n    yieldTag text P.CLASS P.DEFINITION ann byteRange >> gtags t\n  tags t = gtags t\n\ninstance ToTags Ts.Module where\n  tags t@Ts.Module {ann = Loc {byteRange}, name} = case name of\n    Parse.Success (Prj Ts.Identifier {text, ann}) -> yieldTag text P.MODULE P.DEFINITION ann byteRange >> gtags t\n    _                                             -> gtags t\n\ninstance ToTags Ts.VariableDeclarator where\n  tags t@Ts.VariableDeclarator {ann = Loc {byteRange}, name, value = Just (Parse.Success (Ts.Expression expr))} =\n    case (expr, name) of\n      (Prj Ts.Function {}, Parse.Success (Prj Ts.Identifier {text, ann}))      -> yield text ann\n      (Prj Ts.ArrowFunction {}, Parse.Success (Prj Ts.Identifier {text, ann})) -> yield text ann\n      _                                                                        -> gtags t\n    where\n      yield text loc = yieldTag text P.FUNCTION P.DEFINITION loc byteRange >> gtags t\n  tags t = gtags t\n\ninstance ToTags Ts.AssignmentExpression where\n  tags t@Ts.AssignmentExpression {ann = Loc {byteRange}, left, right = Parse.Success (Ts.Expression expr)} =\n    case (left, expr) of\n      (Parse.Success (Prj Ts.Identifier {text, ann}), Prj Ts.Function {}) -> yield text ann\n      (Parse.Success (Prj Ts.Identifier {text, ann}), Prj Ts.ArrowFunction {}) -> yield text ann\n      (EPrj Ts.MemberExpression {property = Parse.Success (Ts.PropertyIdentifier {text, ann})}, Prj Ts.Function {}) -> yield text ann\n      (EPrj Ts.MemberExpression {property = Parse.Success (Ts.PropertyIdentifier {text, ann})}, Prj Ts.ArrowFunction {}) -> yield text ann\n      _ -> gtags t\n    where\n      yield text loc = yieldTag text P.FUNCTION P.DEFINITION loc byteRange >> gtags t\n  tags _ = pure ()\n\ninstance (ToTags l, ToTags r) => ToTags (l :+: r) where\n  tags (L1 l) = tags l\n  tags (R1 r) = tags r\n\ninstance ToTags (Token sym n) where tags _ = pure ()\n\ngtags ::\n  ( Has (Reader Source) sig m,\n      Has (State Tags.LineIndices) sig m,\n    Has (Writer Tags.Tags) sig m,\n    Traversable1 ToTags t\n  ) =>\n  t Loc ->\n  m ()\ngtags = traverse1_ @ToTags (const (pure ())) tags\n\n-- These are all valid, but point to built-in functions (e.g. require) that a la\n-- carte doesn't display and since we have nothing to link to yet (can't\n-- jump-to-def), we hide them from the current tags output.\nnameBlacklist :: [Text]\nnameBlacklist = [\"require\"]\n\nyieldTag :: (Has (Reader Source) sig m, Has (State Tags.LineIndices) sig m, Has (Writer Tags.Tags) sig m) => Text -> P.SyntaxType -> P.NodeType -> Loc -> Range -> m ()\nyieldTag name P.CALL _ _ _ | name `elem` nameBlacklist = pure ()\nyieldTag name kind ty loc srcLineRange = Tags.yield name kind ty loc srcLineRange\n\n{- ORMOLU_DISABLE -}\ninstance ToTags Ts.AbstractClassDeclaration\ninstance ToTags Ts.AbstractMethodSignature\ninstance ToTags Ts.AccessibilityModifier\ninstance ToTags Ts.AmbientDeclaration\ninstance ToTags Ts.Arguments\ninstance ToTags Ts.Array\ninstance ToTags Ts.ArrayPattern\ninstance ToTags Ts.ArrayType\ninstance ToTags Ts.ArrowFunction\ninstance ToTags Ts.AsExpression\n-- instance ToTags Ts.AssignmentExpression\ninstance ToTags Ts.AssignmentPattern\ninstance ToTags Ts.AugmentedAssignmentExpression\ninstance ToTags Ts.AwaitExpression\ninstance ToTags Ts.BinaryExpression\ninstance ToTags Ts.BreakStatement\n-- instance ToTags Ts.CallExpression\ninstance ToTags Ts.CallSignature\ninstance ToTags Ts.CatchClause\n-- instance ToTags Ts.Class\ninstance ToTags Ts.ClassBody\n-- instance ToTags Ts.ClassDeclaration\ninstance ToTags Ts.ClassHeritage\ninstance ToTags Ts.ComputedPropertyName\ninstance ToTags Ts.Constraint\ninstance ToTags Ts.ConstructSignature\ninstance ToTags Ts.ConstructorType\ninstance ToTags Ts.ContinueStatement\ninstance ToTags Ts.DebuggerStatement\ninstance ToTags Ts.Declaration\ninstance ToTags Ts.Decorator\ninstance ToTags Ts.DefaultType\ninstance ToTags Ts.DestructuringPattern\ninstance ToTags Ts.DoStatement\ninstance ToTags Ts.EmptyStatement\ninstance ToTags Ts.EnumAssignment\ninstance ToTags Ts.EnumBody\ninstance ToTags Ts.EnumDeclaration\ninstance ToTags Ts.EscapeSequence\ninstance ToTags Ts.ExistentialType\ninstance ToTags Ts.ExportClause\ninstance ToTags Ts.ExportSpecifier\ninstance ToTags Ts.ExportStatement\ninstance ToTags Ts.Expression\ninstance ToTags Ts.ExpressionStatement\ninstance ToTags Ts.ExtendsClause\ninstance ToTags Ts.False\ninstance ToTags Ts.FinallyClause\ninstance ToTags Ts.FlowMaybeType\ninstance ToTags Ts.ForInStatement\ninstance ToTags Ts.ForStatement\ninstance ToTags Ts.FormalParameters\n-- instance ToTags Ts.Function\n-- instance ToTags Ts.FunctionDeclaration\n-- instance ToTags Ts.FunctionSignature\ninstance ToTags Ts.FunctionType\ninstance ToTags Ts.GeneratorFunction\ninstance ToTags Ts.GeneratorFunctionDeclaration\ninstance ToTags Ts.GenericType\ninstance ToTags Ts.HashBangLine\ninstance ToTags Ts.Identifier\ninstance ToTags Ts.IfStatement\ninstance ToTags Ts.ImplementsClause\ninstance ToTags Ts.Import\ninstance ToTags Ts.ImportAlias\ninstance ToTags Ts.ImportClause\ninstance ToTags Ts.ImportRequireClause\ninstance ToTags Ts.ImportSpecifier\ninstance ToTags Ts.ImportStatement\ninstance ToTags Ts.IndexSignature\ninstance ToTags Ts.IndexTypeQuery\ninstance ToTags Ts.InterfaceDeclaration\ninstance ToTags Ts.InternalModule\ninstance ToTags Ts.IntersectionType\ninstance ToTags Ts.JsxAttribute\ninstance ToTags Ts.JsxClosingElement\ninstance ToTags Ts.JsxElement\ninstance ToTags Ts.JsxExpression\ninstance ToTags Ts.JsxFragment\ninstance ToTags Ts.JsxNamespaceName\ninstance ToTags Ts.JsxOpeningElement\ninstance ToTags Ts.JsxSelfClosingElement\ninstance ToTags Ts.JsxText\ninstance ToTags Ts.LabeledStatement\ninstance ToTags Ts.LexicalDeclaration\ninstance ToTags Ts.LiteralType\ninstance ToTags Ts.LookupType\ninstance ToTags Ts.MappedTypeClause\ninstance ToTags Ts.MemberExpression\ninstance ToTags Ts.MetaProperty\n-- instance ToTags Ts.MethodDefinition\ninstance ToTags Ts.MethodSignature\n-- instance ToTags Ts.Module\ninstance ToTags Ts.NamedImports\ninstance ToTags Ts.NamespaceImport\ninstance ToTags Ts.NestedIdentifier\ninstance ToTags Ts.NestedTypeIdentifier\ninstance ToTags Ts.NewExpression\ninstance ToTags Ts.NonNullExpression\ninstance ToTags Ts.Null\ninstance ToTags Ts.Number\ninstance ToTags Ts.Object\ninstance ToTags Ts.ObjectPattern\ninstance ToTags Ts.ObjectType\ninstance ToTags Ts.OptionalParameter\n-- instance ToTags Ts.Pair\ninstance ToTags Ts.ParenthesizedExpression\ninstance ToTags Ts.ParenthesizedType\ninstance ToTags Ts.PredefinedType\ninstance ToTags Ts.Program\ninstance ToTags Ts.PropertyIdentifier\ninstance ToTags Ts.PropertySignature\ninstance ToTags Ts.PublicFieldDefinition\ninstance ToTags Ts.Readonly\ninstance ToTags Ts.Regex\ninstance ToTags Ts.RegexFlags\ninstance ToTags Ts.RegexPattern\ninstance ToTags Ts.RequiredParameter\ninstance ToTags Ts.RestParameter\ninstance ToTags Ts.ReturnStatement\ninstance ToTags Ts.SequenceExpression\ninstance ToTags Ts.ShorthandPropertyIdentifier\ninstance ToTags Ts.SpreadElement\ninstance ToTags Ts.Statement\ninstance ToTags Ts.StatementBlock\ninstance ToTags Ts.StatementIdentifier\ninstance ToTags Ts.String\ninstance ToTags Ts.SubscriptExpression\ninstance ToTags Ts.Super\ninstance ToTags Ts.SwitchBody\ninstance ToTags Ts.SwitchCase\ninstance ToTags Ts.SwitchDefault\ninstance ToTags Ts.SwitchStatement\ninstance ToTags Ts.TemplateString\ninstance ToTags Ts.TemplateSubstitution\ninstance ToTags Ts.TernaryExpression\ninstance ToTags Ts.This\ninstance ToTags Ts.ThrowStatement\ninstance ToTags Ts.True\ninstance ToTags Ts.TryStatement\ninstance ToTags Ts.TupleType\ninstance ToTags Ts.TypeAliasDeclaration\ninstance ToTags Ts.TypeAssertion\ninstance ToTags Ts.TypeAnnotation\ninstance ToTags Ts.TypeArguments\ninstance ToTags Ts.TypeIdentifier\ninstance ToTags Ts.TypeParameter\ninstance ToTags Ts.TypeParameters\ninstance ToTags Ts.TypePredicate\ninstance ToTags Ts.TypeQuery\ninstance ToTags Ts.UnaryExpression\ninstance ToTags Ts.Undefined\ninstance ToTags Ts.UnionType\ninstance ToTags Ts.UpdateExpression\ninstance ToTags Ts.VariableDeclaration\n-- instance ToTags Ts.VariableDeclarator\ninstance ToTags Ts.WhileStatement\ninstance ToTags Ts.WithStatement\ninstance ToTags Ts.YieldExpression\n{- ORMOLU_ENABLE -}\n"
  },
  {
    "path": "semantic-typescript/src/Language/TypeScript.hs",
    "content": "{-# LANGUAGE GeneralizedNewtypeDeriving #-}\n{-# OPTIONS_GHC -freduction-depth=0 #-}\n-- | Semantic functionality for TypeScript programs.\nmodule Language.TypeScript\n( Term(..)\n, Language.TypeScript.Grammar.tree_sitter_typescript\n) where\n\nimport           AST.Marshal.JSON\nimport           Data.Proxy\nimport qualified Language.TypeScript.AST as TypeScript\nimport qualified Language.TypeScript.Tags as TsTags\nimport qualified Tags.Tagging.Precise as Tags\nimport qualified Language.TypeScript.Grammar (tree_sitter_typescript)\nimport qualified AST.Unmarshal as TS\n\nnewtype Term a = Term { getTerm :: TypeScript.Program a }\n  deriving MarshalJSON\n\ninstance TS.SymbolMatching Term where\n  matchedSymbols _ = TS.matchedSymbols (Proxy :: Proxy TypeScript.Program)\n  showFailure _ = TS.showFailure (Proxy :: Proxy TypeScript.Program)\n\ninstance TS.Unmarshal Term where\n  matchers = fmap (fmap (TS.hoist Term)) TS.matchers\n\ninstance Tags.ToTags Term where\n  tags src = Tags.runTagging src . TsTags.tags . getTerm\n"
  },
  {
    "path": "semantic-typescript/test/PreciseTest.hs",
    "content": "{-# LANGUAGE CPP #-}\n{-# LANGUAGE DisambiguateRecordFields #-}\n{-# LANGUAGE ImplicitParams #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE TypeApplications #-}\n{-# OPTIONS_GHC -Wno-unused-imports #-}\nmodule Main (main) where\n\nimport           AST.TestHelpers\nimport           AST.Unmarshal\nimport qualified Language.TypeScript.AST as Ts\nimport qualified System.Path.Fixture as Fixture\nimport           Test.Tasty\nimport           TreeSitter.TypeScript\n\nmain :: IO ()\nmain = do\n#if BAZEL_BUILD\n  rf <- Fixture.create\n  let ?project = \"external/tree-sitter-typescript\"\n      ?runfiles = rf\n  let dirs = Fixture.absRelDir \"typescript/corpus\"\n#else\n  dirs <- Ts.getTestCorpusDir\n#endif\n\n  readCorpusFiles' dirs\n    >>= traverse (testCorpus parse)\n    >>= defaultMain . tests\n  where parse = parseByteString @Ts.Program @() tree_sitter_typescript\n\ntests :: [TestTree] -> TestTree\ntests = testGroup \"tree-sitter-typescript corpus tests\"\n"
  },
  {
    "path": "stack-snapshot.yaml",
    "content": "resolver: nightly-2020-08-16\npackages:\n  - Interpolation-0.3.0\n  - fused-effects-1.1.0.0\n  - fused-effects-exceptions-1.1.0.0\n  - fused-effects-readline-0.1.0.0\n  - haskeline-0.8.0.0\n  - lingo-0.5.0.1\n  - proto-lens-jsonpb-0.2.0.2\n  - semilattices-0.0.0.4\n  - tree-sitter-0.9.0.2\n  - unliftio-core-0.2.0.1\n"
  },
  {
    "path": "stackage_snapshot.json",
    "content": "{\n  \"__GENERATED_FILE_DO_NOT_MODIFY_MANUALLY\": 1264514574,\n  \"all-cabal-hashes\": \"https://raw.githubusercontent.com/commercialhaskell/all-cabal-hashes/bc8207695b49b91c30534145bb60fe75189f605d\",\n  \"resolved\": {\n    \"Cabal\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"Cabal\",\"version\":\"3.2.0.0\"},\n    \"Glob\": {\"dependencies\":[\"base\",\"containers\",\"directory\",\"dlist\",\"filepath\",\"transformers\",\"transformers-compat\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/Glob-0.10.1/Glob-0.10.1.tar.gz\"},\"name\":\"Glob\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/Glob-0.10.1/Glob-0.10.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/Glob-0.10.1.tar.gz\"],\"sha256\":\"cae4476d944947010705e0b00cf3e36c90ef407f968861f6771b931056b6d315\",\"cabal-sha256\":\"17cbe8f4f023d3288d168f5eb34f9fd1125348ece2682bad2137ed8a06d5d0d6\"},\"version\":\"0.10.1\"},\n    \"HUnit\": {\"dependencies\":[\"base\",\"call-stack\",\"deepseq\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/HUnit-1.6.0.0/HUnit-1.6.0.0.tar.gz\"},\"name\":\"HUnit\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/HUnit-1.6.0.0/HUnit-1.6.0.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/HUnit-1.6.0.0.tar.gz\"],\"sha256\":\"7448e6b966e98e84b7627deba23f71b508e9a61e7bc571d74304a25d30e6d0de\",\"cabal-sha256\":\"50227a528dca2c0d1fc8b14f8d7f4613d374cc1a525e955ebe9283823dad93a3\"},\"version\":\"1.6.0.0\"},\n    \"Only\": {\"dependencies\":[\"base\",\"deepseq\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/Only-0.1/Only-0.1.tar.gz\"},\"name\":\"Only\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/Only-0.1/Only-0.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/Only-0.1.tar.gz\"],\"sha256\":\"ab7aa193e8c257d3bda6b0b3c1cbcf74cdaa85ab08cb20c2dd62ba248c1ab265\",\"cabal-sha256\":\"f92f5da97e647451f1ee7f5bf44914fb75062d08ccd3f36b2000d649c63d13aa\"},\"version\":\"0.1\"},\n    \"QuickCheck\": {\"dependencies\":[\"base\",\"containers\",\"deepseq\",\"random\",\"splitmix\",\"template-haskell\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/QuickCheck-2.13.2/QuickCheck-2.13.2.tar.gz\"},\"name\":\"QuickCheck\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/QuickCheck-2.13.2/QuickCheck-2.13.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/QuickCheck-2.13.2.tar.gz\"],\"sha256\":\"7b560baa5853de777702dc23a6f2126ae4adbfdab163295bc56323a706914610\",\"cabal-sha256\":\"636e7265bf75122e7e2f97627c47aad3b772ee3b35b134cafb6095116ce8d07a\"},\"version\":\"2.13.2\"},\n    \"StateVar\": {\"dependencies\":[\"base\",\"stm\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/StateVar-1.2/StateVar-1.2.tar.gz\"},\"name\":\"StateVar\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/StateVar-1.2/StateVar-1.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/StateVar-1.2.tar.gz\"],\"sha256\":\"afc036021fcd38f15fcc4af392a3e57017d5ddcc926e99391dbfc8c4e6375f8b\",\"cabal-sha256\":\"9ab3e4a0e252d28bc2f799c83e0725c3e23e8d3b722cff0fdb9822e64b6c16ac\"},\"version\":\"1.2\"},\n    \"adjunctions\": {\"dependencies\":[\"array\",\"base\",\"comonad\",\"containers\",\"contravariant\",\"distributive\",\"free\",\"mtl\",\"profunctors\",\"semigroupoids\",\"semigroups\",\"tagged\",\"transformers\",\"transformers-compat\",\"void\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/adjunctions-4.4/adjunctions-4.4.tar.gz\"},\"name\":\"adjunctions\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/adjunctions-4.4/adjunctions-4.4.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/adjunctions-4.4.tar.gz\"],\"sha256\":\"507c2ef55337ae61c805f8cbc1213dfd7d2b85187342675d662254b8d8a16ae9\",\"cabal-sha256\":\"2738dd5f5d5e93749adb14a05472e58a96a75d0f299e46371c6f46dc4e97daf9\"},\"version\":\"4.4\"},\n    \"aeson\": {\"dependencies\":[\"attoparsec\",\"base\",\"base-compat-batteries\",\"bytestring\",\"containers\",\"data-fix\",\"deepseq\",\"dlist\",\"ghc-prim\",\"hashable\",\"primitive\",\"scientific\",\"strict\",\"tagged\",\"template-haskell\",\"text\",\"th-abstraction\",\"these\",\"time\",\"time-compat\",\"unordered-containers\",\"uuid-types\",\"vector\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/aeson-1.5.3.0/aeson-1.5.3.0.tar.gz\"},\"name\":\"aeson\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/aeson-1.5.3.0/aeson-1.5.3.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/aeson-1.5.3.0.tar.gz\"],\"sha256\":\"958ef96a31ad0807e307f92d61a2b51827f7b06afed52cf06f76c64c6aed986a\",\"cabal-sha256\":\"05496710de6ae694e55dc77dbdaf7503f56c24e4aecc06045e42e75a02df8bc4\"},\"version\":\"1.5.3.0\"},\n    \"aeson-pretty\": {\"dependencies\":[\"aeson\",\"attoparsec\",\"base\",\"base-compat\",\"bytestring\",\"cmdargs\",\"scientific\",\"text\",\"unordered-containers\",\"vector\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/aeson-pretty-0.8.8/aeson-pretty-0.8.8.tar.gz\"},\"name\":\"aeson-pretty\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/aeson-pretty-0.8.8/aeson-pretty-0.8.8.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/aeson-pretty-0.8.8.tar.gz\"],\"sha256\":\"81cea61cb6dcf32c3f0529ea5cfc98dbea3894152d7f2d9fe1cb051f927ec726\",\"cabal-sha256\":\"9924a16d0c362ff59dd6d5b875749ff5d599d2688f89d080388a0014714441ef\"},\"version\":\"0.8.8\"},\n    \"algebraic-graphs\": {\"dependencies\":[\"array\",\"base\",\"containers\",\"deepseq\",\"mtl\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/algebraic-graphs-0.5/algebraic-graphs-0.5.tar.gz\"},\"name\":\"algebraic-graphs\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/algebraic-graphs-0.5/algebraic-graphs-0.5.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/algebraic-graphs-0.5.tar.gz\"],\"sha256\":\"89b9fecf8245476ec823355125fcb95decf41fd9784e807d7bd0d09f0a79c50b\",\"cabal-sha256\":\"6eeec5ed1687ff7aa916e7bf9f02f51aaabde6f314dc0b7b1a84156974d7da73\"},\"version\":\"0.5\"},\n    \"ansi-terminal\": {\"dependencies\":[\"base\",\"colour\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/ansi-terminal-0.10.3/ansi-terminal-0.10.3.tar.gz\"},\"name\":\"ansi-terminal\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/ansi-terminal-0.10.3/ansi-terminal-0.10.3.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/ansi-terminal-0.10.3.tar.gz\"],\"sha256\":\"fa2e2e32dfad29835aa7fd442bbe233e07d97e933223a001fe5efa562535b57c\",\"cabal-sha256\":\"e2fbcef5f980dc234c7ad8e2fa433b0e8109132c9e643bc40ea5608cd5697797\"},\"version\":\"0.10.3\"},\n    \"ansi-wl-pprint\": {\"dependencies\":[\"ansi-terminal\",\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/ansi-wl-pprint-0.6.9/ansi-wl-pprint-0.6.9.tar.gz\"},\"name\":\"ansi-wl-pprint\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/ansi-wl-pprint-0.6.9/ansi-wl-pprint-0.6.9.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/ansi-wl-pprint-0.6.9.tar.gz\"],\"sha256\":\"a7b2e8e7cd3f02f2954e8b17dc60a0ccd889f49e2068ebb15abfa1d42f7a4eac\",\"cabal-sha256\":\"20d30674f137d43aa0279c2c2cc5e45a5f1c3c57e301852494906158b6313bf7\"},\"version\":\"0.6.9\"},\n    \"array\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"array\",\"version\":\"0.5.4.0\"},\n    \"assoc\": {\"dependencies\":[\"base\",\"bifunctors\",\"tagged\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/assoc-1.0.2/assoc-1.0.2.tar.gz\"},\"name\":\"assoc\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/assoc-1.0.2/assoc-1.0.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/assoc-1.0.2.tar.gz\"],\"sha256\":\"d8988dc6e8718c7a3456515b769c9336aeeec730cf86fc5175247969ff8f144f\",\"cabal-sha256\":\"a824e4f615469a27ad949dbf4907ba258bd6b459deebec00524c7bcb3f65cc9f\"},\"version\":\"1.0.2\"},\n    \"async\": {\"dependencies\":[\"base\",\"hashable\",\"stm\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/async-2.2.2/async-2.2.2.tar.gz\"},\"name\":\"async\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/async-2.2.2/async-2.2.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/async-2.2.2.tar.gz\"],\"sha256\":\"4b4ab1ac82c45144d82c6daf6cb6ba45eab9957dad44787fa5e869e23d73bbff\",\"cabal-sha256\":\"a178c166856da7ff22fe4500337b54812e94fd2059409452187d72e057ede9cd\"},\"version\":\"2.2.2\"},\n    \"attoparsec\": {\"dependencies\":[\"array\",\"base\",\"bytestring\",\"containers\",\"deepseq\",\"scientific\",\"text\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/attoparsec-0.13.2.4/attoparsec-0.13.2.4.tar.gz\"},\"name\":\"attoparsec\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/attoparsec-0.13.2.4/attoparsec-0.13.2.4.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/attoparsec-0.13.2.4.tar.gz\"],\"sha256\":\"ba66cd6de1749ec92568db1b9c905b43a849f0ad918d45d7b594407a02ebefb2\",\"cabal-sha256\":\"5941a05141a61239e8d6c4f2c9876bec3765d786766721b8474b8625febf914a\"},\"version\":\"0.13.2.4\"},\n    \"base\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"base\",\"version\":\"4.14.0.0\"},\n    \"base-compat\": {\"dependencies\":[\"base\",\"unix\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/base-compat-0.11.1/base-compat-0.11.1.tar.gz\"},\"name\":\"base-compat\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/base-compat-0.11.1/base-compat-0.11.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/base-compat-0.11.1.tar.gz\"],\"sha256\":\"356f1542ec93e7192a9073d32a8ef1e48194275495dcec7fb0d241f4baaf6d36\",\"cabal-sha256\":\"e49c1ce84f556621ef1142a169e4349049c516f5b3e3c3ec6830be503e7d4a93\"},\"version\":\"0.11.1\"},\n    \"base-compat-batteries\": {\"dependencies\":[\"base\",\"base-compat\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/base-compat-batteries-0.11.1/base-compat-batteries-0.11.1.tar.gz\"},\"name\":\"base-compat-batteries\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/base-compat-batteries-0.11.1/base-compat-batteries-0.11.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/base-compat-batteries-0.11.1.tar.gz\"],\"sha256\":\"caf66fed3c0a3b0437692cad18c93a7074e8524a86b8be1ce04d0a18cbf6aed8\",\"cabal-sha256\":\"2763af26f6bd118dc278b805988acc792443f08bd77da03ac5c438c2b1ab4aab\"},\"version\":\"0.11.1\"},\n    \"base-orphans\": {\"dependencies\":[\"base\",\"ghc-prim\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/base-orphans-0.8.2/base-orphans-0.8.2.tar.gz\"},\"name\":\"base-orphans\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/base-orphans-0.8.2/base-orphans-0.8.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/base-orphans-0.8.2.tar.gz\"],\"sha256\":\"2a8062385e5d5dee418428a22c72b9391557bc1fe2f93bd643f7754b36b9eb01\",\"cabal-sha256\":\"40ef37ed043aac2cbb6c538fdebfc62e601ee65ee161e4a6327452133b574d7e\"},\"version\":\"0.8.2\"},\n    \"base-prelude\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/base-prelude-1.4/base-prelude-1.4.tar.gz\"},\"name\":\"base-prelude\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/base-prelude-1.4/base-prelude-1.4.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/base-prelude-1.4.tar.gz\"],\"sha256\":\"3a7fc639f3e5293509369d0b217f9d9b9662373b151411841df1d099bcd8c55a\",\"cabal-sha256\":\"feea99326853023fa9f908308383a7f9802e40f2d241b83dac57b266b202bda6\"},\"version\":\"1.4\"},\n    \"base64-bytestring\": {\"dependencies\":[\"base\",\"bytestring\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/base64-bytestring-1.1.0.0/base64-bytestring-1.1.0.0.tar.gz\"},\"name\":\"base64-bytestring\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/base64-bytestring-1.1.0.0/base64-bytestring-1.1.0.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/base64-bytestring-1.1.0.0.tar.gz\"],\"sha256\":\"210d6c9042241ca52ee5d89cf221dbeb4d0e64b37391345369035ad2d9b4aca9\",\"cabal-sha256\":\"190264fef9e65d9085f00ccda419137096d1dc94777c58272bc96821dc7f37c3\"},\"version\":\"1.1.0.0\"},\n    \"basement\": {\"dependencies\":[\"base\",\"ghc-prim\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/basement-0.0.11/basement-0.0.11.tar.gz\"},\"name\":\"basement\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/basement-0.0.11/basement-0.0.11.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/basement-0.0.11.tar.gz\"],\"sha256\":\"67582b3475a5547925399f719df21f8bbbd0ca4d4db27795c22a474f8ee6346b\",\"cabal-sha256\":\"b685783bd7eeed832c47ebbd48599d9c45dccbc2380dd9295e137a30b37ecdc6\"},\"version\":\"0.0.11\"},\n    \"bazel-runfiles\": {\"dependencies\":[\"base\",\"directory\",\"filepath\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/bazel-runfiles-0.12/bazel-runfiles-0.12.tar.gz\"},\"name\":\"bazel-runfiles\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/bazel-runfiles-0.12/bazel-runfiles-0.12.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/bazel-runfiles-0.12.tar.gz\"],\"sha256\":\"758abec4b6d9256dd17a3d9d3de1279e01f04a8662ef5fbd523d83e58b343cf5\",\"cabal-sha256\":\"ea0e555a0c3fa67b0009a5f97d72cb1a0e9f03fe20ee2f6025b49a8117537298\"},\"version\":\"0.12\"},\n    \"bifunctors\": {\"dependencies\":[\"base\",\"base-orphans\",\"comonad\",\"containers\",\"tagged\",\"template-haskell\",\"th-abstraction\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/bifunctors-5.5.7/bifunctors-5.5.7.tar.gz\"},\"name\":\"bifunctors\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/bifunctors-5.5.7/bifunctors-5.5.7.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/bifunctors-5.5.7.tar.gz\"],\"sha256\":\"88b3a2d4504e1139a3aef7027913faa0870631477d0a2ebb6fa67d494cdb3532\",\"cabal-sha256\":\"19d907460f166ade334e9d85d7c0bcc58b57da5e8f802b28bba6d8d81fd3ee70\"},\"version\":\"5.5.7\"},\n    \"binary\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"binary\",\"version\":\"0.8.8.0\"},\n    \"blaze-builder\": {\"dependencies\":[\"base\",\"bytestring\",\"deepseq\",\"text\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/blaze-builder-0.4.1.0/blaze-builder-0.4.1.0.tar.gz\"},\"name\":\"blaze-builder\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/blaze-builder-0.4.1.0/blaze-builder-0.4.1.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/blaze-builder-0.4.1.0.tar.gz\"],\"sha256\":\"91fc8b966f3e9dc9461e1675c7566b881740f99abc906495491a3501630bc814\",\"cabal-sha256\":\"3231635f58df8f62a4e791d3ccade450d07dd370bf97729a8d0fabf113acc6dc\"},\"version\":\"0.4.1.0\"},\n    \"blaze-html\": {\"dependencies\":[\"base\",\"blaze-builder\",\"blaze-markup\",\"bytestring\",\"text\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/blaze-html-0.9.1.2/blaze-html-0.9.1.2.tar.gz\"},\"name\":\"blaze-html\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/blaze-html-0.9.1.2/blaze-html-0.9.1.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/blaze-html-0.9.1.2.tar.gz\"],\"sha256\":\"60503f42546c6c1b954014d188ea137e43d74dcffd2bf6157c113fd91a0c394c\",\"cabal-sha256\":\"49db3eb70fa93fb572f3a9233b542b59e7f766a2b95c92d01d95a596c7727473\"},\"version\":\"0.9.1.2\"},\n    \"blaze-markup\": {\"dependencies\":[\"base\",\"blaze-builder\",\"bytestring\",\"text\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/blaze-markup-0.8.2.7/blaze-markup-0.8.2.7.tar.gz\"},\"name\":\"blaze-markup\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/blaze-markup-0.8.2.7/blaze-markup-0.8.2.7.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/blaze-markup-0.8.2.7.tar.gz\"],\"sha256\":\"8b6489ed422d98e4372f41be1f40f772b8d4ed925f3203b36be4078d918c8ee4\",\"cabal-sha256\":\"66a4a250ef6597e3d147256ee3f3123d3b4848f2d2494f676ec293267e286f63\"},\"version\":\"0.8.2.7\"},\n    \"bytestring\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"bytestring\",\"version\":\"0.10.10.0\"},\n    \"cabal-doctest\": {\"dependencies\":[\"Cabal\",\"base\",\"directory\",\"filepath\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/cabal-doctest-1.0.8/cabal-doctest-1.0.8.tar.gz\"},\"name\":\"cabal-doctest\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/cabal-doctest-1.0.8/cabal-doctest-1.0.8.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/cabal-doctest-1.0.8.tar.gz\"],\"sha256\":\"2026a6a87d410202ce091412ca6bc33c5aca787025326b4a3d13425a23392e0e\",\"cabal-sha256\":\"8bd1d614fb65f0d52609da30bf8e5ec71a4b6adf8ff5610edb3cb4d114576117\"},\"version\":\"1.0.8\"},\n    \"call-stack\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/call-stack-0.2.0/call-stack-0.2.0.tar.gz\"},\"name\":\"call-stack\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/call-stack-0.2.0/call-stack-0.2.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/call-stack-0.2.0.tar.gz\"],\"sha256\":\"95c693c93958758d714dee22edc56d4ebb2dcefa4412264e941e32ccd6e4e0c7\",\"cabal-sha256\":\"5ce796b78d5f964468ec6fe0717b4e7d0430817f37370c47b3e6b38e345b6643\"},\"version\":\"0.2.0\"},\n    \"case-insensitive\": {\"dependencies\":[\"base\",\"bytestring\",\"deepseq\",\"hashable\",\"text\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/case-insensitive-1.2.1.0/case-insensitive-1.2.1.0.tar.gz\"},\"name\":\"case-insensitive\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/case-insensitive-1.2.1.0/case-insensitive-1.2.1.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/case-insensitive-1.2.1.0.tar.gz\"],\"sha256\":\"296dc17e0c5f3dfb3d82ced83e4c9c44c338ecde749b278b6eae512f1d04e406\",\"cabal-sha256\":\"9dfd3171fc7698cf8d931727d3af3a7b389135b583e46b5adac1f9d2026fff61\"},\"version\":\"1.2.1.0\"},\n    \"charset\": {\"dependencies\":[\"array\",\"base\",\"bytestring\",\"containers\",\"semigroups\",\"unordered-containers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/charset-0.3.7.1/charset-0.3.7.1.tar.gz\"},\"name\":\"charset\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/charset-0.3.7.1/charset-0.3.7.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/charset-0.3.7.1.tar.gz\"],\"sha256\":\"3d415d2883bd7bf0cc9f038e8323f19c71e07dd12a3c712f449ccb8b4daac0be\",\"cabal-sha256\":\"3fc49b320dd636a476110262de6e49f541b6f9704781c91fb6629863951f5d00\"},\"version\":\"0.3.7.1\"},\n    \"clock\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/clock-0.8/clock-0.8.tar.gz\"},\"name\":\"clock\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/clock-0.8/clock-0.8.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/clock-0.8.tar.gz\"],\"sha256\":\"08a35c5294009040f1e5eb721a21b60df7af6584092bb3d376ab1b2e57e26914\",\"cabal-sha256\":\"b4ae207e2d3761450060a0d0feb873269233898039c76fceef9cc1a544067767\"},\"version\":\"0.8\"},\n    \"cmdargs\": {\"dependencies\":[\"base\",\"filepath\",\"process\",\"template-haskell\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/cmdargs-0.10.20/cmdargs-0.10.20.tar.gz\"},\"name\":\"cmdargs\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/cmdargs-0.10.20/cmdargs-0.10.20.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/cmdargs-0.10.20.tar.gz\"],\"sha256\":\"0e269dc48c3d4c0447c96ffd772a6fe69dfa1260c323f4cd7bf171cbf2ab7331\",\"cabal-sha256\":\"76cf238367e669833929dd264b4fc2278145ddf5b743624f2d5558cca16a08a9\"},\"version\":\"0.10.20\"},\n    \"code-page\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/code-page-0.2/code-page-0.2.tar.gz\"},\"name\":\"code-page\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/code-page-0.2/code-page-0.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/code-page-0.2.tar.gz\"],\"sha256\":\"bfe32a8c4be9cf0d5a088267bf3fdf4adda8ba3f109e85675c93e70d575e1844\",\"cabal-sha256\":\"3192a458e76673b258c2696c8d429118741fee3c7cb6af2614f75b0101641b92\"},\"version\":\"0.2\"},\n    \"colour\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/colour-2.3.5/colour-2.3.5.tar.gz\"},\"name\":\"colour\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/colour-2.3.5/colour-2.3.5.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/colour-2.3.5.tar.gz\"],\"sha256\":\"3b8d471979617dce7c193523743c9782df63433d8e87e3ef6d97922e0da104e7\",\"cabal-sha256\":\"b27db0a3ad40d70bdbd8510a104269f8707592e80757a1abc66a22ba25e5a42f\"},\"version\":\"2.3.5\"},\n    \"comonad\": {\"dependencies\":[\"Cabal\",\"base\",\"cabal-doctest\",\"containers\",\"distributive\",\"tagged\",\"transformers\",\"transformers-compat\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/comonad-5.0.6/comonad-5.0.6.tar.gz\"},\"name\":\"comonad\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/comonad-5.0.6/comonad-5.0.6.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/comonad-5.0.6.tar.gz\"],\"sha256\":\"77cfb016acd1747b892c31b82daf0de93f508ba775d62562d376b354adb88fae\",\"cabal-sha256\":\"fdf1b529a79765a8549ac7e9d439b769cca852778742db8702a9d9b2dc27e4a4\"},\"version\":\"5.0.6\"},\n    \"concurrent-output\": {\"dependencies\":[\"ansi-terminal\",\"async\",\"base\",\"directory\",\"exceptions\",\"process\",\"stm\",\"terminal-size\",\"text\",\"transformers\",\"unix\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/concurrent-output-1.10.12/concurrent-output-1.10.12.tar.gz\"},\"name\":\"concurrent-output\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/concurrent-output-1.10.12/concurrent-output-1.10.12.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/concurrent-output-1.10.12.tar.gz\"],\"sha256\":\"87f8a1cf54e6eaf146750fa6bf11aa2620da496073cb6c3dc8f697169eba3c20\",\"cabal-sha256\":\"50e14131c486611055e2fa4f01a2ed03e63051e6d6707650f0a8f2f4ca618477\"},\"version\":\"1.10.12\"},\n    \"conduit\": {\"dependencies\":[\"base\",\"bytestring\",\"directory\",\"exceptions\",\"filepath\",\"mono-traversable\",\"mtl\",\"primitive\",\"resourcet\",\"text\",\"transformers\",\"unix\",\"unliftio-core\",\"vector\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/conduit-1.3.2/conduit-1.3.2.tar.gz\"},\"name\":\"conduit\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/conduit-1.3.2/conduit-1.3.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/conduit-1.3.2.tar.gz\"],\"sha256\":\"e3d97970f9bdead7e9e5a71b6f6c32d5d08c1551d5b36b28350b20e146f4ac6e\",\"cabal-sha256\":\"f85b5dc1d7d30e9122ac15975e7f59fe846b42ef952e2beddd32520a753c2fc4\"},\"version\":\"1.3.2\"},\n    \"constraints\": {\"dependencies\":[\"base\",\"binary\",\"deepseq\",\"ghc-prim\",\"hashable\",\"mtl\",\"semigroups\",\"transformers\",\"transformers-compat\",\"type-equality\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/constraints-0.12/constraints-0.12.tar.gz\"},\"name\":\"constraints\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/constraints-0.12/constraints-0.12.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/constraints-0.12.tar.gz\"],\"sha256\":\"f26b531a15f013f15b4b5df46c4f89b13927253a4195494c50320adf05760223\",\"cabal-sha256\":\"71c7999d7fa01d8941f08d37d4c107c6b1bcbd0306e234157557b9b096b7f1be\"},\"version\":\"0.12\"},\n    \"containers\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"containers\",\"version\":\"0.6.2.1\"},\n    \"contravariant\": {\"dependencies\":[\"StateVar\",\"base\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/contravariant-1.5.2/contravariant-1.5.2.tar.gz\"},\"name\":\"contravariant\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/contravariant-1.5.2/contravariant-1.5.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/contravariant-1.5.2.tar.gz\"],\"sha256\":\"c4262c24e3dcc2ba8ca221ed52a6390818a715301e4f13135d8d732e0c7dc60c\",\"cabal-sha256\":\"853259271870000c007a281f0bf0bf6e1aaa97c5fd5cd5734d7b0d79b9de2af5\"},\"version\":\"1.5.2\"},\n    \"data-default-class\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/data-default-class-0.1.2.0/data-default-class-0.1.2.0.tar.gz\"},\"name\":\"data-default-class\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/data-default-class-0.1.2.0/data-default-class-0.1.2.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/data-default-class-0.1.2.0.tar.gz\"],\"sha256\":\"4f01b423f000c3e069aaf52a348564a6536797f31498bb85c3db4bd2d0973e56\",\"cabal-sha256\":\"63e62120b7efd733a5a17cf59ceb43268e9a929c748127172d7d42f4a336e327\"},\"version\":\"0.1.2.0\"},\n    \"data-fix\": {\"dependencies\":[\"base\",\"deepseq\",\"hashable\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/data-fix-0.3.0/data-fix-0.3.0.tar.gz\"},\"name\":\"data-fix\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/data-fix-0.3.0/data-fix-0.3.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/data-fix-0.3.0.tar.gz\"],\"sha256\":\"9e59b3ed694b5139316093b3767842e60ad4821858459e7cd763e5773dfa99a0\",\"cabal-sha256\":\"058a266d1e658500e0ffb8babe68195b0ce06a081dcfc3814afc784b083fd9a5\"},\"version\":\"0.3.0\"},\n    \"deepseq\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"deepseq\",\"version\":\"1.4.4.0\"},\n    \"directory\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"directory\",\"version\":\"1.3.6.0\"},\n    \"directory-tree\": {\"dependencies\":[\"base\",\"directory\",\"filepath\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/directory-tree-0.12.1/directory-tree-0.12.1.tar.gz\"},\"name\":\"directory-tree\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/directory-tree-0.12.1/directory-tree-0.12.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/directory-tree-0.12.1.tar.gz\"],\"sha256\":\"e2084495b3a226cf54d949635c86fc14e89daa09d86cce39e3c3cf898ae6e517\",\"cabal-sha256\":\"6f24ee1eca965a199a96f853582e61a338f1a529c87bc02c7f1451e2f2ed03fe\"},\"version\":\"0.12.1\"},\n    \"distributive\": {\"dependencies\":[\"Cabal\",\"base\",\"base-orphans\",\"cabal-doctest\",\"tagged\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/distributive-0.6.2/distributive-0.6.2.tar.gz\"},\"name\":\"distributive\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/distributive-0.6.2/distributive-0.6.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/distributive-0.6.2.tar.gz\"],\"sha256\":\"824ee271ded433ce6c61fe890c784642b7e20ffa4082fca609da54e7dcfc23c9\",\"cabal-sha256\":\"2ace9babcdbd1c2db28638c200405fb85e3660fe19ceae4f03082590adc2c487\"},\"version\":\"0.6.2\"},\n    \"dlist\": {\"dependencies\":[\"base\",\"deepseq\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/dlist-0.8.0.8/dlist-0.8.0.8.tar.gz\"},\"name\":\"dlist\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/dlist-0.8.0.8/dlist-0.8.0.8.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/dlist-0.8.0.8.tar.gz\"],\"sha256\":\"7129cf18068d3384e305708a10426ab8f573bee1030b023a114f45f1d0ec496d\",\"cabal-sha256\":\"90ca348bffdc62d7070bcf0e97c728f8d01b24fbc7ea08d2909157d0da76534c\"},\"version\":\"0.8.0.8\"},\n    \"doctest\": {\"dependencies\":[\"base\",\"base-compat\",\"code-page\",\"deepseq\",\"directory\",\"filepath\",\"ghc\",\"ghc-paths\",\"process\",\"syb\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/doctest-0.16.3/doctest-0.16.3.tar.gz\"},\"name\":\"doctest\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/doctest-0.16.3/doctest-0.16.3.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/doctest-0.16.3.tar.gz\"],\"sha256\":\"cfe9629f9c4d0aa24a11b5c4dd216fb5b9ebce7b3f6a8a7e58716280943a34f8\",\"cabal-sha256\":\"a4d5e71440a95034ad206eb9f3a27b2f5253896a15124574a00fea98c5b2f5c1\"},\"version\":\"0.16.3\"},\n    \"erf\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/erf-2.0.0.0/erf-2.0.0.0.tar.gz\"},\"name\":\"erf\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/erf-2.0.0.0/erf-2.0.0.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/erf-2.0.0.0.tar.gz\"],\"sha256\":\"24f0b79c7e1d25cb2cd44c2258d7a464bf6db8079775b50b60b54a254616b337\",\"cabal-sha256\":\"11c5d3747d17b589009cbe9656ca792e4b5b2560d4aa44f6f1e80044794b1a8b\"},\"version\":\"2.0.0.0\"},\n    \"exceptions\": {\"dependencies\":[\"base\",\"mtl\",\"stm\",\"template-haskell\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/exceptions-0.10.4/exceptions-0.10.4.tar.gz\"},\"name\":\"exceptions\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/exceptions-0.10.4/exceptions-0.10.4.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/exceptions-0.10.4.tar.gz\"],\"sha256\":\"4d0bfb4355cffcd67d300811df9d5fe44ea3594ed63750795bfc1f797abd84cf\",\"cabal-sha256\":\"d2546046d7ba4b460d3bc7fd269cd2c52d0b7fb3cfecc038715dd0881b78a484\"},\"version\":\"0.10.4\"},\n    \"fail\": {\"dependencies\":[],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/fail-4.9.0.0/fail-4.9.0.0.tar.gz\"},\"name\":\"fail\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/fail-4.9.0.0/fail-4.9.0.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/fail-4.9.0.0.tar.gz\"],\"sha256\":\"6d5cdb1a5c539425a9665f740e364722e1d9d6ae37fbc55f30fe3dbbbb91d4a2\",\"cabal-sha256\":\"35d1ee29364447c1b7d616bb1ee31f162b73e85fea91d7ca6441cf901398f572\"},\"version\":\"4.9.0.0\"},\n    \"filepath\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"filepath\",\"version\":\"1.4.2.1\"},\n    \"fingertree\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/fingertree-0.1.4.2/fingertree-0.1.4.2.tar.gz\"},\"name\":\"fingertree\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/fingertree-0.1.4.2/fingertree-0.1.4.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/fingertree-0.1.4.2.tar.gz\"],\"sha256\":\"95a948341570bad5a9b2468c388c0eb2c20c57e10dd8fbfc994c7b8764b36a7f\",\"cabal-sha256\":\"b368fda61b14073bd798f45c8fa91e1c5331628193a8b88d93fb5a4341849c64\"},\"version\":\"0.1.4.2\"},\n    \"foldl\": {\"dependencies\":[\"base\",\"bytestring\",\"comonad\",\"containers\",\"contravariant\",\"hashable\",\"mwc-random\",\"primitive\",\"profunctors\",\"semigroupoids\",\"text\",\"transformers\",\"unordered-containers\",\"vector\",\"vector-builder\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/foldl-1.4.8/foldl-1.4.8.tar.gz\"},\"name\":\"foldl\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/foldl-1.4.8/foldl-1.4.8.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/foldl-1.4.8.tar.gz\"],\"sha256\":\"ed1a59f210d4e732dc5b0a0dbe7e60348ea87e74df196f75a6bc236c936499ca\",\"cabal-sha256\":\"2f6611b3a2ce92d2279c93a60cd8ef3bed98c17bd814e5b943ede53578005f26\"},\"version\":\"1.4.8\"},\n    \"free\": {\"dependencies\":[\"base\",\"comonad\",\"containers\",\"distributive\",\"exceptions\",\"mtl\",\"profunctors\",\"semigroupoids\",\"template-haskell\",\"transformers\",\"transformers-base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/free-5.1.3/free-5.1.3.tar.gz\"},\"name\":\"free\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/free-5.1.3/free-5.1.3.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/free-5.1.3.tar.gz\"],\"sha256\":\"2c70d66e3a1ad52ce4b22d5510ffc6d7b3db950bd7f43bc61801cfe7b24c2e2d\",\"cabal-sha256\":\"604c27b6ba0a560c8a1377ad76e5bbb8528e924d6b0590215d815faddbec0b70\"},\"version\":\"5.1.3\"},\n    \"fused-effects\": {\"dependencies\":[\"base\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/fused-effects-1.1.0.0/fused-effects-1.1.0.0.tar.gz\"},\"name\":\"fused-effects\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/fused-effects-1.1.0.0/fused-effects-1.1.0.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/fused-effects-1.1.0.0.tar.gz\"],\"sha256\":\"9de604f9bbae418ff81767c173933945d1dd61c2889c124775dcbfa90780415b\",\"cabal-sha256\":\"29d03c73b585920c0999a18b73c9a0bf9e61e1fa58c5c2bed3f89423c8078f4a\"},\"version\":\"1.1.0.0\"},\n    \"fused-effects-exceptions\": {\"dependencies\":[\"base\",\"fused-effects\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/fused-effects-exceptions-1.1.0.0/fused-effects-exceptions-1.1.0.0.tar.gz\"},\"name\":\"fused-effects-exceptions\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/fused-effects-exceptions-1.1.0.0/fused-effects-exceptions-1.1.0.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/fused-effects-exceptions-1.1.0.0.tar.gz\"],\"sha256\":\"51d67c952b4d0799fe99f6b82d6e534b9fd26447ea321c7710bfdbc9ca76bd64\",\"cabal-sha256\":\"c1880f55360deaa4441bda9ff09a4ce6dbd63df8c175c7ada16a5d67a3717bee\"},\"version\":\"1.1.0.0\"},\n    \"fused-effects-readline\": {\"dependencies\":[\"base\",\"directory\",\"exceptions\",\"filepath\",\"fused-effects\",\"haskeline\",\"prettyprinter\",\"prettyprinter-ansi-terminal\",\"terminal-size\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/fused-effects-readline-0.1.0.0/fused-effects-readline-0.1.0.0.tar.gz\"},\"name\":\"fused-effects-readline\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/fused-effects-readline-0.1.0.0/fused-effects-readline-0.1.0.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/fused-effects-readline-0.1.0.0.tar.gz\"],\"sha256\":\"5514b7022231fc2e040bbdc7550cb080a03ebdf567e16719f0443f20572b3ae9\",\"cabal-sha256\":\"668b390d418baf0e4f611a021e92a12b9bdebbab2e6a75a8b6c7434cfd019856\"},\"version\":\"0.1.0.0\"},\n    \"gauge\": {\"dependencies\":[\"base\",\"basement\",\"deepseq\",\"directory\",\"process\",\"vector\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/gauge-0.2.5/gauge-0.2.5.tar.gz\"},\"name\":\"gauge\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/gauge-0.2.5/gauge-0.2.5.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/gauge-0.2.5.tar.gz\"],\"sha256\":\"d520fd677890c1bf2b1601331d003f976d85420811c3db4a72cff4d3bdb7f5a7\",\"cabal-sha256\":\"8d60450bdec985c146d5632d4f5a8d60cec27d71ba6787ed1ee64d945d4c7c33\"},\"version\":\"0.2.5\"},\n    \"generic-lens\": {\"dependencies\":[\"base\",\"generic-lens-core\",\"profunctors\",\"text\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/generic-lens-2.0.0.0/generic-lens-2.0.0.0.tar.gz\"},\"name\":\"generic-lens\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/generic-lens-2.0.0.0/generic-lens-2.0.0.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/generic-lens-2.0.0.0.tar.gz\"],\"sha256\":\"b816e55dbdf96ed04b7ad01193fce3dec36397aff3036e34a89ee2884b02093a\",\"cabal-sha256\":\"7409fa0ce540d0bd41acf596edd1c5d0c0ab1cd1294d514cf19c5c24e8ef2550\"},\"version\":\"2.0.0.0\"},\n    \"generic-lens-core\": {\"dependencies\":[\"base\",\"indexed-profunctors\",\"text\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/generic-lens-core-2.0.0.0/generic-lens-core-2.0.0.0.tar.gz\"},\"name\":\"generic-lens-core\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/generic-lens-core-2.0.0.0/generic-lens-core-2.0.0.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/generic-lens-core-2.0.0.0.tar.gz\"],\"sha256\":\"51628204350380be7d46a53a9e3e47d9d6f5c4797cf0215b9d93a2f90794ee40\",\"cabal-sha256\":\"40b063c4a1399b3cdb19f2df1fae5a1a82f3313015c7c3e47fc23b8ef1b3e443\"},\"version\":\"2.0.0.0\"},\n    \"generic-monoid\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/generic-monoid-0.1.0.1/generic-monoid-0.1.0.1.tar.gz\"},\"name\":\"generic-monoid\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/generic-monoid-0.1.0.1/generic-monoid-0.1.0.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/generic-monoid-0.1.0.1.tar.gz\"],\"sha256\":\"cfd072ad70af41c1b94ac24e42e2635f37ed2a54e8f4be871be78b18b66b2adf\",\"cabal-sha256\":\"78e2d99cb083607b2ba4010af576ed364cc296c6722ca95e46519bbd6c56ae9d\"},\"version\":\"0.1.0.1\"},\n    \"ghc\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"ghc\",\"version\":\"8.10.1\"},\n    \"ghc-paths\": {\"dependencies\":[\"Cabal\",\"base\",\"directory\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/ghc-paths-0.1.0.12/ghc-paths-0.1.0.12.tar.gz\"},\"name\":\"ghc-paths\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/ghc-paths-0.1.0.12/ghc-paths-0.1.0.12.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/ghc-paths-0.1.0.12.tar.gz\"],\"sha256\":\"6ecbe676d073cb07989c61ce4c5709c4e67cbefdd2d55a4095f9388b6fe2c484\",\"cabal-sha256\":\"afdfdb6584f39e821b2b7130e12007bf3ad87401d86f5105eead059c150dc81d\"},\"version\":\"0.1.0.12\"},\n    \"ghc-prim\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"ghc-prim\",\"version\":\"0.6.1\"},\n    \"happy\": {\"dependencies\":[\"array\",\"base\",\"containers\",\"mtl\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/happy-1.19.12/happy-1.19.12.tar.gz\"},\"name\":\"happy\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/happy-1.19.12/happy-1.19.12.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/happy-1.19.12.tar.gz\"],\"sha256\":\"fb9a23e41401711a3b288f93cf0a66db9f97da1ce32ec4fffea4b78a0daeb40f\",\"cabal-sha256\":\"acc67bfbf3af87892766781dd064c9447181ea81269a7a1e5fc9ace4a8fa4768\"},\"version\":\"1.19.12\"},\n    \"hashable\": {\"dependencies\":[\"base\",\"bytestring\",\"deepseq\",\"ghc-prim\",\"integer-gmp\",\"text\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/hashable-1.3.0.0/hashable-1.3.0.0.tar.gz\"},\"name\":\"hashable\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/hashable-1.3.0.0/hashable-1.3.0.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/hashable-1.3.0.0.tar.gz\"],\"sha256\":\"822e5413fbccca6ae884d3aba4066422c8b5d58d23d18b9ecb5c03273bb19ab4\",\"cabal-sha256\":\"d60cad00223d46172020c136e68acef0481a47d0302b2e74b1805b4f3a446a9b\"},\"version\":\"1.3.0.0\"},\n    \"haskeline\": {\"dependencies\":[\"base\",\"bytestring\",\"containers\",\"directory\",\"exceptions\",\"filepath\",\"process\",\"stm\",\"terminfo\",\"transformers\",\"unix\"],\"location\":{\"type\":\"core\"},\"name\":\"haskeline\",\"version\":\"0.8.0.0\"},\n    \"haskell-lexer\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/haskell-lexer-1.1/haskell-lexer-1.1.tar.gz\"},\"name\":\"haskell-lexer\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/haskell-lexer-1.1/haskell-lexer-1.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/haskell-lexer-1.1.tar.gz\"],\"sha256\":\"313a15cc643322c8badd148867ce25ca1ffc191df9e7eeec5b10bc08c4b563d5\",\"cabal-sha256\":\"9e0a7633f6bdb59004c6f3144ebfad1edb9e440fc6a94215c3a1d11bcd8656ef\"},\"version\":\"1.1\"},\n    \"hedgehog\": {\"dependencies\":[\"ansi-terminal\",\"async\",\"base\",\"bytestring\",\"concurrent-output\",\"containers\",\"deepseq\",\"directory\",\"erf\",\"exceptions\",\"fail\",\"lifted-async\",\"mmorph\",\"monad-control\",\"mtl\",\"pretty-show\",\"primitive\",\"random\",\"resourcet\",\"semigroups\",\"stm\",\"template-haskell\",\"text\",\"time\",\"transformers\",\"transformers-base\",\"wl-pprint-annotated\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/hedgehog-1.0.3/hedgehog-1.0.3.tar.gz\"},\"name\":\"hedgehog\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/hedgehog-1.0.3/hedgehog-1.0.3.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/hedgehog-1.0.3.tar.gz\"],\"sha256\":\"35f9e96578c09734243a4e423d367083e08937f863101b3f6ef48744c8299b82\",\"cabal-sha256\":\"12d8626145a34f8d4f64120807d26e723f139b448f1c7960adfa7c1d647c1c6c\"},\"version\":\"1.0.3\"},\n    \"hostname\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/hostname-1.0/hostname-1.0.tar.gz\"},\"name\":\"hostname\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/hostname-1.0/hostname-1.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/hostname-1.0.tar.gz\"],\"sha256\":\"9b43dab1b6da521f35685b20555da00738c8e136eb972458c786242406a9cf5c\",\"cabal-sha256\":\"8203b6ecd14ca1ef12f73a471b0a6a4be3ad4568d8b84f2bc4bc9e0abb8c4153\"},\"version\":\"1.0\"},\n    \"hscolour\": {\"dependencies\":[\"base\",\"containers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/hscolour-1.24.4/hscolour-1.24.4.tar.gz\"},\"name\":\"hscolour\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/hscolour-1.24.4/hscolour-1.24.4.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/hscolour-1.24.4.tar.gz\"],\"sha256\":\"243332b082294117f37b2c2c68079fa61af68b36223b3fc07594f245e0e5321d\",\"cabal-sha256\":\"3a329fa0ea9138f651088f1fa25522aabeab0eb591932d3fd56c66736bbe78be\"},\"version\":\"1.24.4\"},\n    \"hspec\": {\"dependencies\":[\"QuickCheck\",\"base\",\"hspec-core\",\"hspec-discover\",\"hspec-expectations\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/hspec-2.7.2/hspec-2.7.2.tar.gz\"},\"name\":\"hspec\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/hspec-2.7.2/hspec-2.7.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/hspec-2.7.2.tar.gz\"],\"sha256\":\"a97ebd050d5667d78dbe83348b8b1b4f579c2ea71ccfcc3eea9e9fbe0b5a697d\",\"cabal-sha256\":\"4758e1af9cf534429cde9f5f6495e5922ad1c05ca5b8344a0a459d320cd1cd28\"},\"version\":\"2.7.2\"},\n    \"hspec-core\": {\"dependencies\":[\"HUnit\",\"QuickCheck\",\"ansi-terminal\",\"array\",\"base\",\"call-stack\",\"clock\",\"deepseq\",\"directory\",\"filepath\",\"hspec-expectations\",\"quickcheck-io\",\"random\",\"setenv\",\"stm\",\"tf-random\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/hspec-core-2.7.2/hspec-core-2.7.2.tar.gz\"},\"name\":\"hspec-core\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/hspec-core-2.7.2/hspec-core-2.7.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/hspec-core-2.7.2.tar.gz\"],\"sha256\":\"d33afadc5602545c832bf5a7d73815ee9cc6c50e4b17847b35d7e5f11eeffa6f\",\"cabal-sha256\":\"9553efd731cde4e5cf061d2caedea7eb113a0b785305f86f7a4e9af112e33a1c\"},\"version\":\"2.7.2\"},\n    \"hspec-discover\": {\"dependencies\":[\"base\",\"directory\",\"filepath\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/hspec-discover-2.7.2/hspec-discover-2.7.2.tar.gz\"},\"name\":\"hspec-discover\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/hspec-discover-2.7.2/hspec-discover-2.7.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/hspec-discover-2.7.2.tar.gz\"],\"sha256\":\"888604783e48c6a5f49f3de5eb8c4f83841119b13d99144283f9e56a7fdb7458\",\"cabal-sha256\":\"9b21f4211c0553f2f50e50b2231dbdc89e37acb0fbb60b91b890cc2ec81e7bf7\"},\"version\":\"2.7.2\"},\n    \"hspec-expectations\": {\"dependencies\":[\"HUnit\",\"base\",\"call-stack\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/hspec-expectations-0.8.2/hspec-expectations-0.8.2.tar.gz\"},\"name\":\"hspec-expectations\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/hspec-expectations-0.8.2/hspec-expectations-0.8.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/hspec-expectations-0.8.2.tar.gz\"],\"sha256\":\"819607ea1faf35ce5be34be61c6f50f3389ea43892d56fb28c57a9f5d54fb4ef\",\"cabal-sha256\":\"e2db24881baadc2d9d23b03cb629e80dcbda89a6b04ace9adb5f4d02ef8b31aa\"},\"version\":\"0.8.2\"},\n    \"indexed-profunctors\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/indexed-profunctors-0.1/indexed-profunctors-0.1.tar.gz\"},\"name\":\"indexed-profunctors\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/indexed-profunctors-0.1/indexed-profunctors-0.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/indexed-profunctors-0.1.tar.gz\"],\"sha256\":\"31dfb4319dff84199344000b1efad75158eeac17ddcbb27f91735e958591bb65\",\"cabal-sha256\":\"ddf618d0d4c58319c1e735e746bc69a1021f13b6f475dc9614b80af03432e6d4\"},\"version\":\"0.1\"},\n    \"integer-gmp\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"integer-gmp\",\"version\":\"1.0.3.0\"},\n    \"integer-logarithms\": {\"dependencies\":[\"array\",\"base\",\"ghc-prim\",\"integer-gmp\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/integer-logarithms-1.0.3/integer-logarithms-1.0.3.tar.gz\"},\"name\":\"integer-logarithms\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/integer-logarithms-1.0.3/integer-logarithms-1.0.3.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/integer-logarithms-1.0.3.tar.gz\"],\"sha256\":\"5ae262018698af35bb74916fad170d96d3eb44669c72ed36db9a19a3392cec16\",\"cabal-sha256\":\"63d42595ec92b71ac98a07b984b0a2eb3d4956f4ad2d856c3bf6fc3dc218d228\"},\"version\":\"1.0.3\"},\n    \"invariant\": {\"dependencies\":[\"StateVar\",\"array\",\"base\",\"bifunctors\",\"comonad\",\"containers\",\"contravariant\",\"ghc-prim\",\"profunctors\",\"stm\",\"tagged\",\"template-haskell\",\"th-abstraction\",\"transformers\",\"transformers-compat\",\"unordered-containers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/invariant-0.5.3/invariant-0.5.3.tar.gz\"},\"name\":\"invariant\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/invariant-0.5.3/invariant-0.5.3.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/invariant-0.5.3.tar.gz\"],\"sha256\":\"d73e5def38da9fdd85def073857aa5f4b1d3b0c2df05c43d58a677cca02d440c\",\"cabal-sha256\":\"5b74af0b909c44b17298a9c04bcd0aea030f36a869da9112b103890f3aa2516f\"},\"version\":\"0.5.3\"},\n    \"kan-extensions\": {\"dependencies\":[\"adjunctions\",\"array\",\"base\",\"comonad\",\"containers\",\"contravariant\",\"distributive\",\"free\",\"invariant\",\"mtl\",\"profunctors\",\"semigroupoids\",\"tagged\",\"transformers\",\"transformers-compat\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/kan-extensions-5.2/kan-extensions-5.2.tar.gz\"},\"name\":\"kan-extensions\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/kan-extensions-5.2/kan-extensions-5.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/kan-extensions-5.2.tar.gz\"],\"sha256\":\"6b727e586f744b96529415eeabc745dfe05feea61f6b6bad90c224c879f4dbd3\",\"cabal-sha256\":\"c427da993336606ece009744e6403782f1e8625cc62588aa825190a693ff2ace\"},\"version\":\"5.2\"},\n    \"lens\": {\"dependencies\":[\"Cabal\",\"array\",\"base\",\"base-orphans\",\"bifunctors\",\"bytestring\",\"cabal-doctest\",\"call-stack\",\"comonad\",\"containers\",\"contravariant\",\"distributive\",\"exceptions\",\"filepath\",\"free\",\"ghc-prim\",\"hashable\",\"kan-extensions\",\"mtl\",\"parallel\",\"profunctors\",\"reflection\",\"semigroupoids\",\"tagged\",\"template-haskell\",\"text\",\"th-abstraction\",\"transformers\",\"transformers-compat\",\"unordered-containers\",\"vector\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/lens-4.19.2/lens-4.19.2.tar.gz\"},\"name\":\"lens\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/lens-4.19.2/lens-4.19.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/lens-4.19.2.tar.gz\"],\"sha256\":\"52f858ae3971a5104cdba5e81a27d154fda11fe65a54a4ac328c85904bdec23b\",\"cabal-sha256\":\"d4d704141d7c322bbfb746157b0709f3b966dfec92421f571c34069893af08cc\"},\"version\":\"4.19.2\"},\n    \"lens-family\": {\"dependencies\":[\"base\",\"containers\",\"lens-family-core\",\"mtl\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/lens-family-2.0.0/lens-family-2.0.0.tar.gz\"},\"name\":\"lens-family\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/lens-family-2.0.0/lens-family-2.0.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/lens-family-2.0.0.tar.gz\"],\"sha256\":\"6793f2a5c5030f02258532043d57eac42318cd7f9cef47f6720a7b99276f03db\",\"cabal-sha256\":\"fc0f45b5e61bb8ef829639e4326c16e3acf436c3b6c6395825e54dcc61ffc0d9\"},\"version\":\"2.0.0\"},\n    \"lens-family-core\": {\"dependencies\":[\"base\",\"containers\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/lens-family-core-2.0.0/lens-family-core-2.0.0.tar.gz\"},\"name\":\"lens-family-core\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/lens-family-core-2.0.0/lens-family-core-2.0.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/lens-family-core-2.0.0.tar.gz\"],\"sha256\":\"19b4fcd3bd37dd0056c112a9b16cf405644fabd6652013c61a5078380ed2265a\",\"cabal-sha256\":\"645b0553e16a3857b08fa44f11f0664296e1db5d6494a83634711c7f4f1707a7\"},\"version\":\"2.0.0\"},\n    \"libyaml\": {\"dependencies\":[\"base\",\"bytestring\",\"conduit\",\"resourcet\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/libyaml-0.1.2/libyaml-0.1.2.tar.gz\"},\"name\":\"libyaml\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/libyaml-0.1.2/libyaml-0.1.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/libyaml-0.1.2.tar.gz\"],\"sha256\":\"8f42d66f199fcaee255326f8f770d88b0670df56b5eb78002d6058f3a45e97b5\",\"cabal-sha256\":\"7f14f69ceb14659699974e8e47e1ea6f226ea21ff42a802db03e721c319d201d\"},\"version\":\"0.1.2\"},\n    \"lifted-async\": {\"dependencies\":[\"async\",\"base\",\"constraints\",\"lifted-base\",\"monad-control\",\"transformers-base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/lifted-async-0.10.1.2/lifted-async-0.10.1.2.tar.gz\"},\"name\":\"lifted-async\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/lifted-async-0.10.1.2/lifted-async-0.10.1.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/lifted-async-0.10.1.2.tar.gz\"],\"sha256\":\"bd24cb197953701507680893b84df505eb58d1c31e1d45f9a0edae43cd965713\",\"cabal-sha256\":\"525946f7f54feca4cf5207aaf56452be08a2b0d12e04e5fb5770a98b5a56b9fc\"},\"version\":\"0.10.1.2\"},\n    \"lifted-base\": {\"dependencies\":[\"base\",\"monad-control\",\"transformers-base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/lifted-base-0.2.3.12/lifted-base-0.2.3.12.tar.gz\"},\"name\":\"lifted-base\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/lifted-base-0.2.3.12/lifted-base-0.2.3.12.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/lifted-base-0.2.3.12.tar.gz\"],\"sha256\":\"c134a95f56750aae806e38957bb03c59627cda16034af9e00a02b699474317c5\",\"cabal-sha256\":\"e94ad0692c9c5d85c373e508f23654f2da8ac8c3e475c2b65ffbc04fb165ad69\"},\"version\":\"0.2.3.12\"},\n    \"lingo\": {\"dependencies\":[\"base\",\"bytestring\",\"containers\",\"directory\",\"filepath\",\"raw-strings-qq\",\"text\",\"yaml\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/lingo-0.5.0.1/lingo-0.5.0.1.tar.gz\"},\"name\":\"lingo\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/lingo-0.5.0.1/lingo-0.5.0.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/lingo-0.5.0.1.tar.gz\"],\"sha256\":\"1a354e753c18ee5c6fceed0acfd0b5b80c5bcb4536df32ba5608272bb279a740\",\"cabal-sha256\":\"e57deaf3353725bbb84d5e7426d9b7039f191e46779c590f236851c75e94751a\"},\"version\":\"0.5.0.1\"},\n    \"logict\": {\"dependencies\":[\"base\",\"mtl\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/logict-0.7.0.2/logict-0.7.0.2.tar.gz\"},\"name\":\"logict\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/logict-0.7.0.2/logict-0.7.0.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/logict-0.7.0.2.tar.gz\"],\"sha256\":\"ccc198a05563a4d8fc145ecde8b43a83599b3bcb032d2614a8e852f0ba6ecff5\",\"cabal-sha256\":\"fd3e3a64a0152aa921ad761ca0fabe3be7837e006efc3b15cb1a7283f1e0f5f1\"},\"version\":\"0.7.0.2\"},\n    \"math-functions\": {\"dependencies\":[\"base\",\"data-default-class\",\"deepseq\",\"primitive\",\"vector\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/math-functions-0.3.4.1/math-functions-0.3.4.1.tar.gz\"},\"name\":\"math-functions\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/math-functions-0.3.4.1/math-functions-0.3.4.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/math-functions-0.3.4.1.tar.gz\"],\"sha256\":\"e20a0afc03d3431610d5f4e57ec3a71822bf6cb1c598e8f2ad1b336533e4a48f\",\"cabal-sha256\":\"a6e458d2a78f03e83440062e8803c0baf7c1474dc2687489661690f4c6d46416\"},\"version\":\"0.3.4.1\"},\n    \"megaparsec\": {\"dependencies\":[\"base\",\"bytestring\",\"case-insensitive\",\"containers\",\"deepseq\",\"mtl\",\"parser-combinators\",\"scientific\",\"text\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/megaparsec-8.0.0/megaparsec-8.0.0.tar.gz\"},\"name\":\"megaparsec\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/megaparsec-8.0.0/megaparsec-8.0.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/megaparsec-8.0.0.tar.gz\"],\"sha256\":\"b5d7c64646016d12f540a6948396a86e0cd39865569d68fe2018fe9e3fce6318\",\"cabal-sha256\":\"362f85e243ecbcb550e1de6e5c74ba5a50c09edaa1208c99bc5b9fd242227fc6\"},\"version\":\"8.0.0\"},\n    \"mmorph\": {\"dependencies\":[\"base\",\"mtl\",\"transformers\",\"transformers-compat\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/mmorph-1.1.3/mmorph-1.1.3.tar.gz\"},\"name\":\"mmorph\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/mmorph-1.1.3/mmorph-1.1.3.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/mmorph-1.1.3.tar.gz\"],\"sha256\":\"7923f7ad6260a05aaa8175b9f2a250f5bb63187427681171bd36d29a6cf2da65\",\"cabal-sha256\":\"abfc95648fef0008f984b94137ce8e1635fb071c7bfaaa7393ba175a1b3bb12f\"},\"version\":\"1.1.3\"},\n    \"monad-control\": {\"dependencies\":[\"base\",\"stm\",\"transformers\",\"transformers-base\",\"transformers-compat\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/monad-control-1.0.2.3/monad-control-1.0.2.3.tar.gz\"},\"name\":\"monad-control\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/monad-control-1.0.2.3/monad-control-1.0.2.3.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/monad-control-1.0.2.3.tar.gz\"],\"sha256\":\"6c1034189d237ae45368c70f0e68f714dd3beda715dd265b6c8a99fcc64022b1\",\"cabal-sha256\":\"a3ae888d2fed2e2a0ca33ae11e2480219e07312bccf1a02ffe2ba2e3ec5913ee\"},\"version\":\"1.0.2.3\"},\n    \"mono-traversable\": {\"dependencies\":[\"base\",\"bytestring\",\"containers\",\"hashable\",\"split\",\"text\",\"transformers\",\"unordered-containers\",\"vector\",\"vector-algorithms\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/mono-traversable-1.0.15.1/mono-traversable-1.0.15.1.tar.gz\"},\"name\":\"mono-traversable\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/mono-traversable-1.0.15.1/mono-traversable-1.0.15.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/mono-traversable-1.0.15.1.tar.gz\"],\"sha256\":\"c2df5b79ed2f88f2ee313e57c1d591d4463788e20d39e439297eec5ba5835ddf\",\"cabal-sha256\":\"9ea638260fb4ea04ef138b9954922531f61e50df427565ed6969138cac77ffaf\"},\"version\":\"1.0.15.1\"},\n    \"mtl\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"mtl\",\"version\":\"2.2.2\"},\n    \"mwc-random\": {\"dependencies\":[\"base\",\"math-functions\",\"primitive\",\"time\",\"vector\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/mwc-random-0.14.0.0/mwc-random-0.14.0.0.tar.gz\"},\"name\":\"mwc-random\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/mwc-random-0.14.0.0/mwc-random-0.14.0.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/mwc-random-0.14.0.0.tar.gz\"],\"sha256\":\"00370edaa60a51c86663868ecc2b1995824970001875cec458e9acc13511efa2\",\"cabal-sha256\":\"6ae33e246e91f66f621caabb2323b431c8dab57427a417a98f5cac3d82eb7b21\"},\"version\":\"0.14.0.0\"},\n    \"neat-interpolation\": {\"dependencies\":[\"base\",\"megaparsec\",\"template-haskell\",\"text\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/neat-interpolation-0.5.1.1/neat-interpolation-0.5.1.1.tar.gz\"},\"name\":\"neat-interpolation\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/neat-interpolation-0.5.1.1/neat-interpolation-0.5.1.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/neat-interpolation-0.5.1.1.tar.gz\"],\"sha256\":\"a4af35abf3f31168f7478eb334592b90e9a658efd26a5702e6780ab2c61454ae\",\"cabal-sha256\":\"55f45d1737bcdf57dc9753996dd61819df335a542d8bad61b72b3700261c5b70\"},\"version\":\"0.5.1.1\"},\n    \"network\": {\"dependencies\":[\"base\",\"bytestring\",\"deepseq\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/network-3.1.1.1/network-3.1.1.1.tar.gz\"},\"name\":\"network\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/network-3.1.1.1/network-3.1.1.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/network-3.1.1.1.tar.gz\"],\"sha256\":\"d7ef590173fff2ab522fbc167f3fafb867e4ecfca279eb3ef0d137b51f142c9a\",\"cabal-sha256\":\"b704cb6676c03e98267190df797497587576a2e96094550ea143415239bbe66e\"},\"version\":\"3.1.1.1\"},\n    \"network-uri\": {\"dependencies\":[\"base\",\"deepseq\",\"parsec\",\"template-haskell\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/network-uri-2.6.3.0/network-uri-2.6.3.0.tar.gz\"},\"name\":\"network-uri\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/network-uri-2.6.3.0/network-uri-2.6.3.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/network-uri-2.6.3.0.tar.gz\"],\"sha256\":\"a01c1389f15d2cc2e847914737f706133bb11f0c5f8ee89711a36a25b7afa723\",\"cabal-sha256\":\"43727dafd00531c8c9df1ed4ee1cf363d76111f8e841193a3397a2a4c5f79b3f\"},\"version\":\"2.6.3.0\"},\n    \"optparse-applicative\": {\"dependencies\":[\"ansi-wl-pprint\",\"base\",\"process\",\"transformers\",\"transformers-compat\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/optparse-applicative-0.15.1.0/optparse-applicative-0.15.1.0.tar.gz\"},\"name\":\"optparse-applicative\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/optparse-applicative-0.15.1.0/optparse-applicative-0.15.1.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/optparse-applicative-0.15.1.0.tar.gz\"],\"sha256\":\"4db3675fd1e0594afdf079db46f4cd412d483835d703e7c07e1a1a37d6f046f3\",\"cabal-sha256\":\"29ff6146aabf54d46c4c8788e8d1eadaea27c94f6d360c690c5f6c93dac4b07e\"},\"version\":\"0.15.1.0\"},\n    \"optparse-generic\": {\"dependencies\":[\"Only\",\"base\",\"bytestring\",\"optparse-applicative\",\"system-filepath\",\"text\",\"time\",\"transformers\",\"void\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/optparse-generic-1.4.2/optparse-generic-1.4.2.tar.gz\"},\"name\":\"optparse-generic\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/optparse-generic-1.4.2/optparse-generic-1.4.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/optparse-generic-1.4.2.tar.gz\"],\"sha256\":\"26fb7261cef593dd7c9534614dc858894e9f29148975a1505f13c43aec356401\",\"cabal-sha256\":\"c019eb6dfc83476b8afb520afae6b3a6f95c8061a745fbe272a8e043cc7b3dc9\"},\"version\":\"1.4.2\"},\n    \"parallel\": {\"dependencies\":[\"array\",\"base\",\"containers\",\"deepseq\",\"ghc-prim\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/parallel-3.2.2.0/parallel-3.2.2.0.tar.gz\"},\"name\":\"parallel\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/parallel-3.2.2.0/parallel-3.2.2.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/parallel-3.2.2.0.tar.gz\"],\"sha256\":\"170453a71a2a8b31cca63125533f7771d7debeb639700bdabdd779c34d8a6ef6\",\"cabal-sha256\":\"421ce1717610bab82969572b96be89d83ea8d8afe7751cb54d80b996fff063d3\"},\"version\":\"3.2.2.0\"},\n    \"parsec\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"parsec\",\"version\":\"3.1.14.0\"},\n    \"parser-combinators\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/parser-combinators-1.2.1/parser-combinators-1.2.1.tar.gz\"},\"name\":\"parser-combinators\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/parser-combinators-1.2.1/parser-combinators-1.2.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/parser-combinators-1.2.1.tar.gz\"],\"sha256\":\"03162e40cde50253529fa452165b681d5064d03ad07992800702156adfb6254d\",\"cabal-sha256\":\"16c3490e007ec10b1255a2b36fb483d000156d555269107131241d9e0fa96412\"},\"version\":\"1.2.1\"},\n    \"parsers\": {\"dependencies\":[\"attoparsec\",\"base\",\"base-orphans\",\"binary\",\"charset\",\"containers\",\"mtl\",\"parsec\",\"scientific\",\"semigroups\",\"text\",\"transformers\",\"unordered-containers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/parsers-0.12.10/parsers-0.12.10.tar.gz\"},\"name\":\"parsers\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/parsers-0.12.10/parsers-0.12.10.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/parsers-0.12.10.tar.gz\"],\"sha256\":\"17b91f1318ca54679395b382a056df633fdb44fbb962eca66b1787f957af1a6c\",\"cabal-sha256\":\"6367145ea9cdb8382f407548a25d20d4435f437baef76f27e56cd5f1a3c1ec96\"},\"version\":\"0.12.10\"},\n    \"pathtype\": {\"dependencies\":[\"QuickCheck\",\"base\",\"deepseq\",\"directory\",\"semigroups\",\"tagged\",\"time\",\"transformers\",\"utility-ht\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/pathtype-0.8.1.1/pathtype-0.8.1.1.tar.gz\"},\"name\":\"pathtype\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/pathtype-0.8.1.1/pathtype-0.8.1.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/pathtype-0.8.1.1.tar.gz\"],\"sha256\":\"c7dce1871e65c6447bbe138d6ccecd5abcde84aba6fac7003e7755d238c2420c\",\"cabal-sha256\":\"8561fa48933c1ebd53b48a37806e4d72de31fee0bca4794cb1cd486468987a30\"},\"version\":\"0.8.1.1\"},\n    \"pretty\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"pretty\",\"version\":\"1.1.3.6\"},\n    \"pretty-show\": {\"dependencies\":[\"array\",\"base\",\"filepath\",\"ghc-prim\",\"happy\",\"haskell-lexer\",\"pretty\",\"text\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/pretty-show-1.10/pretty-show-1.10.tar.gz\"},\"name\":\"pretty-show\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/pretty-show-1.10/pretty-show-1.10.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/pretty-show-1.10.tar.gz\"],\"sha256\":\"307f9086e0b063d439dc4f513e36a145e8a57f23de448aefae2a6c00f6da6fd2\",\"cabal-sha256\":\"bfef8da0ac4db4fc7f41edfec9e9a701ac206418d70702bff1e40f20d6a2b1f1\"},\"version\":\"1.10\"},\n    \"pretty-simple\": {\"dependencies\":[\"Cabal\",\"ansi-terminal\",\"base\",\"cabal-doctest\",\"containers\",\"mtl\",\"text\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/pretty-simple-3.3.0.0/pretty-simple-3.3.0.0.tar.gz\"},\"name\":\"pretty-simple\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/pretty-simple-3.3.0.0/pretty-simple-3.3.0.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/pretty-simple-3.3.0.0.tar.gz\"],\"sha256\":\"d01637fcfb61911bdd7e85127d79a3e862634c05b5402a3ec64ce36b5149033d\",\"cabal-sha256\":\"c74f9c3c7234daddddfe2f0567adaced9c40e7c72c24abc3224fc2dcb5a350a2\"},\"version\":\"3.3.0.0\"},\n    \"prettyprinter\": {\"dependencies\":[\"base\",\"text\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/prettyprinter-1.6.2/prettyprinter-1.6.2.tar.gz\"},\"name\":\"prettyprinter\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/prettyprinter-1.6.2/prettyprinter-1.6.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/prettyprinter-1.6.2.tar.gz\"],\"sha256\":\"d193f1902630d0a652a7043aa37069224ea56a3ff0fa1b57f57ebf5ece777008\",\"cabal-sha256\":\"d9fa76aebce33c5c179a66128dfb5639e9257325d11c68569c6574dd8e112cde\"},\"version\":\"1.6.2\"},\n    \"prettyprinter-ansi-terminal\": {\"dependencies\":[\"ansi-terminal\",\"base\",\"prettyprinter\",\"text\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/prettyprinter-ansi-terminal-1.1.2/prettyprinter-ansi-terminal-1.1.2.tar.gz\"},\"name\":\"prettyprinter-ansi-terminal\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/prettyprinter-ansi-terminal-1.1.2/prettyprinter-ansi-terminal-1.1.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/prettyprinter-ansi-terminal-1.1.2.tar.gz\"],\"sha256\":\"e26b7338b90830a126e210ec164426bd3da7d099a319d1287a40e3efce2a1799\",\"cabal-sha256\":\"90b3b7650bc5b9f0e58da43621d23c817acfc0cf5ce71244b9bd11b8c9f95e3a\"},\"version\":\"1.1.2\"},\n    \"primitive\": {\"dependencies\":[\"base\",\"deepseq\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/primitive-0.7.1.0/primitive-0.7.1.0.tar.gz\"},\"name\":\"primitive\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/primitive-0.7.1.0/primitive-0.7.1.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/primitive-0.7.1.0.tar.gz\"],\"sha256\":\"6bebecfdf2a57787d9fd5231bfd612b65a92edd7b33a973b2a0f11312b89a3f0\",\"cabal-sha256\":\"29de6bfd0cf8ba023ceb806203dfbec0e51e3524e75ffe41056f70b4229c6f0f\"},\"version\":\"0.7.1.0\"},\n    \"process\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"process\",\"version\":\"1.6.8.2\"},\n    \"profunctors\": {\"dependencies\":[\"base\",\"base-orphans\",\"bifunctors\",\"comonad\",\"contravariant\",\"distributive\",\"tagged\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/profunctors-5.5.2/profunctors-5.5.2.tar.gz\"},\"name\":\"profunctors\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/profunctors-5.5.2/profunctors-5.5.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/profunctors-5.5.2.tar.gz\"],\"sha256\":\"5f1579aab8afae377c7c7c0d0ed95b0bc58003b6dad2d494045f7472a398af7c\",\"cabal-sha256\":\"0d824ae4b7cdde33ec4c677ded9e373e057c3a8e2c6b0532c183f9413db6e32c\"},\"version\":\"5.5.2\"},\n    \"proto-lens\": {\"dependencies\":[\"base\",\"bytestring\",\"containers\",\"deepseq\",\"ghc-prim\",\"lens-family\",\"parsec\",\"pretty\",\"primitive\",\"profunctors\",\"tagged\",\"text\",\"transformers\",\"vector\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/proto-lens-0.7.0.0/proto-lens-0.7.0.0.tar.gz\"},\"name\":\"proto-lens\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/proto-lens-0.7.0.0/proto-lens-0.7.0.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/proto-lens-0.7.0.0.tar.gz\"],\"sha256\":\"3aa3b6aa1a1fa51cc2b7a60dde79112a7d87d6846cc8d65f3c3ad6c4b81ce7b5\",\"cabal-sha256\":\"2c44a62375f7712f9381f84b1d30cee2f94384f1c98801db2f4450359a8e5036\"},\"version\":\"0.7.0.0\"},\n    \"proto-lens-jsonpb\": {\"dependencies\":[\"aeson\",\"attoparsec\",\"base\",\"base64-bytestring\",\"bytestring\",\"proto-lens-runtime\",\"text\",\"vector\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/proto-lens-jsonpb-0.2.0.2/proto-lens-jsonpb-0.2.0.2.tar.gz\"},\"name\":\"proto-lens-jsonpb\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/proto-lens-jsonpb-0.2.0.2/proto-lens-jsonpb-0.2.0.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/proto-lens-jsonpb-0.2.0.2.tar.gz\"],\"sha256\":\"a2b6085c73d1315ee34a62be9131321d44536c093c4b1f482a6f76bf024128e5\",\"cabal-sha256\":\"a361759d615e54a58a2f92eecd991ec8ad563dfdf0169bef2ea02054cf581da1\"},\"version\":\"0.2.0.2\"},\n    \"proto-lens-runtime\": {\"dependencies\":[\"base\",\"bytestring\",\"containers\",\"deepseq\",\"filepath\",\"lens-family\",\"proto-lens\",\"text\",\"vector\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/proto-lens-runtime-0.7.0.0/proto-lens-runtime-0.7.0.0.tar.gz\"},\"name\":\"proto-lens-runtime\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/proto-lens-runtime-0.7.0.0/proto-lens-runtime-0.7.0.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/proto-lens-runtime-0.7.0.0.tar.gz\"],\"sha256\":\"4dc1aebe1755c0b831d3cb029c7bfea04f252d0b1cee8653dded37baeab3aa63\",\"cabal-sha256\":\"d6cfab159a63f5c42a1a507638c674a714dfa5f69a06f559e8da840eaafde3ab\"},\"version\":\"0.7.0.0\"},\n    \"quickcheck-io\": {\"dependencies\":[\"HUnit\",\"QuickCheck\",\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/quickcheck-io-0.2.0/quickcheck-io-0.2.0.tar.gz\"},\"name\":\"quickcheck-io\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/quickcheck-io-0.2.0/quickcheck-io-0.2.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/quickcheck-io-0.2.0.tar.gz\"],\"sha256\":\"fb779119d79fe08ff4d502fb6869a70c9a8d5fd8ae0959f605c3c937efd96422\",\"cabal-sha256\":\"7bf0b68fb90873825eb2e5e958c1b76126dcf984debb998e81673e6d837e0b2d\"},\"version\":\"0.2.0\"},\n    \"random\": {\"dependencies\":[\"base\",\"time\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/random-1.1/random-1.1.tar.gz\"},\"name\":\"random\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/random-1.1/random-1.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/random-1.1.tar.gz\"],\"sha256\":\"b718a41057e25a3a71df693ab0fe2263d492e759679b3c2fea6ea33b171d3a5a\",\"cabal-sha256\":\"7b67624fd76ddf97c206de0801dc7e888097e9d572974be9b9ea6551d76965df\"},\"version\":\"1.1\"},\n    \"raw-strings-qq\": {\"dependencies\":[\"base\",\"template-haskell\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/raw-strings-qq-1.1/raw-strings-qq-1.1.tar.gz\"},\"name\":\"raw-strings-qq\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/raw-strings-qq-1.1/raw-strings-qq-1.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/raw-strings-qq-1.1.tar.gz\"],\"sha256\":\"2e011ec26aeaa53ab43c30b7d9b5b0f661f24b4ebef8884c12c571353c0fbed3\",\"cabal-sha256\":\"3ea0f14f036649e3576749aef0db4dd0b1102c5331f2e0e2551250e2030ce669\"},\"version\":\"1.1\"},\n    \"recursion-schemes\": {\"dependencies\":[\"base\",\"base-orphans\",\"comonad\",\"free\",\"template-haskell\",\"th-abstraction\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/recursion-schemes-5.1.3/recursion-schemes-5.1.3.tar.gz\"},\"name\":\"recursion-schemes\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/recursion-schemes-5.1.3/recursion-schemes-5.1.3.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/recursion-schemes-5.1.3.tar.gz\"],\"sha256\":\"b21736e54b1d5fb0149624e95f2d8d8fd3413bb0972eda6a70e5753d3c9f1528\",\"cabal-sha256\":\"cbcf3c36e1733a83fb8cda305bde2de18a2fbab53692e3301263964def430107\"},\"version\":\"5.1.3\"},\n    \"reducers\": {\"dependencies\":[\"array\",\"base\",\"bytestring\",\"containers\",\"fingertree\",\"hashable\",\"semigroupoids\",\"semigroups\",\"text\",\"transformers\",\"unordered-containers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/reducers-3.12.3/reducers-3.12.3.tar.gz\"},\"name\":\"reducers\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/reducers-3.12.3/reducers-3.12.3.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/reducers-3.12.3.tar.gz\"],\"sha256\":\"7186733767405984c1eda96b18908f458b379f116a1589cd66f4319fe8458e27\",\"cabal-sha256\":\"3a8d397f9a1dad4bbf8a83cf1ffc5cd9d4479d8573cf0d6702b443019345a3cd\"},\"version\":\"3.12.3\"},\n    \"reflection\": {\"dependencies\":[\"base\",\"template-haskell\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/reflection-2.1.6/reflection-2.1.6.tar.gz\"},\"name\":\"reflection\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/reflection-2.1.6/reflection-2.1.6.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/reflection-2.1.6.tar.gz\"],\"sha256\":\"bf3e14917ebb329a53701a3cce0afe670f20037a0148dbfa5cbfa574ed6ba6cd\",\"cabal-sha256\":\"044acb7caf41a9d8246878f849baed2dffbc4582d0a1e5c7c079d4287239e970\"},\"version\":\"2.1.6\"},\n    \"resourcet\": {\"dependencies\":[\"base\",\"containers\",\"exceptions\",\"mtl\",\"primitive\",\"transformers\",\"unliftio-core\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/resourcet-1.2.4.2/resourcet-1.2.4.2.tar.gz\"},\"name\":\"resourcet\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/resourcet-1.2.4.2/resourcet-1.2.4.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/resourcet-1.2.4.2.tar.gz\"],\"sha256\":\"17f20842043ad199961a801b6efb1233b9098eb3537f8395844268f6a223eb87\",\"cabal-sha256\":\"d57516781d1721f70aa0b9ec8ea9200ab02bf76349cb76d73ad57729302289cc\"},\"version\":\"1.2.4.2\"},\n    \"safe-exceptions\": {\"dependencies\":[\"base\",\"deepseq\",\"exceptions\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/safe-exceptions-0.1.7.0/safe-exceptions-0.1.7.0.tar.gz\"},\"name\":\"safe-exceptions\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/safe-exceptions-0.1.7.0/safe-exceptions-0.1.7.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/safe-exceptions-0.1.7.0.tar.gz\"],\"sha256\":\"18cddc587b52b6faa0287fb6ad6c964d1562571ea2c8ff57a194dd54b5fba069\",\"cabal-sha256\":\"416cad3470889813fbffd9dce83c7610268a4a52acadeb87a66e388e09a90275\"},\"version\":\"0.1.7.0\"},\n    \"scientific\": {\"dependencies\":[\"base\",\"binary\",\"bytestring\",\"containers\",\"deepseq\",\"hashable\",\"integer-gmp\",\"integer-logarithms\",\"primitive\",\"text\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/scientific-0.3.6.2/scientific-0.3.6.2.tar.gz\"},\"name\":\"scientific\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/scientific-0.3.6.2/scientific-0.3.6.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/scientific-0.3.6.2.tar.gz\"],\"sha256\":\"278d0afc87450254f8a76eab21b5583af63954efc9b74844a17a21a68013140f\",\"cabal-sha256\":\"dd49abc76bd8e2b57e7a057dc2bb742a00527b4bf9350f9374be03b5934e55d8\"},\"version\":\"0.3.6.2\"},\n    \"semigroupoids\": {\"dependencies\":[\"Cabal\",\"base\",\"base-orphans\",\"bifunctors\",\"cabal-doctest\",\"comonad\",\"containers\",\"contravariant\",\"distributive\",\"hashable\",\"tagged\",\"template-haskell\",\"transformers\",\"transformers-compat\",\"unordered-containers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/semigroupoids-5.3.4/semigroupoids-5.3.4.tar.gz\"},\"name\":\"semigroupoids\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/semigroupoids-5.3.4/semigroupoids-5.3.4.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/semigroupoids-5.3.4.tar.gz\"],\"sha256\":\"00d2e48973c3ab0a5d52616728ed63d0509454c8328148f698720014d7c58964\",\"cabal-sha256\":\"120873dfa8084ec92745c766336e90d648c347ab99ce55329d5af36dbd3732ba\"},\"version\":\"5.3.4\"},\n    \"semigroups\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/semigroups-0.19.1/semigroups-0.19.1.tar.gz\"},\"name\":\"semigroups\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/semigroups-0.19.1/semigroups-0.19.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/semigroups-0.19.1.tar.gz\"],\"sha256\":\"79e761e64b862564a3470d5d356cb6b060b14452d675859aed3b2d1e14646648\",\"cabal-sha256\":\"cd827aaba0c2b57727dedecdfcc7eec5f14719b73c7675037c73c74f642c1782\"},\"version\":\"0.19.1\"},\n    \"semilattices\": {\"dependencies\":[\"base\",\"containers\",\"hashable\",\"unordered-containers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/semilattices-0.0.0.4/semilattices-0.0.0.4.tar.gz\"},\"name\":\"semilattices\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/semilattices-0.0.0.4/semilattices-0.0.0.4.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/semilattices-0.0.0.4.tar.gz\"],\"sha256\":\"f2a2a40ea0ef2e0f0aebcb64c74897c5060a74234988535266d98dd79f406191\",\"cabal-sha256\":\"333707e460923711d1edbdd02ebe1c3957d4e0808eab9886747b52ee3e443639\"},\"version\":\"0.0.0.4\"},\n    \"setenv\": {\"dependencies\":[\"base\",\"unix\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/setenv-0.1.1.3/setenv-0.1.1.3.tar.gz\"},\"name\":\"setenv\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/setenv-0.1.1.3/setenv-0.1.1.3.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/setenv-0.1.1.3.tar.gz\"],\"sha256\":\"e358df39afc03d5a39e2ec650652d845c85c80cc98fe331654deafb4767ecb32\",\"cabal-sha256\":\"c5916ac0d2a828473cd171261328a290afe0abd799db1ac8c310682fe778c45b\"},\"version\":\"0.1.1.3\"},\n    \"smallcheck\": {\"dependencies\":[\"base\",\"logict\",\"mtl\",\"pretty\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/smallcheck-1.2.0/smallcheck-1.2.0.tar.gz\"},\"name\":\"smallcheck\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/smallcheck-1.2.0/smallcheck-1.2.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/smallcheck-1.2.0.tar.gz\"],\"sha256\":\"d6c79227c6138b287ee8113d2cb95b15a6487d3abb7531309629c57b5e80d9f8\",\"cabal-sha256\":\"f4cee52bf8363364724d3451cc0a9187be34b1f57c5c478e13a5b464c0fe5f6c\"},\"version\":\"1.2.0\"},\n    \"split\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/split-0.2.3.4/split-0.2.3.4.tar.gz\"},\"name\":\"split\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/split-0.2.3.4/split-0.2.3.4.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/split-0.2.3.4.tar.gz\"],\"sha256\":\"271fe5104c9f40034aa9a1aad6269bcecc9454bc5a57c247e69e17de996c1f2a\",\"cabal-sha256\":\"048c75891d63a03828f97667214aaaf0e67b7dcbfec297753e39939ffda6f51a\"},\"version\":\"0.2.3.4\"},\n    \"splitmix\": {\"dependencies\":[\"base\",\"deepseq\",\"random\",\"time\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/splitmix-0.0.5/splitmix-0.0.5.tar.gz\"},\"name\":\"splitmix\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/splitmix-0.0.5/splitmix-0.0.5.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/splitmix-0.0.5.tar.gz\"],\"sha256\":\"19f2987ba707c935656371776639588c3252cbb44b66cae16107b13e73b4cd52\",\"cabal-sha256\":\"4a49661be63f5aea0e132e9ab51be918789bb4dceb4ab9b15b85ba9cbbef5999\"},\"version\":\"0.0.5\"},\n    \"stm\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"stm\",\"version\":\"2.5.0.0\"},\n    \"stm-chans\": {\"dependencies\":[\"Cabal\",\"base\",\"stm\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/stm-chans-3.0.0.4/stm-chans-3.0.0.4.tar.gz\"},\"name\":\"stm-chans\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/stm-chans-3.0.0.4/stm-chans-3.0.0.4.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/stm-chans-3.0.0.4.tar.gz\"],\"sha256\":\"2344fc5bfa33d565bad7b009fc0e2c5a7a595060ba149c661f44419fc0d54738\",\"cabal-sha256\":\"e2eef3cea5251628f7b2ad22c24a1e5d08b83c19be4bd886ab0d7fed58ef2a6d\"},\"version\":\"3.0.0.4\"},\n    \"streaming\": {\"dependencies\":[\"base\",\"containers\",\"ghc-prim\",\"mmorph\",\"mtl\",\"transformers\",\"transformers-base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/streaming-0.2.3.0/streaming-0.2.3.0.tar.gz\"},\"name\":\"streaming\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/streaming-0.2.3.0/streaming-0.2.3.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/streaming-0.2.3.0.tar.gz\"],\"sha256\":\"b4008eee1fcee6a9f63d0d31eebefd6cf72731fab65d943831338c3961fafd62\",\"cabal-sha256\":\"26638a19039b2f447fdbeb430de1f7084c68b6ccd21eff288f5e45cf83670e47\"},\"version\":\"0.2.3.0\"},\n    \"strict\": {\"dependencies\":[\"assoc\",\"base\",\"binary\",\"bytestring\",\"deepseq\",\"ghc-prim\",\"hashable\",\"text\",\"these\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/strict-0.4/strict-0.4.tar.gz\"},\"name\":\"strict\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/strict-0.4/strict-0.4.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/strict-0.4.tar.gz\"],\"sha256\":\"279fee78690409ce0878beead4a620f0c0975dba215d6778f183699e3576453f\",\"cabal-sha256\":\"1b50c7c9c636c3a1bbc7f8873b9be48f6ca0faca4df6eec6a014de6208fb1c0e\"},\"version\":\"0.4\"},\n    \"syb\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/syb-0.7.1/syb-0.7.1.tar.gz\"},\"name\":\"syb\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/syb-0.7.1/syb-0.7.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/syb-0.7.1.tar.gz\"],\"sha256\":\"e04a9c7ae48d9fe25e9b7a064f7122d39c710753544511e15df7a6e87fdfe700\",\"cabal-sha256\":\"809b4587757c9358db125577fb7e4e11031b8a26075fabe346912bbe2cfffd65\"},\"version\":\"0.7.1\"},\n    \"system-filepath\": {\"dependencies\":[\"Cabal\",\"base\",\"bytestring\",\"deepseq\",\"text\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/system-filepath-0.4.14/system-filepath-0.4.14.tar.gz\"},\"name\":\"system-filepath\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/system-filepath-0.4.14/system-filepath-0.4.14.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/system-filepath-0.4.14.tar.gz\"],\"sha256\":\"1656ce3c0d585650784ceb3f794748286e19fb635f557e7b29b0897f8956d993\",\"cabal-sha256\":\"e8ce7d24d7008a825e5d03aa672950a0e8178ac54c3de7134f36c3a7e37694a2\"},\"version\":\"0.4.14\"},\n    \"tagged\": {\"dependencies\":[\"base\",\"deepseq\",\"template-haskell\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/tagged-0.8.6/tagged-0.8.6.tar.gz\"},\"name\":\"tagged\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/tagged-0.8.6/tagged-0.8.6.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/tagged-0.8.6.tar.gz\"],\"sha256\":\"ad16def0884cf6f05ae1ae8e90192cf9d8d9673fa264b249499bd9e4fac791dd\",\"cabal-sha256\":\"7cce0b9355d1daad797555dfa906f756ed0253a40bc826ca367adf21d7b369f3\"},\"version\":\"0.8.6\"},\n    \"tasty\": {\"dependencies\":[\"ansi-terminal\",\"async\",\"base\",\"clock\",\"containers\",\"mtl\",\"optparse-applicative\",\"stm\",\"tagged\",\"unbounded-delays\",\"unix\",\"wcwidth\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/tasty-1.2.3/tasty-1.2.3.tar.gz\"},\"name\":\"tasty\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/tasty-1.2.3/tasty-1.2.3.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/tasty-1.2.3.tar.gz\"],\"sha256\":\"8ca107abc12a476cfbc84f516f30a614c81be315903f910bc681137eb702f662\",\"cabal-sha256\":\"bba67074e5326d57e8f53fc1dabcb6841daa4dc51b053506eb7f40a6f49a0497\"},\"version\":\"1.2.3\"},\n    \"tasty-golden\": {\"dependencies\":[\"async\",\"base\",\"bytestring\",\"containers\",\"deepseq\",\"directory\",\"filepath\",\"mtl\",\"optparse-applicative\",\"process\",\"tagged\",\"tasty\",\"temporary\",\"text\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/tasty-golden-2.3.3.2/tasty-golden-2.3.3.2.tar.gz\"},\"name\":\"tasty-golden\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/tasty-golden-2.3.3.2/tasty-golden-2.3.3.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/tasty-golden-2.3.3.2.tar.gz\"],\"sha256\":\"a936183e57da934c593d715ae0f122e36beaa935cea9fa19d21386730972b1a5\",\"cabal-sha256\":\"2aa053398a20f9890702d910e6aade8971f9f1281817a72e74fc67eebe6cba4e\"},\"version\":\"2.3.3.2\"},\n    \"tasty-hedgehog\": {\"dependencies\":[\"base\",\"hedgehog\",\"tagged\",\"tasty\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/tasty-hedgehog-1.0.0.2/tasty-hedgehog-1.0.0.2.tar.gz\"},\"name\":\"tasty-hedgehog\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/tasty-hedgehog-1.0.0.2/tasty-hedgehog-1.0.0.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/tasty-hedgehog-1.0.0.2.tar.gz\"],\"sha256\":\"65538f7371f5ccf52c232a4723d931dd0278ea49bf478c2abe50c3bc4c1d5bef\",\"cabal-sha256\":\"084d3cb5966cf01431cf0f8ab982a7925f8aaf5f98e8578581624812fe93478b\"},\"version\":\"1.0.0.2\"},\n    \"tasty-hspec\": {\"dependencies\":[\"QuickCheck\",\"base\",\"hspec\",\"hspec-core\",\"tasty\",\"tasty-quickcheck\",\"tasty-smallcheck\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/tasty-hspec-1.1.5.1/tasty-hspec-1.1.5.1.tar.gz\"},\"name\":\"tasty-hspec\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/tasty-hspec-1.1.5.1/tasty-hspec-1.1.5.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/tasty-hspec-1.1.5.1.tar.gz\"],\"sha256\":\"fe889ec0f7b3991c46a07d9ff9cf09608a73a18f434a7480d2a09c79e56f3345\",\"cabal-sha256\":\"7f2e21d2f2a235401d661b93f53e374ab0456a7d2fe542871235905c2e804775\"},\"version\":\"1.1.5.1\"},\n    \"tasty-hunit\": {\"dependencies\":[\"base\",\"call-stack\",\"tasty\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/tasty-hunit-0.10.0.2/tasty-hunit-0.10.0.2.tar.gz\"},\"name\":\"tasty-hunit\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/tasty-hunit-0.10.0.2/tasty-hunit-0.10.0.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/tasty-hunit-0.10.0.2.tar.gz\"],\"sha256\":\"4823c85efe15f36e1d71867aaa6cdcdff3ef39f97492321e9bb8a30c742f6ef7\",\"cabal-sha256\":\"8e8bd5807cec650f5aebc5ada07b57620c863e69145e65249651c1b48d97bd70\"},\"version\":\"0.10.0.2\"},\n    \"tasty-quickcheck\": {\"dependencies\":[\"QuickCheck\",\"base\",\"optparse-applicative\",\"random\",\"tagged\",\"tasty\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/tasty-quickcheck-0.10.1.1/tasty-quickcheck-0.10.1.1.tar.gz\"},\"name\":\"tasty-quickcheck\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/tasty-quickcheck-0.10.1.1/tasty-quickcheck-0.10.1.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/tasty-quickcheck-0.10.1.1.tar.gz\"],\"sha256\":\"f8326014c975ad31cac9e3da55f4bc86d0b26139557987d58c1f9554a8f31f25\",\"cabal-sha256\":\"b0a751bbe706447fd11cac21a7bbcf919631813aafaba3ce460a421348f6935c\"},\"version\":\"0.10.1.1\"},\n    \"tasty-smallcheck\": {\"dependencies\":[\"async\",\"base\",\"smallcheck\",\"tagged\",\"tasty\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/tasty-smallcheck-0.8.1/tasty-smallcheck-0.8.1.tar.gz\"},\"name\":\"tasty-smallcheck\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/tasty-smallcheck-0.8.1/tasty-smallcheck-0.8.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/tasty-smallcheck-0.8.1.tar.gz\"],\"sha256\":\"314ba7acdb7793730e7677f553a72dd6a4a8f9a45ff3e931cd7d384affb3c6d8\",\"cabal-sha256\":\"394b4d95ab25a9cea7a82e93a63245d1420a26ff03094f71ae5380a8d67eebb2\"},\"version\":\"0.8.1\"},\n    \"template-haskell\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"template-haskell\",\"version\":\"2.16.0.0\"},\n    \"temporary\": {\"dependencies\":[\"base\",\"directory\",\"exceptions\",\"filepath\",\"random\",\"transformers\",\"unix\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/temporary-1.3/temporary-1.3.tar.gz\"},\"name\":\"temporary\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/temporary-1.3/temporary-1.3.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/temporary-1.3.tar.gz\"],\"sha256\":\"8c442993694b5ffca823ce864af95bd2841fb5264ee511c61cf48cc71d879890\",\"cabal-sha256\":\"3a66c136f700dbf42f3c5000ca93e80b26dead51e54322c83272b236c1ec8ef1\"},\"version\":\"1.3\"},\n    \"terminal-size\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/terminal-size-0.3.2.1/terminal-size-0.3.2.1.tar.gz\"},\"name\":\"terminal-size\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/terminal-size-0.3.2.1/terminal-size-0.3.2.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/terminal-size-0.3.2.1.tar.gz\"],\"sha256\":\"b5c23e964756bc13914649a67d63233f59ad0a813abe7cadeb2fc9d586dc9658\",\"cabal-sha256\":\"7b2d8e0475a46961d07ddfb91dee618de70eff55d9ba0402ebeac1f9dcf9b18b\"},\"version\":\"0.3.2.1\"},\n    \"terminfo\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"terminfo\",\"version\":\"0.4.1.4\"},\n    \"text\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"text\",\"version\":\"1.2.3.2\"},\n    \"tf-random\": {\"dependencies\":[\"base\",\"primitive\",\"random\",\"time\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/tf-random-0.5/tf-random-0.5.tar.gz\"},\"name\":\"tf-random\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/tf-random-0.5/tf-random-0.5.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/tf-random-0.5.tar.gz\"],\"sha256\":\"2e30cec027b313c9e1794d326635d8fc5f79b6bf6e7580ab4b00186dadc88510\",\"cabal-sha256\":\"14012837d0f0e18fdbbe3d56e67da8622ee5e20b180abce952dd50bd9f36b326\"},\"version\":\"0.5\"},\n    \"th-abstraction\": {\"dependencies\":[\"base\",\"containers\",\"ghc-prim\",\"template-haskell\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/th-abstraction-0.3.2.0/th-abstraction-0.3.2.0.tar.gz\"},\"name\":\"th-abstraction\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/th-abstraction-0.3.2.0/th-abstraction-0.3.2.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/th-abstraction-0.3.2.0.tar.gz\"],\"sha256\":\"36fef33ad0f34b9b8fb5552fe6187579a00d5f90d938e9bc24d382a9919feb79\",\"cabal-sha256\":\"9b5b4e6e2bbff9b075ad7751ee98e2107090bd17b51d5442695b8990e4db6521\"},\"version\":\"0.3.2.0\"},\n    \"these\": {\"dependencies\":[\"assoc\",\"base\",\"binary\",\"deepseq\",\"hashable\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/these-1.1.1.1/these-1.1.1.1.tar.gz\"},\"name\":\"these\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/these-1.1.1.1/these-1.1.1.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/these-1.1.1.1.tar.gz\"],\"sha256\":\"d798c9f56e17def441e8f51e54cc11afdb3e76c6a9d1e9ee154e9a78da0bf508\",\"cabal-sha256\":\"bdc0a3015b2e5cdf016e402937d71856ae5fe4e9e9a0d4823cc94a214c55a39b\"},\"version\":\"1.1.1.1\"},\n    \"time\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"time\",\"version\":\"1.9.3\"},\n    \"time-compat\": {\"dependencies\":[\"base\",\"base-orphans\",\"deepseq\",\"time\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/time-compat-1.9.3/time-compat-1.9.3.tar.gz\"},\"name\":\"time-compat\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/time-compat-1.9.3/time-compat-1.9.3.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/time-compat-1.9.3.tar.gz\"],\"sha256\":\"bb6a44e667945ddca8ded93e041ee91986a4a19f59e149a5dd21fdb1bfa3db88\",\"cabal-sha256\":\"a1a0a8b088be6a7be50c7c0bf156ce876151b1cbe14261736965e361c8073b2a\"},\"version\":\"1.9.3\"},\n    \"transformers\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"transformers\",\"version\":\"0.5.6.2\"},\n    \"transformers-base\": {\"dependencies\":[\"base\",\"base-orphans\",\"stm\",\"transformers\",\"transformers-compat\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/transformers-base-0.4.5.2/transformers-base-0.4.5.2.tar.gz\"},\"name\":\"transformers-base\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/transformers-base-0.4.5.2/transformers-base-0.4.5.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/transformers-base-0.4.5.2.tar.gz\"],\"sha256\":\"d0c80c63fdce6a077dd8eda4f1ff289b85578703a3f1272e141d400fe23245e8\",\"cabal-sha256\":\"402740dd5ef6574a05c7e4a3c874262e5a24b713c2b8b5125d59847ebd1041a2\"},\"version\":\"0.4.5.2\"},\n    \"transformers-compat\": {\"dependencies\":[\"base\",\"ghc-prim\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/transformers-compat-0.6.5/transformers-compat-0.6.5.tar.gz\"},\"name\":\"transformers-compat\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/transformers-compat-0.6.5/transformers-compat-0.6.5.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/transformers-compat-0.6.5.tar.gz\"],\"sha256\":\"da67cf11515da751b32a8ce6e96549f7268f7c435769ad19dc9766b69774620b\",\"cabal-sha256\":\"50b00c57bf3fc379ec2477bfc261a2aebc983084488478adb29854f193af4696\"},\"version\":\"0.6.5\"},\n    \"tree-sitter\": {\"dependencies\":[\"base\",\"bytestring\",\"containers\",\"directory\",\"filepath\",\"split\",\"template-haskell\",\"unordered-containers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/tree-sitter-0.9.0.2/tree-sitter-0.9.0.2.tar.gz\"},\"name\":\"tree-sitter\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/tree-sitter-0.9.0.2/tree-sitter-0.9.0.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/tree-sitter-0.9.0.2.tar.gz\"],\"sha256\":\"ae9edfd5415e8f243b14010491d149add962cf47d0fab7a36844faf34f0587cb\",\"cabal-sha256\":\"a8e9821575a1bf90455cc164619f5a59f6cc01d66a870944ece84a755b6450d9\"},\"version\":\"0.9.0.2\"},\n    \"tree-sitter-go\": {\"dependencies\":[\"base\",\"tree-sitter\"],\"location\":{\"type\":\"vendored\"},\"name\":\"tree-sitter-go\",\"version\":\"0.5.0.2\"},\n    \"tree-sitter-java\": {\"dependencies\":[\"base\",\"tree-sitter\"],\"location\":{\"type\":\"vendored\"},\"name\":\"tree-sitter-java\",\"version\":\"0.7.0.2\"},\n    \"tree-sitter-json\": {\"dependencies\":[\"base\",\"tree-sitter\"],\"location\":{\"type\":\"vendored\"},\"name\":\"tree-sitter-json\",\"version\":\"0.7.0.2\"},\n    \"tree-sitter-php\": {\"dependencies\":[\"base\",\"tree-sitter\"],\"location\":{\"type\":\"vendored\"},\"name\":\"tree-sitter-php\",\"version\":\"0.5.0.1\"},\n    \"tree-sitter-python\": {\"dependencies\":[\"base\",\"tree-sitter\"],\"location\":{\"type\":\"vendored\"},\"name\":\"tree-sitter-python\",\"version\":\"0.9.0.3\"},\n    \"tree-sitter-ql\": {\"dependencies\":[\"base\",\"tree-sitter\"],\"location\":{\"type\":\"vendored\"},\"name\":\"tree-sitter-ql\",\"version\":\"0.1.0.4\"},\n    \"tree-sitter-ruby\": {\"dependencies\":[\"base\",\"tree-sitter\"],\"location\":{\"type\":\"vendored\"},\"name\":\"tree-sitter-ruby\",\"version\":\"0.5.0.3\"},\n    \"tree-sitter-rust\": {\"dependencies\":[\"base\",\"tree-sitter\"],\"location\":{\"type\":\"vendored\"},\"name\":\"tree-sitter-rust\",\"version\":\"0.1.0.1\"},\n    \"tree-sitter-tsx\": {\"dependencies\":[\"base\",\"tree-sitter\"],\"location\":{\"type\":\"vendored\"},\"name\":\"tree-sitter-tsx\",\"version\":\"0.5.0.2\"},\n    \"tree-sitter-typescript\": {\"dependencies\":[\"base\",\"tree-sitter\"],\"location\":{\"type\":\"vendored\"},\"name\":\"tree-sitter-typescript\",\"version\":\"0.5.0.2\"},\n    \"trifecta\": {\"dependencies\":[\"Cabal\",\"ansi-terminal\",\"array\",\"base\",\"blaze-builder\",\"blaze-html\",\"blaze-markup\",\"bytestring\",\"cabal-doctest\",\"charset\",\"comonad\",\"containers\",\"deepseq\",\"fingertree\",\"ghc-prim\",\"hashable\",\"lens\",\"mtl\",\"parsers\",\"prettyprinter\",\"prettyprinter-ansi-terminal\",\"profunctors\",\"reducers\",\"semigroups\",\"transformers\",\"unordered-containers\",\"utf8-string\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/trifecta-2.1/trifecta-2.1.tar.gz\"},\"name\":\"trifecta\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/trifecta-2.1/trifecta-2.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/trifecta-2.1.tar.gz\"],\"sha256\":\"7a25c6b07b6ca4c6465b9f888444183cd1eab54d2890272010150df7a911233b\",\"cabal-sha256\":\"5a936da33052a9e7c1b3e6c974ba0357943fd5fa5b7e5d595fd7abda0f743f3b\"},\"version\":\"2.1\"},\n    \"type-equality\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/type-equality-1/type-equality-1.tar.gz\"},\"name\":\"type-equality\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/type-equality-1/type-equality-1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/type-equality-1.tar.gz\"],\"sha256\":\"4728b502a211454ef682a10d7a3e817c22d06ba509df114bb267ef9d43a08ce8\",\"cabal-sha256\":\"f2a895a7b22384d9b43a9c6608725b2de7581e77e5b20ab9cfe3f959f6cd71a8\"},\"version\":\"1\"},\n    \"unbounded-delays\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/unbounded-delays-0.1.1.0/unbounded-delays-0.1.1.0.tar.gz\"},\"name\":\"unbounded-delays\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/unbounded-delays-0.1.1.0/unbounded-delays-0.1.1.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/unbounded-delays-0.1.1.0.tar.gz\"],\"sha256\":\"8aa7f7d10a8d0073518804db76c3ef4c313359994ef175122341b0bce07329c7\",\"cabal-sha256\":\"890b9426e946b5d18e78446eebcc99cb7abce5fcf2d251323ea88b6999ad80a9\"},\"version\":\"0.1.1.0\"},\n    \"unix\": {\"dependencies\":[],\"location\":{\"type\":\"core\"},\"name\":\"unix\",\"version\":\"2.7.2.2\"},\n    \"unliftio-core\": {\"dependencies\":[\"base\",\"transformers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/unliftio-core-0.2.0.1/unliftio-core-0.2.0.1.tar.gz\"},\"name\":\"unliftio-core\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/unliftio-core-0.2.0.1/unliftio-core-0.2.0.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/unliftio-core-0.2.0.1.tar.gz\"],\"sha256\":\"919f0d1297ea2f5373118553c1df2a9405d8b9e31a8307e829da67d4953c299a\",\"cabal-sha256\":\"f9abcdd3f3d28e4840563efb7b8760d2de9b5707bcd6f53a87f6a0d77bb5a9f7\"},\"version\":\"0.2.0.1\"},\n    \"unordered-containers\": {\"dependencies\":[\"base\",\"deepseq\",\"hashable\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/unordered-containers-0.2.12.0/unordered-containers-0.2.12.0.tar.gz\"},\"name\":\"unordered-containers\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/unordered-containers-0.2.12.0/unordered-containers-0.2.12.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/unordered-containers-0.2.12.0.tar.gz\"],\"sha256\":\"481dab4ea59f10feaa7d65ecb8ae5d136d130bdbacf2356d414b3926d638bd20\",\"cabal-sha256\":\"164a47850c4536c8b7cc12f74578588cf3b6c331f04e671306d2dcb806284bb1\"},\"version\":\"0.2.12.0\"},\n    \"utf8-string\": {\"dependencies\":[\"base\",\"bytestring\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/utf8-string-1.0.1.1/utf8-string-1.0.1.1.tar.gz\"},\"name\":\"utf8-string\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/utf8-string-1.0.1.1/utf8-string-1.0.1.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/utf8-string-1.0.1.1.tar.gz\"],\"sha256\":\"fb0b9e3acbe0605bcd1c63e51f290a7bbbe6628dfa3294ff453e4235fbaef140\",\"cabal-sha256\":\"68cc6cf665e7212334a51b63d6936daeaca023b2cfe8637d130acfe95f91700b\"},\"version\":\"1.0.1.1\"},\n    \"utility-ht\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/utility-ht-0.0.15/utility-ht-0.0.15.tar.gz\"},\"name\":\"utility-ht\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/utility-ht-0.0.15/utility-ht-0.0.15.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/utility-ht-0.0.15.tar.gz\"],\"sha256\":\"845c79cdf0925997ec190a761460b50a9577cd290567b9252e31d075cd6f0f91\",\"cabal-sha256\":\"940b35a19ce392c4fd86d96fecd0efb3c3b8a598af31fe5aca7e9f3b172e284b\"},\"version\":\"0.0.15\"},\n    \"uuid-types\": {\"dependencies\":[\"base\",\"binary\",\"bytestring\",\"deepseq\",\"hashable\",\"random\",\"text\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/uuid-types-1.0.3/uuid-types-1.0.3.tar.gz\"},\"name\":\"uuid-types\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/uuid-types-1.0.3/uuid-types-1.0.3.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/uuid-types-1.0.3.tar.gz\"],\"sha256\":\"9276517ab24a9b06f39d6e3c33c6c2b4ace1fc2126dbc1cd9806866a6551b3fd\",\"cabal-sha256\":\"963505cf2eeadb4f1c14336cda8ee8a0e658386450caa6eef34100e44b73fc46\"},\"version\":\"1.0.3\"},\n    \"vector\": {\"dependencies\":[\"base\",\"deepseq\",\"ghc-prim\",\"primitive\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/vector-0.12.1.2/vector-0.12.1.2.tar.gz\"},\"name\":\"vector\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/vector-0.12.1.2/vector-0.12.1.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/vector-0.12.1.2.tar.gz\"],\"sha256\":\"3b6e27683f6f20b37b8a35d0fab9e34b57dad72ac64cb16f428726780d4011bd\",\"cabal-sha256\":\"9291bc581f36e51d5bda9fce57cb980fbec3dd292996896f285fef39eb80a9a0\"},\"version\":\"0.12.1.2\"},\n    \"vector-algorithms\": {\"dependencies\":[\"base\",\"bytestring\",\"primitive\",\"vector\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/vector-algorithms-0.8.0.3/vector-algorithms-0.8.0.3.tar.gz\"},\"name\":\"vector-algorithms\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/vector-algorithms-0.8.0.3/vector-algorithms-0.8.0.3.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/vector-algorithms-0.8.0.3.tar.gz\"],\"sha256\":\"1ac41f014663fd318b34a76b80e6d8f32f1629ef4996ae7304f31597a0d07387\",\"cabal-sha256\":\"477ef5ac82fdd28a39536ed0a767faec3425802827abee485be31db5bc6f5e90\"},\"version\":\"0.8.0.3\"},\n    \"vector-builder\": {\"dependencies\":[\"base\",\"base-prelude\",\"semigroups\",\"vector\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/vector-builder-0.3.8/vector-builder-0.3.8.tar.gz\"},\"name\":\"vector-builder\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/vector-builder-0.3.8/vector-builder-0.3.8.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/vector-builder-0.3.8.tar.gz\"],\"sha256\":\"a39afd7ac50c42de77660d235017be38ef50f792b6a98212accf687445a18073\",\"cabal-sha256\":\"184ed15a76025943ccaf556887cf60bca21359e3ccf4d7735def394ab76b76f1\"},\"version\":\"0.3.8\"},\n    \"void\": {\"dependencies\":[\"base\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/void-0.7.3/void-0.7.3.tar.gz\"},\"name\":\"void\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/void-0.7.3/void-0.7.3.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/void-0.7.3.tar.gz\"],\"sha256\":\"53af758ddc37dc63981671e503438d02c6f64a2d8744e9bec557a894431f7317\",\"cabal-sha256\":\"13d30f62fcdf065e595d679d4ac8b4b0c1bb1a1b73db7b5b5a8f857cb5c8a546\"},\"version\":\"0.7.3\"},\n    \"wcwidth\": {\"dependencies\":[\"base\",\"containers\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/wcwidth-0.0.2/wcwidth-0.0.2.tar.gz\"},\"name\":\"wcwidth\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/wcwidth-0.0.2/wcwidth-0.0.2.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/wcwidth-0.0.2.tar.gz\"],\"sha256\":\"ffc68736a3bbde3e8157710f29f4a99c0ca593c41194579c54a92c62f6c12ed8\",\"cabal-sha256\":\"77531eb6683c505c22ab3fa11bbc43d3ce1e7dac21401d4d5a19677d348bb5f3\"},\"version\":\"0.0.2\"},\n    \"wl-pprint-annotated\": {\"dependencies\":[\"base\",\"containers\",\"deepseq\",\"text\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/wl-pprint-annotated-0.1.0.1/wl-pprint-annotated-0.1.0.1.tar.gz\"},\"name\":\"wl-pprint-annotated\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/wl-pprint-annotated-0.1.0.1/wl-pprint-annotated-0.1.0.1.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/wl-pprint-annotated-0.1.0.1.tar.gz\"],\"sha256\":\"6b662b244b2e318a2923dc7057d707369a29ea4a0e721b4710eac7239cc727af\",\"cabal-sha256\":\"0b8fd3649bfe72d155a4379e4c88b7ef00408f6f4973f63333787fd2e1b5ba1e\"},\"version\":\"0.1.0.1\"},\n    \"yaml\": {\"dependencies\":[\"aeson\",\"attoparsec\",\"base\",\"bytestring\",\"conduit\",\"containers\",\"directory\",\"filepath\",\"libyaml\",\"mtl\",\"resourcet\",\"scientific\",\"template-haskell\",\"text\",\"transformers\",\"unordered-containers\",\"vector\"],\"location\":{\"type\":\"hackage\",\"url\":\"https://hackage.haskell.org/package/yaml-0.11.4.0/yaml-0.11.4.0.tar.gz\"},\"name\":\"yaml\",\"pinned\":{\"url\":[\"https://hackage.haskell.org/package/yaml-0.11.4.0/yaml-0.11.4.0.tar.gz\",\"https://s3.amazonaws.com/hackage.fpcomplete.com/package/yaml-0.11.4.0.tar.gz\"],\"sha256\":\"da4ec8469bb5cc43d131ffee90e89a430a65baad4caa611e91cd9b684168c96c\",\"cabal-sha256\":\"2583bfc6ea297290fa1bae47242627898896e2647aaaf7662d6d7df9a2dac0b2\"},\"version\":\"0.11.4.0\"}\n  }\n}"
  }
]